Expert_ADC_PL_MFI
This EA uses a custom signal filter based on the Market Facilitation Index (MFI) combined with a Moving Average to generate trading signals within the MQL5 Standard Library Expert Advisor framework. It employs fixed lot sizing with no trailing stop, relying solely on the CDC_PL_MFI signal filter for entry and exit decisions with configurable thresholds.
Open the interactive view (equity curve, symbol switch)Key facts
Backtest results (H1, about 1 year)
| Symbol | P&L | Annual | Max DD | Trades | Win rate | Sharpe | Recovery | Losing streak | Per trade | Status |
|---|---|---|---|---|---|---|---|---|---|---|
| EURUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| USDJPY | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
| XAUUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | Not convertible yet |
Why this EA never traded: no entry rule survived the conversion.
Converted from MQL5 to Python and run with the same rules for every EA. Positions use MT5 lot sizes (100,000 units per FX lot, 100 oz per gold lot) with 1:100 leverage, one order at a time, and a stop-out below 10% of the starting balance. Sharpe is computed from the equity curve. Results marked as unreliable are shown for completeness only.
Blow-up risk: No blow-up pattern found
None of the usual blow-up patterns were found in the code, and the account was not stopped out in our backtests. That is not a guarantee: any EA can lose money.
High: stopped out in our backtest, or martingale/grid sizing without a stop loss. Elevated: martingale or grid sizing with a stop loss, or several positions at once without a stop loss. What the label means and what we found →
Strategy analysis
The core strategy of this EA is based on a custom signal filter CDC_PL_MFI that combines the Market Facilitation Index (MFI) indicator with its Moving Average. Entry conditions are determined by the MFI period (default 49) and MA period (default 11), triggering trades when signal strength exceeds the opening threshold (default 10). Exit conditions similarly rely on the signal filter's reverse signal strength exceeding the closing threshold, with fixed stop loss (50 points) and take profit (50 points) levels in place. Position sizing uses a fixed lot model (default 0.1 lots) without dynamic adjustment. Money management employs the CMoneyFixedLot class, controlling risk via a fixed percentage (10%) and fixed lot size. The overall strategy falls under the momentum category, leveraging the MFI indicator to measure market money flow intensity combined with MA smoothing to judge trend direction and trading opportunities. The EA does not use trailing stops, has relatively tight stop loss and take profit (50 points), and pending orders have a 4-bar expiration time.
Strengths
- Clear momentum strategy logic based on MFI indicator, which effectively measures market money flow intensity
- Uses MQL5 Standard Library Expert framework with well-structured, modular code that is easy to maintain and extend
- Fixed stop loss and take profit (50 points) in place, keeping risk controlled without dangerous stopless positions
- Adjustable signal weight allows flexible control over the signal filter's influence on overall trading decisions
- Per-bar execution rather than per-tick (Expert_EveryTick=false) reduces overtrading
Weaknesses
- Fixed 50-point stop loss and take profit without ATR-based dynamic adjustment may not suit all instruments and timeframes
- No trailing stop mechanism (uses TrailingNone), preventing profitable positions from riding trends for larger gains
- Relies on a single signal filter without multi-dimensional confirmation, making it vulnerable to false signals and resulting losses
- Fixed 0.1 lot sizing doesn't dynamically adjust based on account equity and risk, leading to inconsistent risk exposure across different account sizes
- Default MFI period 49 and MA period 11 lack documentation, making it unclear whether they were adequately backtested and optimized
Possible improvements
- Replace fixed stop loss/take profit with ATR-based dynamic adjustment to adapt to different market volatility environments
- Add a trailing stop module to replace TrailingNone, allowing profitable positions to lock in gains and follow trends
- Add multi-timeframe confirmation or combine multiple signal filters to improve entry signal reliability
Risk assessment
Overall risk: Low
- Fixed 50-point SL/TP may be too wide on low-volatility instruments causing larger losses, or too narrow on high-volatility instruments causing frequent stop-outs
- Single signal filter without confirmation mechanism may generate excessive false signals
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
Expert_Title | Expert_ADC_PL_MFI | EA document name |
Expert_MagicNumber | 32035 | EA magic number for order identification |
Expert_EveryTick | false | Execute trading logic on every tick |
Signal_ThresholdOpen | 10 | Open position signal threshold [0...100] |
Signal_ThresholdClose | 10 | Close position signal threshold [0...100] |
Signal_PriceLevel | 0.0 | Price level for trade execution |
Signal_StopLevel | 50.0 | Stop loss level (points) |
Signal_TakeLevel | 50.0 | Take profit level (points) |
Signal_Expiration | 4 | Pending order validity (bars) |
Signal__PeriodMFI | 49 | MFI indicator period |
Signal__PeriodMA | 11 | MA moving average period |
Signal__Weight | 1.0 | Signal filter weight [0...1.0] |
Money_FixLot_Percent | 10.0 | Money percentage |
Money_FixLot_Lots | 0.1 | Fixed trading lot size |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.