Exp_ROC2_VG
This EA uses a dual Rate-of-Change (ROC2_VG) custom indicator with two configurable momentum-type calculations (MOM, ROC, ROCP, ROCR, ROCR100) on different periods to generate crossover signals for opening and closing buy/sell positions. It features money management options, stop loss/take profit, signal inversion, and processes signals only on new bars for efficiency.
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 strategy is based on a dual momentum indicator crossover concept, using two ROC-type indicators with different periods (default 8 and 14) to generate signals when the fast momentum line crosses above or below the slow momentum line. Entry conditions: a buy signal is generated when the fast indicator crosses above the slow indicator (golden cross), and a sell signal when it crosses below (death cross), with crossover confirmation requiring the previous bar to show the opposite relationship. Exit conditions include: reverse crossover signal triggers position closure, stop loss (default 1000 points), and take profit (default 2000 points). Position sizing is managed through the MM parameter and MMMode enumeration, supporting multiple modes including fixed lot size, balance percentage, free margin percentage, and others. Money management relies on the TradeAlgorithms.mqh library providing standardized functions with 5 margin calculation modes. The strategy also provides a signal inversion feature (Invert) that swaps buy and sell signals, applicable for counter-trend trading scenarios.
Strengths
- Supports 5 momentum calculation types (MOM/ROC/ROCP/ROCR/ROCR100) providing high strategy flexibility
- Has complete stop loss/take profit settings and multiple money management modes for comprehensive risk control
- Processes signals only on new bars, avoiding repeated trades and tick-level overtrading
- Provides signal inversion feature to adapt to different market conditions
- Independent buy/sell open and close switches allow fine-grained position control
Weaknesses
- Depends on external custom indicator ROC2_VG and library TradeAlgorithms.mqh, cannot run without them
- Default stop loss of 1000 points and take profit of 2000 points are large and may not suit all instruments on H4
- No additional filters (trend confirmation, volatility filter), pure momentum crossover prone to frequent false signals in ranging markets
- Lacks maximum position count limit and daily max loss limit risk controls
- CopyBuffer reads only 2 data points for crossover detection, which may produce false signals when data is incomplete
Possible improvements
- Add a trend filter (e.g., higher timeframe MA direction) to avoid frequent entries in ranging markets
- Add maximum simultaneous position limits and account-level risk controls (max drawdown limit, daily max loss limit)
- Add additional validation for indicator data integrity to prevent false signals when CopyBuffer returns incomplete data
Risk assessment
Overall risk: Medium
- Pure momentum crossover strategy prone to frequent false signals in ranging markets leading to consecutive losses
- Default 1000-point stop loss may be too large for some instruments, causing significant single-trade losses
- Lacks maximum position count and account risk ceiling controls, leaving risk exposure uncontrolled in extreme markets
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Money management parameter, lots or ratio |
MMMode | LOT | Margin calculation mode (fixed lots, balance percentage, etc.) |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum allowed slippage |
BuyPosOpen | true | Allow buy to open |
SellPosOpen | true | Allow sell to open |
BuyPosClose | true | Close long positions on reverse signal |
SellPosClose | true | Allow closing short positions on signal reversal |
Invert | false | Invert buy/sell signals |
InpInd_Timeframe | PERIOD_H4 | trend_arrows indicator timeframe |
ROCPeriod1 | 8 | First ROC indicator period |
ROCType1 | MOM | First ROC indicator type |
ROCPeriod2 | 14 | Second ROC indicator period |
ROCType2 | MOM | Second ROC indicator type |
SignalBar | 1 | Signal bar index (0 for current bar) |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.