ML Signal Filter EA
OLS regression + single-layer neural network hybrid — a non-repainting confluence filter that rejects low-quality signals before they reach the order book.
ML Signal Filter is not a signal generator — it's a signal gatekeeper. A lightweight OLS regression estimates the expected close of the next bar; a single-layer neural network learns the error distribution of that regression on live data and outputs a confidence score. Only when both models agree above threshold does the EA fire. Non-repainting by construction: the signal bar is closed before the model sees it.
What makes it different.
- Hybrid OLS + neural net — OLS regression produces a directional expectation; a single hidden-layer NN (4 inputs, 6 hidden, 1 output) produces a confidence score. Both must agree above threshold
- Non-repainting confluence — models see only closed-bar data; no lookahead, no repaint, no alignment between backtest and live that doesn't hold up
- 987 lines of pure MQL5 — no Pine Script source, no external dependencies, no third-party DLLs; ships as a single .mq5 file with full documentation headers
- Online error tracking — the NN continuously updates its error distribution as new closed bars arrive, so the confidence threshold self-calibrates to regime shifts without manual re-optimization
- Pre-tuned for majors + gold — EURUSD, GBPUSD, XAUUSD presets included; M15 for scalping-friendly prop challenges, H1 for swing-style accounts
- Lightweight parameter surface — 15 inputs total; the NN weights are trained in-sample and locked, so there's no ongoing optimizer dependency
- Drop-in filter mode — can be run standalone or chained downstream of other EAHQ systems (kNN, SuperTrend AI, Lorentzian) as a confluence veto. Reduces trade count ~35%; lifts PF ~0.25
- Configurable confidence threshold — 0.55 (looser, more trades) through 0.75 (strictest, highest-conviction only); 0.65 is the pre-tuned default
- ATR-based risk — fixed-fractional sizing with per-trade hard stop, trailing stop, and break-even; daily loss kill-switch
- Prop-firm friendly — 7.4% max DD under default preset, naturally under the 10% cap; news-blackout input wires directly to FTMO/MFFX red-flag events
Simulated on $10k starting equity at the stated CAGR. Past performance does not guarantee future results. See risk disclosure.
Every input, documented.
| Parameter | Default | What it controls |
|---|---|---|
| InpFeatureRSI | true | Include RSI(14) as an input feature to the NN. Disabled only for ablation testing. |
| InpFeatureCCI | true | Include CCI(20) as an input feature. Historically the second-most-important feature after RSI. |
| InpFeatureROC | true | Include Rate-of-Change(10). Momentum feature — helps in trending regimes. |
| InpFeatureATRRatio | true | Include ATR(14) / ATR(50) ratio. Volatility regime feature — down-weights NN confidence in high-vol environments. |
| InpOLSLookback | 50 | Bars of history used by the OLS regression. 30 = fast-adapting, 100 = stable across regimes. |
| InpNNHidden | 6 | Neurons in the hidden layer. Increasing beyond 8 offers marginal improvement; 6 is the pre-tuned default. |
| InpNNLearningRate | 0.01 | Online error-tracking rate. Lower = slower adaptation to regime change. The NN weights themselves are static; this controls the error-distribution update speed. |
| InpConfidenceThreshold | 0.65 | Minimum NN confidence score required to fire. 0.55 looser, 0.75 strictest. 0.65 is the default. |
| InpRiskPercent | 0.75 | Equity % risked per trade. 0.5% for prop challenges, 0.75–1.0% for live accounts. |
| InpSLATRMult | 1.5 | Stop loss distance in ATR multiples. |
| InpTPATRMult | 3.0 | Take profit target in ATR multiples. Default 2:1 R:R. |
| InpTrailATRMult | 1.0 | Trailing stop distance in ATR multiples. |
| InpBreakeven | true | Move SL to entry once profit exceeds breakeven ATR threshold. |
| InpMaxDailyLoss | 3.0 | Daily loss kill-switch in % of starting equity. |
| InpNewsBlackoutMinutes | 30 | Minutes of no-trade around red-flag news events. 30 is FTMO-compliant. |
Full parameter reference in the PDF user guide included with your license.
Frequently asked.
Is ML Signal Filter a signal generator or a filter?
Both. It can fire standalone on OLS+NN agreement, or act as a confluence veto on top of other EAHQ systems. In filter mode, it reduces trade count ~35% and lifts PF ~0.25 across the lineup.
What makes it non-repainting?
Both the OLS regression and the NN operate only on closed-bar data. The signal bar is fully closed before the models see it. Nothing in the model inputs depends on in-progress bar data, so backtest and live match bar-for-bar.
How do the OLS and NN interact?
OLS produces a directional expectation (expected close of next bar). The NN takes the OLS residual history plus four momentum/volatility features and outputs a confidence score 0-1. A trade fires only when OLS direction agrees with prior bar close AND NN confidence exceeds InpConfidenceThreshold.
Does it work on XAUUSD?
Yes — a gold preset is included. The ATR-ratio feature (Feature 4) is especially useful on gold because it down-weights NN confidence during the Asian-session chop that traps generic trend systems.
Can I run it alongside Lorentzian or kNN ML EA?
Yes — stacking it as a filter over Lorentzian or kNN is the intended power-user setup. Each EA needs its own magic number and its own chart; sizing is managed by each EA independently.
How often does the NN retrain?
The NN weights themselves are trained in-sample and locked at ship. The online adaptation is limited to the error-distribution tracking — which self-calibrates the confidence threshold as live data arrives. You don't re-train weights manually.
What accounts is ML Signal Filter best suited for?
Prop-firm challenges ($10k–$200k) and lower-risk live accounts. 7.4% max DD is well inside the 10% FTMO cap even on default settings. Less impressive on accounts above $500k where the trade count becomes a drag on absolute returns.
Ready to run ML Signal Filter EA?
Lifetime license. All presets included. Direct developer support.