Exp_iRSISign
This EA trades based on signals from the custom iRSISign indicator, which generates buy and sell signals when RSI crosses user-defined overbought and oversold levels. It opens and closes positions according to these RSI crossover signals, with configurable money management, stop loss, and take profit settings.
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 concept is based on a custom RSI momentum indicator variant called iRSISign, which generates buy signals when RSI breaks above the overbought level (default 70) and sell signals when it drops below the oversold level (default 30). Entry conditions: a long position is opened when the indicator's upper signal buffer produces a valid value (non-zero and non-empty), and a short position is opened when the lower signal buffer produces a valid value. Exit conditions include: RSI overbought signal triggers long position closure, oversold signal triggers short position closure, with fixed stop loss (default 1000 points) and take profit (default 2000 points). Position sizing leverages five money management modes from the TradeAlgorithms.mqh library, including fixed lot, balance-proportional, and free margin-proportional modes. The strategy also incorporates a retrospective check mechanism: when both opening and closing are enabled but no close signal exists on the current bar, it loops back through historical bars to find any untriggered reverse close signal, preventing missed exit opportunities.
Strengths
- Clear signal logic based on classic RSI overbought/oversold crossovers, easy to understand and verify
- Five money management modes provide high flexibility to suit different risk preferences
- Buy/sell open and close can be independently controlled, facilitating partial strategy testing and optimization
- IsNewBar mechanism prevents repeated trades within the same bar, reducing overtrading risk
- Retrospective check mechanism prevents missing reverse close signals
Weaknesses
- ATR_Period variable is not declared as input, preventing direct optimization in the strategy tester
- Fixed stop loss and take profit do not account for market volatility (e.g., ATR), potentially unsuitable across varying market conditions
- No spread filter, which may cause losses on short-term signals in high-spread environments
- The retrospective check loop may iterate through a large number of historical bars, posing performance concerns
- Depends on external custom indicator iRSISign and TradeAlgorithms library, reducing portability
Possible improvements
- Declare ATR_Period as an input parameter for optimization, and consider ATR-based dynamic stop loss and take profit
- Add spread filter and trading session filter to avoid trading during high-spread and low-liquidity periods
- Add a maximum iteration limit to the retrospective check loop to prevent performance issues
- Add position check logic to avoid duplicate opening when an existing same-direction position is already held
Risk assessment
Overall risk: Medium
- Fixed stop loss/take profit not dynamically adjusted for market volatility, may cause large losses in extreme conditions
- No spread filter, trading costs on high-spread instruments may erode profits
- No position check, may open duplicate same-direction positions leading to excessive exposure
- Retrospective check has no iteration limit, potentially affecting EA responsiveness in extreme cases
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Money management ratio (lot or percentage) |
MMMode | LOT | Margin mode: free margin/balance/net margin/net balance/fixed lot |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum slippage tolerance |
BuyPosOpen | true | Allow buy to open |
SellPosOpen | true | Allow sell to open |
BuyPosClose | true | Allow buy-side close (close sell on opposite signal) |
SellPosClose | true | Allow sell-side close (close buy on opposite signal) |
InpInd_Timeframe | PERIOD_H1 | Timeframe for indicator calculation |
ATR_Period | 14 | ATR period (non-input variable) |
RSIPeriod | 14 | RSI calculation period |
RSIPrice | PRICE_CLOSE | RSI applied price type |
UpLevel | 70 | WPR upper overbought level |
DnLevel | 30 | WPR lower oversold level |
SignalBar | 1 | Bar index for signal detection (0=current, 1=completed) |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.