Signal Filters
Filters sit between pattern detection and order placement. A signal is acted on only if every enabled filter passes. This suppresses false entries in choppy, over-extended, or low-momentum markets.
All filters are individually toggleable — enable only the ones that improve results on your pair and timeframe.
EMA Trend Filters
Three exponential moving averages can gate signals:
| Input | Default | Purpose |
|---|---|---|
Enable Fast EMA Filter | false | Require price above/below fast EMA (default period 11) |
Enable Slow EMA Filter | true | Require price above/below slow EMA (default period 21) |
Enable Slowest EMA Filter | true | Require price above/below slowest EMA (default period 70) |
Require Strict EMA Order | true | All active EMAs must be stacked in trend direction |
When Require Strict EMA Order is true, EMAs must be aligned for the signal direction (e.g. for a BUY: fast EMA above slow EMA above slowest EMA). This prevents entries against established trend structures.
EMA Slope Filter
Use EMA Slope Filter — additionally requires the slow EMA slope (measured over EMA Slope Lookback Bars closed bars) to exceed Min Slow EMA Slope (ATR). Useful for filtering out flat, sideways conditions.
EMA Distance Filter
Use EMA Distance Filter — requires the signal candle to be at least Min Price Distance From Slow EMA (ATR) ATR units away from the slow EMA, ensuring entries are not too close to a mean-reversion level.
MA Crossover Filter
Enable Moving Average Crossover Filter — requires the fast EMA to have crossed above (BUY) or below (SELL) the slow EMA recently, confirming directional momentum is fresh.
Trend Filter Mode selects the behaviour:
| Mode | Behaviour |
|---|---|
EMA Classic | Standard EMA cross / stack check (default) |
EMA Anti-Chop | Regime-aware filter that suppresses signals in ranging conditions |
ADX Trend Strength Filter
Use ADX Trend Strength Filter — requires the ADX value to exceed Min ADX Trend Strength before a signal is acted on. Prevents entries in directionless, low-volatility markets.
| Input | Default |
|---|---|
ADX Period | 14 |
Min ADX Trend Strength | 20.0 |
ATR Volatility Filter
Use ATR-based SL Filter — compares the calculated stop loss distance against an ATR multiple. Signals where the natural SL is too wide are rejected.
| Input | Default | Applies to |
|---|---|---|
Max SL for Banana signals (xATR) | 2.0 | B1, B2, B3 |
Max SL for Seed signals (xATR) | 1.5 | Seed TP, TTP |
Particularly useful for avoiding entries after news spikes where the signal candle range (and thus SL) is abnormally wide.
Daily Range Filter
Use Daily Range Filter — measures the current day's range as a percentage of the Average Daily Range (ADR) over ADR Period days. Signals are blocked when the day's range exceeds Max Daily Range %.
Use Session Movement Filter — measures movement from Session Start Hour to the current bar as a percentage of ADR. Blocks entries when too much ground has already been covered in the session.
Open Price Direction Filter
Use Open Price Filter — captures the reference close price at Reference Hour (default 10:00). BUY signals are only permitted if current price is above that reference; SELL signals only if below it. Aligns entries with the day's early directional bias.
SL distance limits
Independent of the ATR filter, absolute pip limits can be set on the stop loss:
| Input | Default | Effect |
|---|---|---|
Minimum SL Distance | 3.0 pips | Signal rejected if SL is smaller than this |
Maximum SL Distance | 0 (disabled) | Signal rejected if SL is wider than this |