Stochastic Momentum Index Calculator
Calculate William Blau’s close-to-range-midpoint distance divided by the same triple-smoothed half range, with all extrema, EMA passes and warm-up boundaries visible.
Enter one range period, three EMA periods and HLC bars
Use completed bars from one symbol, timeframe and feed. Close is measured from the midpoint of each rolling highest-high to lowest-low range.
One completed bar per line. Close must lie inside the high-low range. Separate values with commas, semicolons or tabs.
Latest SMI arithmetic
Entered Chaikin Volatility, KST and SMI 1.0.0.
| Label | Index | High | Low | Close | Highest high | High index | Lowest low | Low index | Midpoint | Distance | Half range | Distance EMA1 | Range EMA1 | Distance EMA2 | Range EMA2 | Distance EMA3 | Range EMA3 | SMI | State |
|---|
How Stochastic Momentum Index is calculated
Half range = 0.5 × (Highest High(q) − Lowest Low(q))
SMI = 100 × EMA3(Distance, r,s,u) ÷ EMA3(Half range, r,s,u)
Version 1.0.0 follows the MetaQuotes William Blau implementation: q completed rows define each range, then the numerator and denominator pass through three first-value-seeded EMAs.
The first reportable index is (q − 1) + (r − 1) + (s − 1) + (u − 1). An EMA period of one passes its source through without adding warm-up.
Assumptions and limits
- Range period must be a whole number from 2 to 200; each EMA period must be from 1 to 200.
- At least q + r + s + u minus three ordered HLC rows are required.
- When the triple-smoothed half range is zero, the published MetaQuotes convention returns zero.
- Rows must use one symbol, timeframe and broker feed.
- Threshold, direction, crossover, divergence, confirmation, entry and exit interpretations are withheld.
Worked example from the audited fixture
How to interpret the result
The value is a smoothed ratio of close distance from the entered range midpoint to half of that range. The three EMA seeds and warm-up boundary materially affect it. A positive number is not converted into a momentum, threshold or trade label.
Frequently asked questions
- Enter one range period, three EMA periods and enough ordered high-low-close rows to complete every warm-up.
- Current close is measured from the midpoint of the rolling highest high and lowest low over q rows.
- It is half of the same rolling highest-high minus lowest-low range.
- Both paths use three sequential first-value-seeded EMAs with the entered r, s and u periods.
- It is one hundred times the triple-smoothed close-to-midpoint distance divided by the triple-smoothed half range.
- It appears at zero-based index q minus one plus r minus one plus s minus one plus u minus one.
- Version 1.0.0 follows the published MetaQuotes convention and returns zero.
- No. Threshold, direction, crossover, divergence, confirmation, entry and exit interpretations are withheld.
Sources and methodology
- MetaQuotes — William Blau Indicators in MQL5 — Published SMI numerator, denominator, triple EMA, seed and reportable-index implementation.
Compare entered range oscillators
Compare the chart feed and trading terms
Use one broker feed, symbol and timeframe for every entered observation, and compare the source history with your terminal before relying on a platform match.
Risk and affiliate disclosure: Leveraged forex and CFD trading can result in substantial losses. These are affiliate links, so ForexMT4Indicators.com may receive compensation if you register or trade through them, at no additional cost to you. Availability and terms vary by jurisdiction and broker entity.

