Download MetaTrader 5

Watch how to download trading robots for free

Interesting script?
So post a link to it -
let others appraise it

You liked the script? Try it in the MetaTrader 5 terminal

2011.06.28 11:42

Stochastic Momentum Index Blau_SMI - indicator for MetaTrader 5

| English Русский 中文 Español Deutsch 日本語 Português

votes: 15
blau_smi.mq5 (10.9 KB)view

Author: Andrey N. Bolkonsky

Stochastic Momentum Index (SMI) by William Blau is based on Stochastic Momentum Indicator (see Momentum, Direction, and Divergence: Applying the Latest Momentum Indicators for Technical Analysis).

Stochatic Momentum Index is normalized (to half of q-period price range) and mapped into the [–100,+100] interval. The values of SMI is interpreted as overbought (positive) and oversold (negative) states of the market.

  • WilliamBlau.mqh must be placed in terminal_data_folder\MQL5\Include\
  • Blau_SMI.mq5 must be placed in terminal_data_folder\MQL5\Indicators\

Stochastic Momentum Index Blau_SMI


Stochastic Momentum Index is calculated by formula:

                              100*EMA(EMA(EMA( price-1/2*[LL(q)+HH(q)] ,r),s),u)                  100 * SM(price,q,r,s,u)
SMI(price,q,r,s,u) = --------------------------------------------------------------- = -------------------------------------------------
                                       EMA(EMA(EMA( 1/2*[HH(q)-LL(q)] ,r),s),u)            EMA(EMA(EMA( 1/2*[HH(q)-LL(q)] ,r),s),u)


  • price - close price;
  • LL(q) - minimal price (q bars);
  • HH(q) - maximal price (q bars);
  • sm(price,q)=price-1/2*[LL(q)+HH(q)] - q-period Stochastic Momentum;
  • SM(price,q,r,s,u) - triple smoothed q-period Stochastic Momentum;
  • HH(q)-LL(q) - q-period price range;
  • 1/2*[LL(q)+HH(q)] - midpoint of q-period price range;
  • 1/2*[HH(q)-LL(q)] - half of q-period price range;
  • EMA(...,r) - 1st smoothing- exponentially smoothed moving average with period r, applied to:
    • to the Stochastic Momentum;
    • to the half of q-period price range;
  • EMA(EMA(...,r),s) - 2nd smoothing - EMA of period s, applied to result of the 1st smoothing;
  • EMA(EMA(EMA(...,r),s),u) - 3rd smoothing - EMA of period u, applied to result of the 2nd smoothing.

Input parameters:

  • q - period, used for the calculation of Stochastic Momentum (by default q=5);
  • r - period of the 1st EMA, applied to stochastic (by default r=20);
  • s - period of the 2nd EMA, applied to result of the 1st smoothing (by default s=5);
  • u - period of the 3rd EMA, applied to result of the 2nd smoothing (by default u=3);
  • AppliedPrice - price type (by default AppliedPrice=PRICE_CLOSE).


  • q>0;
  • r>0, s>0, u>0. If r, s or u =1, smoothing is not used;
  • Min. rates=(q-1+r+s+u-3+1).

Translated from Russian by MetaQuotes Software Corp.
Original code:

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

The Acceleration/Deceleration Indicator (AC) measures acceleration and deceleration of the current driving force.

Average Directional Movement Index (ADX) Average Directional Movement Index (ADX)

The Average Directional Movement Index Indicator (ADX) helps to determine if there is a price trend.

PA adaptive MACD PA adaptive MACD

Phase accumulation adaptive MACD - completely adaptive MACD

Basket Chart Creator Basket Chart Creator

Basket offline chart creator script using geometric mean method.