A directional movement indicator built from two oscillating lines — +VI (positive vortex) measures upward movement, −VI (negative vortex) measures downward movement. Their crossovers signal trend changes. Conceptually similar to the +DI/−DI portion of ADX/DMI but with a simpler structure and no separate trend-strength line.
Vortex Indicator(14) on MES daily — crossover signal
What it measures
- Upward directional movement (+VI). Sum of upward "vortex movements" over the lookback divided by sum of true ranges.
- Downward directional movement (−VI). Same calculation with downward movements.
- Crossover signals. When +VI crosses above −VI, trend bias shifts bullish; vice versa for bearish.
Formula
How AlgoLift computes it
Step 1 — vortex movements per bar:
+VM[t] = |High[t] − Low[t-1]|
−VM[t] = |Low[t] − High[t-1]|
Step 2 — smoothed sums over the period:
+VI = sum(+VM) over period / sum(TR) over period
−VI = sum(−VM) over period / sum(TR) over period
Where TR is the true range (the same calculation used in ATR).
Both +VI and −VI oscillate around 1.0. When +VI > −VI, the market has more upward vortex movement than downward — bullish. When −VI > +VI, the opposite.
Developed by Etienne Botes and Douglas Siepman in 2010.
Inputs in AlgoLift
| Setting | Default | Range | Notes |
|---|---|---|---|
| Period | 14 | 2–200 | Lookback for summing vortex movements and true range. |
Recommended periods
- 7–10 (fast): Short-term trading. More frequent crossovers.
- 14 (default): Standard. Works for daily and intraday alike.
- 21–28: Slower — for swing strategies.
Outputs in AlgoLift
| Handle | Type | Plotted | Notes |
|---|---|---|---|
| +VI | Numeric | Always | Positive vortex line. Values > 1 with > −VI = bullish trend. |
| −VI | Numeric | Always | Negative vortex line. Values > 1 with > +VI = bearish trend. |
| Difference | Numeric | On select | +VI − −VI. Positive = bullish, negative = bearish. |
| Direction | Numeric | On select | 1 when +VI > −VI (bullish), −1 otherwise. |
| Slope | Numeric | On select | Rate of change of the Difference. |
Vortex node — default state
How to read it
- +VI > −VI: Bullish bias. The further +VI sits above −VI, the stronger the upward pressure.
- −VI > +VI: Bearish bias.
- +VI/−VI crossover: Trend direction change signal — the primary Vortex trade trigger.
- Both lines near 1.0: Indecisive market, no clear directional bias.
- Both lines extended away from 1.0: Strong trend in the direction of the higher line.
Vortex is the simpler cousin of ADX/DMI. It gives direction (via the crossover) but not strength (no separate ADX-like line). Use Vortex when you want a clean direction signal without the complexity; use ADX/DMI when you also need to know whether the trend is strong enough to trade.
Best in / worst in
Best in clearly trending markets, on instruments where you need a simple bullish/bearish flag without overhead. Works particularly well as a confirmation indicator alongside a primary trend-strength filter.
Worst in sideways chop — the +VI/−VI lines cross repeatedly producing whipsaw signals. Also limited because Vortex doesn't tell you whether a crossover happened during a meaningful trend or during noise.
Three setups
1. Vortex crossover with strength filter
The canonical Vortex entry — crossover gated by an external trend-strength filter.
- Long: +VI crosses above −VI AND ADX/DMI > 20 (trend exists).
- Short: −VI crosses above +VI AND ADX > 20.
Vortex provides the direction; ADX provides the strength confirmation. The combination is much more robust than either alone.
Vortex crossover gated by ADX strength
2. Difference threshold entry
Use the Difference output for a magnitude-based entry rather than a crossover.
- Long: Difference > 0.15 (meaningfully bullish, not just barely above zero) AND Difference slope > 0.
- Short: Difference < −0.15 AND Difference slope < 0.
The threshold filter requires meaningful divergence between +VI and −VI, eliminating the noise around zero.
3. Direction as a regime filter
Use Direction output (1 or −1) as a binary regime flag for unrelated strategies.
- Long-only mode: Direction = 1.
- Short-only mode: Direction = −1.
A no-tuning regime gate that runs in parallel with a primary strategy.
Advanced patterns in AlgoLift
Vortex Difference for position sizing. Scale position size by the absolute value of the Difference output: size = base × min(1.5, |Difference| / 0.3). Stronger directional readings produce larger positions; weak readings produce small or no positions.
Direction output in a Conditional Flow. Route the strategy between long-bias and short-bias sub-graphs based on Vortex Direction. Single graph, two regime-conditional behaviors.
Vortex + Cooldown for crossover strategies. Vortex crossovers in chop can fire 3-4 times in a few bars. Pair the entry with a Cooldown condition requiring Vortex Direction to remain stable for N bars before re-entry. Eliminates the worst whipsaw losses.
Common mistakes
- Trading every crossover. Without a strength filter, Vortex crossovers in chop are pure noise. Pair with ADX, KAMA's Efficiency Ratio, or a longer-period regime indicator.
- Confusing Vortex with the older +DI/−DI. They're conceptually similar but mathematically different. Vortex uses absolute differences from previous high/low; +DI/−DI uses directional movement calculated against the previous bar. Signals don't always agree.
- Tuning the period too aggressively. Vortex at very short periods (3–5) is essentially noise. Standard 14 is hard to beat.