OptiNod Academy

VIDYA — Adaptive Momentum-Weighted Average

A moving average that adapts automatically to volatility, producing fewer false signals in ranges than an EMA.

VIDYA is a moving average that changes its response speed based on the current market environment. When the trend is strong, it tracks price quickly. In a range, the average line nearly stalls, reducing false crosses.

An EMA follows price at the same speed whether the market is ranging or trending, so sideways markets create crosses on every small fluctuation. VIDYA, by contrast, lowers its smoothing coefficient when momentum weakens. The average flattens, and fewer signals are generated in the first place.

The key reference is the slope of the average line. If VIDYA is flat, keep entry tools turned off. Treat a bar as a trend-reversal candidate only when price breaks out of the range and VIDYA begins to slope.

In a range, EMA keeps moving while VIDYA stalls
In a range, EMA keeps moving while VIDYA stallsWhen momentum is low, VIDYA lies almost flat and reduces false crosses.

CMO — An Efficiency Ratio for Trend Strength

VIDYA adapts to how consistently volatility moves in one direction, not just to its size. The absolute value of Chande’s CMO, or Chande Momentum Oscillator, acts as the gate that adjusts alpha.

CMO is the ratio of the difference between the sum of gains and the sum of losses over N bars, divided by their combined total. In plain terms, it is an efficiency ratio. It distinguishes whether the same volatility is moving steadily in one direction, which is a trend, or alternating up and down, which is a range. One detail matters: scale. The standard CMO indicator is displayed from -100 to +100, but VIDYA uses the absolute value after normalizing it to -1 to +1 by dividing by 100. Whenever this article refers to absolute CMO values between 0 and 1, it uses that normalized scale. A normalized absolute CMO close to 1, or close to 100 on the standard indicator scale, means a strong one-way trend. A value close to 0 means a range oscillating in roughly equal proportions up and down.

This measurement makes VIDYA different from other adaptive averages such as AMA or KAMA. VIDYA adapts to how consistently volatility is moving in one direction, so it behaves differently from tools that react only to the size of volatility. It responds slowly to large volatility inside a range, but quickly to large volatility during an active trend. In other words, the same price movement carries different meaning depending on the current market state, and that difference is reflected directly in the moving average.

When ETH stayed in a $2,900-$3,200 range throughout July 2024, normalized absolute CMO was mostly below 0.3, or below 30 on the standard indicator scale. Over the same period, EMA(14) produced five false golden/death crosses, while VIDYA(14) stayed almost flat and never generated a single clear signal. In a range, VIDYA’s value is that it stays out of the way.

The CMO gate opens and closes with the current market state
The CMO gate opens and closes with the current market stateWhen movement in one direction becomes dominant, the average follows price faster.

The Line’s Slope Is the Entry Gate

Traders using EMA usually need to check separate conditions before taking an entry signal, such as whether ADX is above 20 or whether price is still inside the prior swing. With VIDYA, the average line itself performs that role. If it is flat, all entry signals are off. If it clearly slopes, evaluate entry candidates in that direction.

This simplification reduces the number of decisions. While VIDYA is flat, the system stays off. Reviewing every buy and sell setup inside a range tends to repeat five to ten false entries. Since trend-following systems usually suffer their largest statistical losses in ranges, this single gate can materially change system expectancy.

Flat VIDYA keeps entries off; a clear slope opens entries in that direction

The Wake-Up Zone — From Flat to Sloping

The strongest VIDYA entry occurs on the bar where the average begins turning from flat to sloping. As a range ends and a trend begins, normalized absolute CMO rises from 0.3 or lower to 0.5 or higher, or from 30 or lower to 50 or higher on the standard indicator scale, increasing alpha.

> After ETH trades sideways for a month in a $2,500-$2,700 range,

> VIDYA(14) begins turning upward from flat, with slope at least 1 standard deviation above the average slope of the prior five bars.

> At the same time, price closes above the range high at $2,700.

> Enter long at that bar’s close. Place the stop below the range midpoint at $2,600.

> If VIDYA flattens again or price closes below the range low at $2,500, treat the thesis as invalid.

The key is that VIDYA starting to slope and price breaking out of the range should happen on the same bar. When both signals appear together, the probability of a false breakout clearly falls. If price alone leaves the range while VIDYA remains flat, it is likely not a genuine trend reversal.

The same setup can be inverted for short entries on a breakdown below the range low.

Breakout and VIDYA slope should converge on the same bar
Breakout and VIDYA slope should converge on the same barIf price breaks out but VIDYA remains flat, the move may be a false breakout.

An Average That Adapts to Both Ranges and Trends

VIDYA’s behavior can be summarized in one line: in ranges it acts like an SMA, and in trends it acts like an EMA. When CMO is low, alpha shrinks, so the average moves slowly and produces smoothing closer to an SMA. When CMO is high, alpha rises toward EMA-like levels and follows price quickly.

This automatic switching creates one important effect on pullback entries within a trend. In strong trends, VIDYA can hug price even more closely than an EMA. As alpha increases, it catches up even to shallow pullbacks. That makes it easier to identify pullback-buying opportunities on smaller swings, but it also narrows the stop distance.

The solution is simple. For pullback entries inside a trend, place the stop 0.5 to 1 ATR below VIDYA. If the stop is attached directly to the average line, normal volatility will stop you out repeatedly. Adding ATR-based distance absorbs normal volatility and exits only when the trend actually breaks.

CMO Period as a Second Degree of Freedom

Standard VIDYA is often described as having one parameter, period, but most implementations accept two inputs: the VIDYA period itself and the CMO period. Traders often set both to 14 or both to 9, but separating them allows finer tuning.

A shorter CMO period, such as 5, makes the average react quickly even to short-term changes in volatility. The average can wake up easily on small trend attempts inside a range. A longer CMO period, such as 21, reacts only to larger flow shifts and ignores short-term volatility inside the range.

By separating the two periods according to the asset’s behavior, you can choose which lookback’s efficiency-ratio changes the average should respond to. For BTC daily charts, VIDYA(14, CMO=14) is usually enough. For altcoins with long, deep ranges, VIDYA(14, CMO=21) filters out false starts better.

Two Types of VIDYA — Check Your Implementation

Chande’s original 1992 version used a standard-deviation ratio as the adaptive gate. In 1995, in *The New Technical Trader*, he redefined VIDYA around CMO. As a result, two algorithms share the same VIDYA name.

Most TradingView community versions are CMO-based, but some older libraries use the standard-deviation-ratio version. The same data and parameters can therefore produce different results across two platforms. If you do not check which definition your tool uses, it can be difficult to reproduce backtest results.

Where VIDYA Can Still Fail

  • Delayed reaction just after a trend begins: Because VIDYA keeps alpha low inside a range, it lags EMA by a beat on the first breakout bar. This is the cost paid for fewer false signals in ranges. A rule that enters at the close of the breakout bar naturally absorbs this delay.
  • Entries without volume confirmation: When VIDYA turns from flat to sloped and volume clearly rises above its prior average, a real trend start becomes more likely. If volume stays near normal, the turn may be false.
  • HTF conflict: If 1-hour VIDYA wakes up while daily VIDYA is still flat, the move is likely to remain short-term volatility. Reliability improves clearly only when the higher-timeframe VIDYA slope starts to follow.
VIDYA behaves differently in ranges and trends
VIDYA behaves differently in ranges and trendsIt lies flat during consolidation, slopes as the breakout begins, and hugs price in a strong trend.