5.0 KiB
DSMA Professional (Deviation Scaled Moving Average)
1. Summary (Introduction)
The DSMA (Deviation Scaled Moving Average), developed by John Ehlers, is a sophisticated adaptive moving average that adjusts its speed based on a normalized measure of market volatility.
Unlike other adaptive moving averages that rely on momentum or cycle periods, the DSMA modifies its smoothing factor (alpha) based on the amplitude of an internal oscillator scaled by its own standard deviation. This unique approach results in a filter with a highly desirable behavior:
- In high-volatility, trending markets, the DSMA becomes fast and responsive, closely tracking price action to reduce lag.
- In low-volatility, consolidating markets, the DSMA becomes slow and smooth, flattening out to effectively filter market noise and prevent whipsaw trades.
The DSMA serves as an intelligent, all-in-one trendline that provides visual cues about both the direction of the trend and the current state of market volatility.
2. Mathematical Foundations and Calculation Logic
The DSMA is an Exponential Moving Average where the alpha is dynamically calculated through a multi-stage filtering process.
Required Components
- Period (N): The primary lookback period for the calculation.
- Source Price (P): The price series used for the calculation.
Calculation Steps (Algorithm)
- "Zeros" Oscillator: A simple, zero-mean oscillator is created by taking the difference between the current price and the price from two bars ago:
Zeros = P[0] - P[2]. This helps to "whiten" the price spectrum. - Initial Smoothing (SuperSmoother): The noisy "Zeros" oscillator is smoothed using a SuperSmoother filter. The period of this internal SuperSmoother is set to
N/2. - Standard Deviation (RMS) Calculation: The algorithm calculates the Root Mean Square (RMS), which is a form of standard deviation, of the smoothed oscillator's output over the last
Nbars. - Scaling: The current value of the smoothed oscillator is divided by its RMS. This scales the oscillator's amplitude in terms of standard deviations, creating a normalized volatility measure.
- Adaptive Alpha Calculation: The final adaptive
alphais calculated as being directly proportional to the absolute value of the scaled oscillator:\alpha = \text{Abs}(\text{Scaled Oscillator}) \times \frac{5}{N} - Final EMA Calculation: The DSMA is calculated using the standard EMA formula with the adaptive
alpha:\text{DSMA}_i = \alpha \times P_i + (1 - \alpha) \times \text{DSMA}_{i-1}
3. MQL5 Implementation Details
- Self-Contained Calculator (
DSMA_Calculator.mqh): The entire complex, multi-stage calculation is encapsulated within a dedicated, reusable calculator class. - Heikin Ashi Integration: An inherited
_HAclass allows the calculation to be performed seamlessly on smoothed Heikin Ashi data. - Stability via Full Recalculation: The calculation involves multiple chained, state-dependent filters. To ensure absolute stability, the indicator employs a full recalculation on every
OnCalculatecall.
4. Parameters
- Period (
InpPeriod): The "critical period" of the filter. This single parameter controls both the lookback window for the RMS calculation and the period of the internal SuperSmoother filter (which will bePeriod/2). Ehlers' recommendation for daily charts is 40.- A longer period results in a smoother, slower-adapting filter.
- A shorter period results in a faster, more responsive filter.
- Applied Price (
InpSourcePrice): The source price for the calculation. This unified dropdown menu allows you to select from all standard and Heikin Ashi price types.
5. Usage and Interpretation
The DSMA should be used as an "intelligent" moving average that provides clear visual information about the market's current regime (trending vs. ranging).
1. Adaptive Trend Following & Dynamic S/R
This is the primary use case. The DSMA acts as a single, adaptive trendline.
- In a Trending Market: The DSMA will be angled steeply and follow the price closely. In this state, it acts as a reliable dynamic support level (in an uptrend) or resistance level (in a downtrend). Pullbacks to the DSMA line offer high-probability, trend-following entry opportunities.
- In a Ranging Market: The DSMA will flatten out and move slowly. This is a clear visual signal that the market is consolidating and trend-following strategies should be avoided. The flat line acts as a "mean" or center of gravity for the price action.
2. Volatility Breakout Confirmation
The change in the DSMA's behavior is a signal in itself.
- The Setup: Identify periods where the DSMA has been flat and slow for an extended time, indicating a period of low volatility ("coiling").
- The Signal: When the price breaks out of this consolidation, watch for the DSMA to "wake up." A sharp change in its angle, as it begins to accelerate and track the price, serves as a strong confirmation that the breakout is valid and a new trend may be starting.