EA-301 · Mean Reversion

Expert_AMS_ES_Stoch

This EA uses a custom Stochastic oscillator signal filter (CMS_ES_Stoch) combined with a moving average to generate trade entries and exits within the MetaQuotes standard expert framework. It employs fixed lot money management and no trailing stop, relying purely on the signal thresholds for open/close decisions. The strategy targets overbought/oversold reversals based on Stochastic readings filtered by a short-period moving average.

Open the interactive view (equity curve, symbol switch)

Key facts

RiskHigh risk
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesM15, H1, H4
IndicatorsStochastic, Moving Average
AuthorMetaQuotes Software Corp.

Backtest results (H1, about 1 year)

SymbolP&LAnnualMax DDTradesWin rateSharpeRecoveryLosing streakPer tradeStatus
EURUSD0.00%0.00%0.00%0—————Not convertible yet
GBPUSD0.00%0.00%0.00%0—————Not convertible yet
USDJPY0.00%0.00%0.00%0—————Not convertible yet
XAUUSD0.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

  • 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 core strategy of this EA is mean reversion trading based on a Stochastic oscillator, implemented through the custom signal class CMS_ES_Stoch. Entry conditions are determined by Stochastic parameters with K period (12), D period (8), and slowing period (29), generating signals when the indicator enters overbought or oversold zones, with a 4-period moving average as an auxiliary filter. Exit conditions rely on a signal threshold mechanism, with an open threshold of 40 and a close threshold of 20, automatically closing positions when signal strength falls below the close threshold. Position sizing uses a fixed lot model (CMoneyFixedLot) with a default of 0.1 lots and no dynamic position adjustment. Money management sets a 10% percent parameter, but since fixed lots are used, this only affects margin calculation rather than dynamic sizing. Both Stop Loss and Take Profit are set to 0, meaning the EA relies entirely on signal reversal for exits without hard risk protection. No trailing stop is configured (CTrailingNone), and pending orders expire after 4 bars.

Strengths

  • Uses the MetaQuotes standard expert framework with clear, modular code structure
  • Stochastic oscillator is a proven mean reversion indicator that performs well in ranging markets
  • Signal threshold mechanism provides more flexible entry/exit control than simple crossovers
  • Fixed lot sizing reduces the risk of over-trading due to position calculation errors
  • Pending order expiration (4 bars) prevents stale orders from lingering indefinitely

Weaknesses

  • Stop Loss and Take Profit are both set to 0, lacking hard risk protection which can cause significant losses in trending markets
  • No trailing stop (CTrailingNone) means floating profits cannot be locked and may reverse entirely
  • The 4-period MA filter is too short to provide meaningful filtering, easily generating false signals
  • No explicit new bar check despite EveryTick=false, potentially causing repeated trades on the same bar
  • No spread filter included, trading during high-spread periods can result in immediate losses
  • Signal weight is fixed at 1.0 with only one filter, preventing multi-signal confirmation

Possible improvements

  • Add Stop Loss and Take Profit parameters with at least a reasonable default SL to protect capital
  • Implement spread filtering and new bar checks to avoid trading during high-spread periods and duplicate entries on the same bar
  • Use a longer-period moving average (e.g., 20 or 50 periods) as a trend filter to reduce false signals in choppy markets
  • Add a trailing stop module to replace CTrailingNone, protecting floating profits in winning trades
  • Consider adding additional signal filters (e.g., RSI or ATR) for multi-signal confirmation to improve trade quality

Risk assessment

Overall risk: High risk

  • SL/TP both at 0 means complete reliance on signal-based exits, risking catastrophic losses in extreme market conditions
  • No trailing stop allows profitable trades to fully reverse into losses
  • No spread filter means trading costs may be ignored
  • 4-period MA filter is extremely weak, high risk of false signals

Evaluation scores

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

Parameters

ParameterDefaultDescription
Signal_ThresholdOpen40Open position signal threshold [0...100]
Signal_ThresholdClose20Close position signal threshold [0...100]
Signal_PriceLevel0.0Price level for trade execution
Signal_StopLevel0.0Stop loss level (points), 0=no stop loss
Signal_TakeLevel0.0Take profit level (points), 0=no take profit
Signal_Expiration4Pending order expiration (bars)
Signal__StochPeriodK12Stochastic K-line period
Signal__StochPeriodD8Stochastic D-line period
Signal__StochPeriodSlow29Stochastic slowing period
Signal__StochAppliedSTO_LOWHIGHStochastic price application method
Signal__MAPeriod4Moving average period
Signal__Weight1.0Signal filter weight (0-1.0)
Money_FixLot_Percent10.0Money management percentage
Money_FixLot_Lots0.1Fixed trading lots

Similar Mean Reversion 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.