Exp_i-SpectrAnalysis_RVI
This EA trades based on crossover signals from the i-SpectrAnalysis_RVI custom indicator, which applies spectral analysis to the RVI (Relative Vigor Index). It opens buy positions when the RVI main line crosses above the signal line and sell positions on the opposite crossover, with configurable position sizing and stop-loss/take-profit levels.
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 | +1.66% | +1.44% | 3.16% | 131 | 49.60% | — | — | — | — | Same as other EAs |
| GBPUSD | -2.33% | -2.03% | 11.34% | 132 | 49.20% | — | — | — | — | Same as other EAs |
| USDJPY | +1.03% | +0.89% | 4.35% | 134 | 46.60% | — | — | — | — | Same as other EAs |
| XAUUSD | +72.78% | +57.12% | 56.05% | 136 | 51.50% | — | — | — | — | Same as other EAs |
On every market this backtest is identical to EA-1305. The automatic conversion almost certainly lost what makes this EA different (a custom indicator, a filter or the money management), so these results are not ranked or counted.
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 captures momentum turning points using crossover signals from a spectrally-analyzed RVI indicator. Entry conditions: a buy signal is generated when Line1 (RVI main) crosses above Line2 (RVI signal), and a sell signal on the opposite crossover; however, the EA requires confirmation from the previous bar (Line1[1]>Line2[1]) combined with a pullback (Line1[0]<=Line2[0]) to trigger buys, making this a pullback-entry rather than a breakout-entry system. Exit conditions rely on configurable StopLoss and TakeProfit levels, with optional reverse-signal closes (BuyPosClose/SellPosClose toggles). Position sizing is controlled via the MM parameter, supporting both fixed lot size and margin-based proportional sizing through two modes (LOT and MMMode). Money management leverages standardized functions from the TradeAlgorithms.mqh library for opening and closing positions, including a slippage tolerance setting (Deviation_). The strategy uses SignalBar to control which bar's signal is evaluated, defaulting to 1 (last completed bar), which avoids repainting issues.
Strengths
- Spectral analysis preprocessing of RVI effectively filters high-frequency noise, yielding cleaner signals
- Supports multiple position sizing modes and toggle switches for buy/sell open/close, offering high flexibility
- Uses completed bar signals (SignalBar=1) to avoid repainting issues
- Implements new bar detection to prevent duplicate entries on the same signal
Weaknesses
- Fixed StopLoss/TakeProfit in points without ATR-based dynamic adjustment may be unsuitable across varying market conditions
- No position existence check before opening new orders, risking duplicate same-direction positions
- Depends on the custom indicator i-SpectrAnalysis_RVI; if the indicator file is missing the EA fails to initialize
- No spread filter; high-spread environments could make entries excessively costly
Possible improvements
- Add position existence check before opening new orders to prevent duplicate same-direction entries
- Replace fixed StopLoss/TakeProfit with ATR-based dynamic calculation to adapt to varying market volatility
- Add a spread filter to suspend new entries when spread exceeds a configurable threshold
Risk assessment
Overall risk: Medium
- Lack of position check may cause duplicate same-direction entries, leading to excessive risk exposure
- Fixed StopLoss/TakeProfit cannot adapt to changing market volatility, potentially unsuitable for both ranging and trending markets
- No spread filter means slippage costs can be significant during low-liquidity periods
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Capital allocation ratio per trade |
MMMode | LOT | Margin mode: free margin/balance/drawdown free margin/drawdown balance/fixed lot |
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 | Allow buy position close on reverse signal |
SellPosClose | true | Allow sell position close on reverse signal |
InpInd_Timeframe | PERIOD_H4 | Indicator calculation timeframe |
SignalBar | 1 | Signal detection bar index position |
RVIPeriod | 14 | RVI indicator averaging period |
N | 7 | FFT power parameter (data points=2^N) |
SS | 20 | Spectral analysis smoothing strength |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.