elliottImpulseWave

The Elliott Impulse Wave is the classic 5-wave structure (1-2-3-4-5) defined by Ralph Nelson Elliott. It represents a strong trend where waves 1, 3, and 5 move with the trend, and waves 2 and 4 are corrections. Traders use it to recognize the main market cycle and project continuation targets.

Syntax

elliottImpulseWave(originPoint, p1, p2, p3, p4, p5, styles?)

Parameters

originPoint (PricedData) · The starting point of the impulse wave. p1 (PricedData) · End of wave 1. p2 (PricedData) · End of wave 2 (correction). p3 (PricedData) · End of wave 3 (strongest move). p4 (PricedData) · End of wave 4 (correction). p5 (PricedData) · End of wave 5 (final leg of the impulse). styles (ElliottImpulseWaveStyleOverrides) · Style and display options:

  • fillBackground (boolean) · Fill the area between waves.

  • transparency (number) · Adjust background transparency (0–100).

  • showLabels (boolean) · Show wave labels (1–5).

  • line (LinesLevels without coeff) · Style for the wave connectors (linestyle, linewidth, color).

  • background (RGBAColor | BaseColors) · Color for filling the wave structure.

Return Value

(string) · The drawing ID of the created Elliott Impulse Wave.

Example

Every 100 candles, we draw an Elliott Impulse Wave connecting six pivots (origin + 5 waves).

//@version=1
init = () => {
  indicator({ onMainPanel: true, format: 'inherit' });
};

onTick = () => {
  if (index % 100 === 0) { // draw every 100 bars
    // 1) Define the six anchors
    const O  = newPoint(time(120), low(120));
    const P1 = newPoint(time(100), high(100));
    const P2 = newPoint(time(85),  low(85));
    const P3 = newPoint(time(65),  high(65));
    const P4 = newPoint(time(45),  low(45));
    const P5 = newPoint(time(25),  high(25));

    // 2) Style options
    const style = {
      fillBackground: true,
      transparency: 80,
      showLabels: true,
      line: { linestyle: 0, linewidth: 2, color: color.green },
      background: color.rgba(0, 255, 0, 0.2)
    };

    // 3) Draw Impulse Wave
    elliottImpulseWave(O, P1, P2, P3, P4, P5, style);
  }
};

Tips

  • Wave 3 is usually the strongest and longest wave — use it as a confirmation of trend strength.

  • Combine with Fibonacci extensions: Wave 3 often extends 1.618 of Wave 1, and Wave 5 often equals Wave 1.

  • Works best on trending markets, not sideways ranges.

Warning

  • Don’t try to force a 5-wave count where it doesn’t exist — Elliott Waves work only with clear, impulsive structures.

Good Practice

  • Keep Elliott waves styled consistently so you can quickly distinguish impulse vs correction.

  • Validate with momentum indicators (like RSI or MACD) to confirm the wave structure.

Last updated