Terminator v2z0
A multi-signal martingale-style EA that opens positions based on one of six selectable signal types (MACD, Pivot, Support/Resistance, i_Trend+RSI, i_Trend+RSI+Stochastic, i_Trend+RSI+Stochastic+MFI). It employs aggressive position scaling by doubling lots on subsequent entries when price moves against the position, then switching to 1.5x multiplication after a configurable count, with a trailing stop for exit management.
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: Elevated
- Increases the position size after losses (martingale)
- 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 strategy concept is based on multi-indicator signal confirmation for trade entry, supporting six different signal sources including MACD momentum, Pivot levels, Support/Resistance breakouts, and various combinations of i_Trend with RSI, Stochastic, and MFI. Entry conditions trigger when the selected signal source produces a buy or sell signal without a conflicting opposite signal. Exit conditions include initial take-profit, recalculated weighted-average take-profit after additional entries, and an optional trailing stop. Position sizing employs martingale-style progressive scaling: the first DoubleCount additional entries multiply the starting lot by powers of 2, then switching to 1.5x multiplication thereafter, with each add-on requiring a minimum adverse price movement of Pips points. Money management calculates lot size from account free margin and MaximumRisk when the Lots parameter is set to zero. After adding positions, take-profit is recalculated as the volume-weighted average entry price plus TakeProfit2 points, and a stop-loss is only set on the final MaxCount entry. The trailing stop function moves the stop-loss to breakeven or better once price moves favorably.
Strengths
- Supports six switchable signal sources, providing high strategy flexibility for different market conditions
- Uses object-oriented design with clean signal class inheritance, making it easy to extend with new signal types
- Recalculates volume-weighted average take-profit after adding positions, ensuring coherent profit targets for the overall position
- Includes stop-loss validation and minimum stop-level checks as risk control measures
Weaknesses
- Martingale-style position scaling carries extreme risk; consecutive adverse moves cause exponential lot growth that can blow the account
- Stop-loss is only set on the final MaxCount entry, leaving all prior additions without stop-loss protection against strong trends
- MaxCount=-1 allows unlimited additions, creating unbounded loss potential in extreme market conditions
- CSigi_TrendRSISto class has a copy-paste bug where m_buy is assigned the sell condition, making that signal type completely non-functional
- SolveLots risk calculation is oversimplified, not accounting for leverage and tick value per symbol
Possible improvements
- Fix the m_buy assignment bug in CSigi_TrendRSISto where line 741 incorrectly assigns the sell condition to m_buy instead of the proper buy condition
- Set stop-loss on every additional entry rather than only on the final MaxCount entry, reducing unprotected position risk
- Add maximum account risk limits and maximum total position lot caps to prevent martingale scaling from spiraling out of control
- Incorporate spread and commission costs into the weighted-average take-profit calculation, as the current formula ignores transaction costs
Risk assessment
Overall risk: Dangerous
- Martingale-style 2x lot doubling causes exponential position growth,easily blowing the account during sustained adverse moves
- No stop-loss on early additions leaves positions unprotected with unlimited downside in trending markets
- CSigi_TrendRSISto signal bug causes buy signal to execute sell logic instead
- MaxCount=-1 option removes all limits on position scaling, creating completely uncontrolled risk
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
Trade_ON | true | Enable trade opening |
Lots | 0.1 | Fixed lot size; 0 to calculate by risk |
MaximumRisk | 0.05 | Risk percentage; effective when Lots is 0 |
StopLoss | 2500 | Stop loss in points; 0 to disable |
TakeProfit | 500 | First position take profit in points |
TakeProfit2 | 100 | Weighted average take profit in points after adding positions |
MaxCount | 10 | Max add-on count per direction; -1 for unlimited |
DoubleCount | 5 | 2x add-on count before switching to 1.5x |
Pips | 500 | Add-on spacing in points |
Trailing | 0 | Trailing stop in points; 0 to disable |
Shift | 1 | Bar offset used for indicator calculation |
ReverseCondition | false | Reverse buy/sell signals |
OPEN_POS_BASED_ON | MACD | Trade signal type selection |
MACD_FastPeriod | 14 | MACD fast line period |
MACD_SlowPeriod | 26 | MACD slow line period |
MACD_Price | PRICE_CLOSE | MACD applied price |
Pivot_DayStartHour | 0 | Pivot day start hour |
Pivot_DayStartMinute | 0 | Pivot day start minute |
Pivot_AttachSundToMond | true | Merge Sunday bars into Monday |
SupRes_iPeriod | 70 | Support/Resistance indicator period |
iT_BBPeriod | 10 | Bollinger Bands period |
iT_BBDeviation | 2 | Bollinger Bands deviation |
iT_BullsBearsPeriod | 6 | Bulls/Bears Power indicator period |
RSI_Period | 14 | RSI period |
St_KPeriod | 8 | Stochastic K period |
St_DPeriod | 3 | Stochastic D period |
St_SPeriod | 4 | Stochastic smoothing period |
St_UpperLevel | 80 | Stochastic upper level |
St_LowerLevel | 20 | Stochastic lower level |
MFI_Period | 5 | MFI period |
Similar Martingale EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.