Exp_XPVT
This EA trades based on crossover signals from the XPVT (Volume Price Trend) custom indicator. It opens buy positions when the indicator line crosses above the signal line and sell positions on the opposite crossover, with configurable stop loss and take profit. Position sizing is managed via a money management module 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 a trend-following crossover system based on the XPVT (Volume Price Trend) indicator. Entry conditions: a buy signal is generated when the indicator line Ind crosses above the signal line Sign, and a sell signal is generated when Ind crosses below Sign, detected by comparing Ind and Sign values across two consecutive bars. Exit conditions include fixed stop loss and take profit in points, plus a reverse-signal close mechanism where an opposing crossover triggers position closure. Position sizing supports five modes: based on free margin, balance, free margin minus loss, balance minus loss, and fixed lot size. Money management is controlled by the MM parameter (default 0.1 risk ratio) combined with MMMode for calculation method selection. The strategy uses SignalBar (default 1) to specify which bar confirms the signal, using the previous closed bar to avoid look-ahead bias. The overall logic is clear and represents a typical single-indicator crossover trend-following system.
Strengths
- Clear and concise strategy logic based on volume-price trend crossover signals, easy to understand and maintain
- Comprehensive money management module supporting five position sizing modes to accommodate different risk preferences
- Independent control over buy/sell open and close directions, offering high flexibility for partial strategy deployment
- Uses SignalBar=1 to confirm signals on closed bars, effectively avoiding look-ahead bias
- Includes IsNewBar new bar check mechanism to prevent repeated trading within the same bar
Weaknesses
- Fixed stop loss and take profit in points rather than ATR-based dynamic calculation, poor adaptability across different volatility environments
- No spread filter mechanism, potentially resulting in unfavorable fills during wide spread conditions
- Depends on custom XPVT indicator, EA fails to run if the indicator file is missing, increasing deployment complexity
- No multi-timeframe confirmation mechanism, relying solely on single indicator single timeframe signals with high false signal risk
- Lacks risk controls such as maximum position count limits and maximum drawdown protection
Possible improvements
- Replace fixed stop loss/take profit with ATR-based dynamic calculation to adapt to different market volatility environments
- Add spread filter and multi-timeframe confirmation mechanisms to reduce false signals and unfavorable fills
- Implement risk controls such as maximum position count limits, maximum drawdown protection, and trading pause after consecutive losses
Risk assessment
Overall risk: Medium
- Fixed 1000-point SL and 2000-point TP ratio of 1:2 may result in excessive SL in low-volatility markets and insufficient TP in high-volatility markets
- No spread filter may cause additional losses from significant slippage in low-liquidity markets
- No maximum drawdown protection or consecutive loss control mechanism, risking sustained losses during extreme market conditions
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Risk ratio or lot size controlling position sizing |
MMMode | LOT | Lot calculation mode: fixed lot or margin ratio |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum allowed slippage in points |
BuyPosOpen | true | Allow long position opening |
SellPosOpen | true | Allow short position opening |
BuyPosClose | true | Allow long position closing |
SellPosClose | true | Allow short position closing |
InpInd_Timeframe | PERIOD_H4 | Indicator calculation timeframe |
VolumeType | VOLUME_TICK | Volume type: tick volume or real volume |
XMA_Method | MODE_EMA | Smoothing algorithm type |
XLength | 5 | Base momentum calculation period |
XPhase | 15 | Smoothing phase parameter (JJMA range -100 to +100) |
IPC | PRICE_CLOSE | Applied price: close/open/high/low/median/typical/weighted etc. |
Shift | 0 | Indicator shift offset |
SignalBar | 1 | Signal confirmation bar index (1 = previous closed bar) |
Similar Trend Following EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.