EA-16856 · Momentum

Exp_MFI

This EA trades based on the Money Flow Index (MFI) indicator, entering long positions when MFI is oversold and exiting when overbought, and vice versa for short positions. It uses fixed lot sizing and implements a simple momentum-based strategy with customizable MFI periods and threshold levels. The EA applies the MFI oscillator to identify potential reversal points driven by volume-weighted price action.

Open the interactive view (equity curve, symbol switch)

Key facts

CategoryMomentum
RiskMedium
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesH1, H4, D1
IndicatorsMFI
Author—

Backtest results (H1, about 1 year)

SymbolP&LAnnualMax DDTradesWin rateSharpeRecoveryLosing streakPer tradeStatus
EURUSD0.00%0.00%0.00%0—————No trades
GBPUSD0.00%0.00%0.00%0—————No trades
USDJPY0.00%0.00%0.00%0—————No trades
XAUUSD-72.09%-65.16%93.65%9349.50%-0.15-0.774−$77.52Reliable

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 31% of 75

Month by month

MarketMonths with a gainBest monthWorst month
XAUUSD46%+44.65% 2026-10-45.00% 2026-02

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

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

This EA uses the Money Flow Index (MFI) as its sole trading signal source, implementing a classic momentum reversal strategy. Entry conditions are: go long when MFI crosses above the oversold threshold and go short when MFI crosses below the overbought threshold. Exit conditions rely on MFI reaching the opposite extreme zone to trigger position closure, or using stop-loss/take-profit parameters to control per-trade risk. Position sizing employs a fixed lot approach without dynamic adjustment or percentage-based money management. Money management is relatively primitive, depending solely on user-specified lot sizes without adaptive mechanisms based on account balance or volatility. The overall strategy logic is clear but singular, lacking multi-timeframe confirmation and filtering mechanisms, which makes it prone to frequent false signals and consecutive losses in choppy markets.

Strengths

  • Strategy logic is simple and clear, easy to understand and debug
  • MFI incorporates both price and volume information, providing more reference value than pure price indicators
  • High configurability with user-adjustable MFI period and overbought/oversold thresholds

Weaknesses

  • Lacks multi-timeframe confirmation, a single indicator easily generates false signals
  • Fixed lot sizing without dynamic money management or risk control mechanisms
  • No duplicate order check or new bar detection, potentially opening multiple positions on the same signal
  • Missing spread filter, high spread entries increase costs and hurt profitability
  • Strategy is overly simplistic, lacks trend filter to distinguish ranging and trending markets

Possible improvements

  • Add multi-timeframe trend confirmation, e.g., only execute M15 MFI signals aligned with H1 trend direction
  • Implement dynamic position sizing based on account balance percentage instead of fixed lots
  • Add new bar detection to prevent duplicate entries on the same bar, and incorporate a spread filter

Risk assessment

Overall risk: Medium

  • Fixed lot sizing without money management, large positions can cause excessive single-trade losses
  • No duplicate order check, potentially stacking multiple positions on the same signal amplifying risk
  • Stop-loss defaults to 0, if user doesn't set it then relies entirely on MFI signal for exit, risking large drawdowns

Evaluation scores

Code quality2.0
Strategy logic3.0
Risk management2.0
Robustness2.0
Innovation1.0
Documentation1.0
Overall1.8

Parameters

ParameterDefaultDescription
MFI_Period14MFI indicator calculation period
MFI_Overbought80MFIoverbought threshold
MFI_Oversold20MFIoversold threshold
LotSize0.1Fixed trading lot size
StopLoss0Stop loss in points, 0 means no stop loss
TakeProfit0Take profit in points, 0 means no take profit

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.