Author: Andrey N. Bolkonsky
Stochastic Momenum (Stochastic Momentum, SM) by William Blau (see Momentum, Direction, and Divergence: Applying the Latest Momentum Indicators for Technical Analysis).
The q-period Stochastic Momentum is defined as a distance of the current close from the midpoint of q bars.
- The value of Stochastic Momentum indicates the distance between the midpoint of q-period price range.
- The sign of Stochastic Momentum indicates the price position relative to the midpoint of price range: the positive values if the price is higher than midpoint, the negative if the price is lower than midpoint of price range.
Definition of Stochastic Momentum by William Blau
- WilliamBlau.mqh must be placed in terminal_data_folder\MQL5\Include\
- Blau_SM.mq5 must be placed in terminal_data_folder\MQL5\Indicators\
Calculation:
The formula for calculation of q-period Stochastic Momentum is following:
sm(price,q) = price – 1/2 * [LL(q) + HH(q)]
where:
- price – close price;
- q – number of bars, used in calculation of Stochastic Momentum;
- LL(q) – minimal price (q bars);
- HH(q) – maximal price (q bars);
- 1/2*[LL(q)+HH(q)] – midpoint of the q-period price range.
The smoothed q-period Stochastic Momentum is calculated by formula:
SM(price,q,r,s,u) = EMA(EMA(EMA(sm(price,q),r),s),u)
where:
- price – close price;
- q – number of bars, used in calculation of Stochastic Momentum;
- sm(price,q)=price-1/2*[LL(q)+HH(q)] – q-period Stochastic Momentum;
- EMA(sm(price,q),r) – 1st smoothing- exponentially smoothed moving average with period r, applied to q-period Stochastic Momentum;
- EMA(EMA(…,r),s) – 2nd smoothing – EMA of period s, applied to result of the 1st smoothing;
- EMA(EMA(EMA(sm(q),r),s),u) – 3rd smoothing – EMA of period u, applied to result of the 2nd smoothing.
- q – period of Stochastic Momentum (by default q=5);
- r – period of the 1st EMA, applied to Stochastic Momentum (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).