Exp_RVI_Histogram
This EA trades based on the RVI (Relative Vigor Index) Histogram indicator, supporting two signal modes: level-based and crossover-based. It opens buy positions when the RVI histogram signals upward momentum and sell positions on downward momentum, with configurable position closing on opposite signals. Money management is handled via the TradeAlgorithms library with 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 is based on the RVI (Relative Vigor Index) Histogram indicator, which measures market momentum direction. Entry conditions operate in two modes: in Levels mode, a long position is opened when the histogram color index is 0 (bullish) and a short when it is 2 (bearish); in Cross mode, a long is triggered when the RVI signal line crosses above the trigger line, and a short when it crosses below. Exit conditions rely on opposing signals — long positions are closed on bearish signals and short positions on bullish signals. Position sizing is controlled via the MM parameter with support for multiple margin calculation modes including free margin, balance, loss-adjusted balance, and fixed lot. Stop loss and take profit are fixed at 1000 and 2000 points respectively, with no spread filter or dynamic volatility adaptation. The overall strategy logic is clear but relatively simplistic, lacking dynamic adjustment for market volatility and liquidity conditions.
Strengths
- Dual signal mode design is flexible, allowing users to choose between level-based or crossover-based signals depending on market conditions
- Supports multiple money management modes, adapting to different risk preferences and account sizes
- Configurable stop loss and take profit parameters provide a basic risk control framework
- Independent control over buy/sell opening and closing offers high flexibility
- Uses custom indicator handle with clean, modular code architecture
Weaknesses
- No spread filter, which may cause false signals and losses in high-spread environments
- Fixed stop loss and take profit in points without dynamic adjustment based on market volatility (e.g., ATR)
- Depends on external TradeAlgorithms library and custom RVI_Histogram indicator, reducing portability
- No position count check, potentially allowing duplicate entries in the same direction
- SignalBar parameter defaults to 1 but allows 0, which may trigger signals on incomplete current bars
- Lacks drawdown control and maximum loss protection mechanisms
Possible improvements
- Add spread filter and volatility-adaptive stop loss/take profit (e.g., ATR-based dynamic calculation)
- Add position count limits and duplicate same-direction entry checks
- Add maximum drawdown protection and position reduction after consecutive losses
Risk assessment
Overall risk: Medium
- Fixed stop loss/take profit doesn't account for volatility changes, potentially too tight or too loose in volatile markets
- No spread filter may result in unfavorable fills during low-liquidity periods
- SignalBar=0 uses incomplete bars, potentially generating frequent false signals
- No current position count check may cause duplicate same-direction entries leading to overexposure
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Money management parameter controlling lot size |
MMMode | LOT | Position sizing mode (free margin/balance/net free margin/net balance/fixed lot) |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum slippage deviation |
BuyPosOpen | true | Allow opening long positions |
SellPosOpen | true | Allow opening short positions |
BuyPosClose | true | Allow closing long on reverse signal |
SellPosClose | true | Allow closing short on reverse signal |
InpInd_Timeframe | PERIOD_H4 | Indicator calculation timeframe |
TMode | Cross | Signal mode (level/crossover) |
RVIPeriod | 14 | RVI indicator period |
HighLevel | +0.3 | Overbought level |
LowLevel | -0.3 | Oversold level |
SignalBar | 1 | Bar index for signal detection |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.