exp_multic
A multi-currency martingale-style EA that simultaneously trades 10 currency pairs without any technical indicators. It increases position size when a trade is profitable and reverses direction when losing, closing all positions when overall portfolio profit or loss thresholds are hit.
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: High
- Increases the position size after losses (martingale)
- Has no stop loss or trailing stop
- Can hold up to 10 positions at once
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 EA's strategy concept is a multi-currency anti-martingale variant that uses profit/loss feedback rather than technical indicators to drive trading decisions. Entry conditions: when no position exists for a symbol and free margin exceeds the threshold, it opens a position in the predetermined direction (BUY or SELL) at minimum lot size. Exit conditions include three mechanisms: first, when the portfolio-wide equity-balance difference exceeds the loss or profit threshold, all positions across all 10 pairs are closed simultaneously; second, when an individual position's profit exceeds Lot[i]*k_change, a new minimum-lot trade is added in the same direction (position scaling); third, when an individual position's loss exceeds -Lot[i]*k_change, the direction is reversed and the position is closed. Position sizing follows an anti-martingale approach: the lot size increases by minLot each time the position is profitable enough, and resets to minLot upon direction reversal. Money management relies on global portfolio-level stop-loss and take-profit thresholds plus a margin requirement for new entries, but lacks per-trade stop-loss protection, allowing risk exposure to grow significantly during adverse market conditions.
Strengths
- Multi-currency diversification reduces dependence on any single pair's movement
- Anti-martingale approach amplifies gains during trending markets by scaling into winners
- Portfolio-level stop-loss and take-profit provide overall risk boundaries
- No technical indicators required; logic is simple and straightforward for debugging
Weaknesses
- Anti-martingale causes repeated reversals and commission drain in ranging markets
- No per-trade stop-loss protection; individual position losses can far exceed expectations
- Position scaling can cause lot sizes to grow uncontrollably, risking margin calls
- Same parameters applied to all 10 pairs without accounting for individual volatility differences
- Global stop-loss of 1900 may be too tight for a 10-pair portfolio, causing premature liquidation
Possible improvements
- Add per-symbol stop-loss and take-profit instead of relying solely on portfolio-level thresholds
- Dynamically adjust k_change and k_closse based on each pair's ATR or volatility characteristics
- Add new bar check to prevent excessive trading on every tick
- Implement spread filtering and maximum position size limits to prevent overexposure in extreme markets
Risk assessment
Overall risk: Dangerous
- Anti-martingale scaling can cause unlimited lot growth, risking account blowup in extreme markets
- No per-trade stop-loss; maximum per-symbol loss is only controlled by k_change reversal, but immediate re-entry in opposite direction can compound losses
- Global stop-loss can be gapped through during illiquid periods, resulting in actual losses far exceeding the threshold
- Simultaneous 10-pair positions without correlation risk management can cause systemic losses during black swan events
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
loss | 1900 | Global stop loss threshold (balance-equity diff), closes all positions |
profit | 4000 | Global take profit threshold (equity-balance diff), closes all positions |
margin | 5000 | Minimum free margin required to open new positions |
minLot | 0.01 | Minimum lot size and incremental step per addition |
k_change | 2100 | Condition coefficient for adding/reversing, multiplied by current lots |
k_closse | 4600 | Single-trade profit close coefficient, multiplied by min lot |
Similar Martingale EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.