DMI
What SteadyEdge calculates
This page documents the exact runtime calculation for the listed filter IDs. Formula symbols use O , H , L , C , and V for the current candle open, high, low, close, and volume; p is the configured lookback.
- Registry filter IDs: dmi_plus , dmi_minus , dmi_spread
Exact formula
TR = max(H-L, abs(H-C_prev), abs(L-C_prev))
+DI = 100*RMA(+DM,di_length)/RMA(TR,di_length)
-DI = 100*RMA(-DM,di_length)/RMA(TR,di_length)
spread = +DI - -DI
Parameters, defaults, and bounds
- di_length : default 14 ; 1–100
How the rule passes
above requires a strict > comparison.
below requires a strict < comparison.
cross_above requires the previous value below the threshold and the current value at or above it.
cross_below requires the previous value above the threshold and the current value at or below it.
Data, timing, and warm-up
Candle filters use the rule timeframe and the latest candle at or before the evaluation time. A non-finite calculated value does not pass.
Every rule in the same filter set must pass. Test Filters and a backtest validate the complete set.
Related articles
- Filters Reference
- How Entry Filters Work
- Timeframe, Operator, Value, And Params