Exp_iDeMarkerSign
This EA trades based on signals from the custom iDeMarkerSign indicator, which identifies overbought and oversold conditions using DeMarker oscillator levels. It opens buy positions when the indicator signals an upward crossover above the lower level and sell positions when it signals a downward crossover below the upper level, with configurable close-on-opposite-signal logic. Position sizing is managed via a money management module supporting multiple margin modes.
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 core strategy of this EA trades on DeMarker indicator reversal signals from extreme zones. Entry conditions: a buy position is opened when iDeMarkerSign generates an upward signal in the oversold zone (below DnLevel=0.3), and a sell position is opened when a downward signal appears in the overbought zone (above UpLevel=0.7). Exit conditions include fixed StopLoss and TakeProfit in points, plus an opposite-signal close mechanism — the code includes logic that retrospectively scans historical bars to find earlier closing signals when no current reverse signal exists. Position sizing supports five modes: fixed lot, free margin-based, balance-based, net free margin-based, and net balance-based proportional calculation. Money management is implemented via the TradeAlgorithms.mqh library functions, including a deviation/slippage tolerance setting. The strategy defaults to the H4 timeframe and uses SignalBar=1, meaning it confirms trades on the previous closed bar, which is a sound practice to avoid repainting issues.
Strengths
- Uses closed bar (SignalBar=1) for signal confirmation, avoiding repainting issues from future data
- Supports five position sizing modes, providing high flexibility in money management
- Opposite-signal closing mechanism adds an extra exit strategy beyond fixed SL/TP
- Includes slippage tolerance parameter, improving execution robustness in live trading
- Independent buy/sell toggle controls allow flexible unidirectional trading configuration
Weaknesses
- ATR_Period variable is not declared as input, preventing users from modifying it in the parameters panel
- The historical bar retrospective scanning logic for finding close signals is inefficient and may lead to inconsistent closing decisions
- Lacks spread filter and trading session filter, potentially opening positions under unfavorable conditions
- Default StopLoss of 1000 points and TakeProfit of 2000 points are excessively large for most instruments
- No check for existing same-direction positions before opening new ones, risking duplicate positions
Possible improvements
- Change ATR_Period to input type and add spread filter and trading session filter functionality
- Add same-direction position check logic to prevent duplicate entries, and optimize the efficiency and reliability of retrospective close-signal searching
Risk assessment
Overall risk: Medium
- No same-direction position check may cause duplicate entries amplifying risk exposure
- Lack of spread and session filters can result in unfavorable fills during high-cost periods
- Fixed SL/TP values do not adapt to the volatility characteristics of all instruments
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Money management ratio or lot value |
MMMode | LOT | Lot mode: free margin/balance/post-loss free margin/post-loss balance/fixed lot |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Slippage deviation allowance |
BuyPosOpen | true | Allow opening long positions |
SellPosOpen | true | Allow opening short positions |
BuyPosClose | true | Allow closing long positions |
SellPosClose | true | Allow closing short positions |
InpInd_Timeframe | PERIOD_H4 | Timeframe for iDeMarkerSign indicator |
ATR_Period | 14 | ATR period (for indicator normalization) |
iDeMarkerPeriod | 14 | DeMarker indicator period |
UpLevel | 0.7 | Upper overbought level threshold |
DnLevel | 0.3 | Lower oversold level threshold |
SignalBar | 1 | Bar index for signal reading (0=current, 1=last completed) |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.