Exp_Q2MA
This EA trades based on crossover signals from the Q2MA custom indicator, which uses configurable smoothing algorithms (SMA, EMA, JJMA, T3, etc.). It opens buy positions when the upper indicator line crosses above the lower line and sell positions on the opposite crossover, with optional position closing on signal reversal. Money management supports multiple margin modes including fixed lot sizing.
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
This EA employs a dual-line crossover trend-following strategy, relying on two smoothed lines from the Q2MA custom indicator to determine market direction. Entry conditions: a buy signal is generated when the upper line crosses above the lower line, and a sell signal is generated on the opposite crossover, with an optional inversion feature. Exit conditions include configurable stop-loss and take-profit levels, plus optional closing of opposite positions upon signal reversal. Position sizing is controlled via the MM parameter with five money management modes: free margin-based, balance-based, loss-adjusted free margin, loss-adjusted balance, and fixed lot sizing. The strategy detects signal changes only on new bar formation using the CIsNewBar class, with a SignalBar parameter controlling signal lag to avoid false signals on incomplete bars. The smoothing algorithm is highly configurable, supporting advanced methods like JJMA, JurX, ParMA, T3, VIDYA, and AMA for improved signal quality.
Strengths
- Supports multiple advanced smoothing algorithms (JJMA, T3, VIDYA, etc.) for tunable signal quality
- Complete risk parameters with stop-loss, take-profit, and slippage control
- New bar detection mechanism prevents duplicate signals; SignalBar parameter avoids false triggers on incomplete bars
- Independent buy/sell direction switches provide high flexibility
- Opposite position closing on signal reversal reduces holding risk
Weaknesses
- Default SL=1000 and TP=2000 points are large and may be unsuitable for shorter-term trading
- No trailing stop or position addition mechanism, limiting profit-locking capability during favorable moves
- Depends on external custom indicator Q2MA and include files, increasing deployment complexity
- No trading session or spread filter, potentially opening positions during unfavorable conditions
- MM=0.1 has no practical effect in LOT mode, creating parameter ambiguity
Possible improvements
- Add trailing stop functionality to lock in profits during extended trends
- Add trading session filter and spread filter to avoid entries during high spread or low liquidity periods
- Add position count check and maximum position limits to prevent over-concentration risk
Risk assessment
Overall risk: Medium
- No spread filter means stop-losses can be easily triggered in high-spread environments
- Default 1000-point stop-loss is large, potentially causing larger-than-expected single-trade losses
- No maximum position limit may lead to consecutive entries and cumulative losses in choppy markets
- Dependency on external indicator files can cause initialization failures if missing
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 |
XMA_Method | MODE_T3 | Smoothing algorithm type |
XLength | 8 | Smoothing period length |
XPhase | 15 | Smoothing phase (JJMA: -100~+100, VIDYA: CMO period, AMA: fast MA period) |
SignalBar | 1 | Signal bar index (0 for current bar) |
Similar Trend Following EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.