EA-312 · Momentum

Expert_ABH_BH_MFI

This EA uses the MFI (Market Facilitation Index) indicator smoothed by a Moving Average as a momentum signal filter within the MQL5 Standard Library Expert framework. It opens and closes positions based on threshold values applied to the CBH_BH_MFI signal, with fixed lot sizing and no trailing stop. The strategy relies on the MFI indicator's ability to detect market momentum shifts combined with a MA filter to reduce noise.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryMomentum
RiskHigh risk
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesM15, H1, H4
IndicatorsMFI, MA
AuthorMetaQuotes Software Corp.

Backtest results (H1, about 1 year)

SymbolP&LAnnualMax DDTradesWin rateSharpeRecoveryLosing streakPer tradeStatus
EURUSD-2.95%-2.57%8.79%10.00%————Too few trades
GBPUSD+3.88%+3.36%6.49%10.00%————Too few trades
USDJPY+2.85%+2.47%6.62%10.00%————Too few trades
XAUUSD-57.50%-50.69%76.89%13048.50%-0.10-0.755−$44.23Reliable

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.

Against the other Momentum EAs with a reliable result on the same market: XAUUSD: better than 36% of 75

Month by month

MarketMonths with a gainBest monthWorst month
XAUUSD54%+78.86% 2026-08-52.81% 2026-02

From the backtest equity curve, sampled about every two days; only reliable results.

Blow-up risk: No blow-up pattern found

  • Has no stop loss or trailing stop

On its own this is not a typical blow-up pattern, 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 strategy concept is based on the Market Facilitation Index (MFI) indicator, using a moving average of MFI to identify shifts in market momentum direction. Entry conditions trigger when the CBH_BH_MFI signal value exceeds the opening threshold (default 40), and exit conditions trigger when the signal drops below the closing threshold (default 20), employing a 0-100 threshold system for signal filtering. Exit conditions rely entirely on signal threshold-based closing with no Stop Loss (StopLevel=0) and no Take Profit (TakeLevel=0) configured, which is a significant risk deficiency. Position sizing uses a fixed lot approach (default 0.1 lots) implemented by the CMoneyFixedLot class, without dynamic adjustment based on account balance or volatility. Money management uses a 10% percent parameter with fixed lots, lacking dynamic position sizing based on volatility or risk proportion. The overall strategy framework leverages the MQL5 Standard Library CExpert multi-filter signal architecture, but this EA only uses a single MFI filter, making the signal source relatively one-dimensional.

Strengths

  • Uses the MQL5 Standard Library CExpert framework with clean, well-structured code that is easy to maintain and extend
  • MFI indicator combined with MA smoothing effectively filters market noise and reduces false signals
  • Threshold system (0-100) provides flexible signal strength control for tuning entry/exit sensitivity
  • Framework supports multi-filter extension, making it easy to add additional signal sources for confirmation

Weaknesses

  • Both Stop Loss and Take Profit are set to 0, providing no hard risk protection which could lead to catastrophic losses in extreme market conditions
  • Relies on a single MFI signal filter only, making the signal source one-dimensional and lacking multi-dimensional market analysis
  • Fixed lot money management cannot dynamically adjust position size based on market volatility or account risk
  • No trailing stop mechanism (uses TrailingNone), meaning profitable positions cannot lock in floating gains
  • Lacks spread filter and trading session filter, potentially opening positions under unfavorable conditions

Possible improvements

  • Add Stop Loss and Take Profit parameters with at least a default SL to prevent extreme losses; consider ATR-based dynamic stop distance
  • Add multi-timeframe confirmation or additional indicator filters (e.g., trend-direction MA, volume confirmation) to improve signal reliability
  • Implement volatility-based (ATR) dynamic position sizing and trailing stop to replace the current fixed lot and no-trailing-stop approach

Risk assessment

Overall risk: High risk

  • Stop Loss and Take Profit are both 0, providing absolutely no hard risk protection
  • Single indicator signal source is prone to frequent false signals in ranging markets leading to consecutive losses
  • No spread filter may result in unfavorable entries under high spread conditions
  • Pending order expiration of only 4 bars may cause frequent triggering and expiration during low liquidity periods

Evaluation scores

Code quality4.0
Strategy logic2.0
Risk management1.0
Robustness2.0
Innovation2.0
Documentation2.0
Overall2.2

Parameters

ParameterDefaultDescription
Signal_ThresholdOpen40Open signal threshold [0...100], open when signal exceeds
Signal_ThresholdClose20Close signal threshold [0...100], close when signal falls below
Signal_PriceLevel0.0Trade execution price level, 0 for market execution
Signal_StopLevel0.0Stop loss level (points), 0 means no SL set
Signal_TakeLevel0.0Take profit points
Signal_Expiration4Pending order expiration (bars)
Signal__PeriodMFI37MFI indicator period
Signal__PeriodMA11MFI MA smoothing period
Signal__Weight1.0Signal weight [0...1.0]
Money_FixLot_Percent10.0Money management percentage
Money_FixLot_Lots0.1Fixed trading lot size

Similar Momentum EAs

Backtests are historical simulations and do not guarantee future results. Not financial advice.

Get the weekly Arena report

One email a week: ranking changes, new signals and new research. No spam; unsubscribe any time.