Exp_VolatilityPivot
This EA trades based on the VolatilityPivot custom indicator, which calculates pivot levels using either ATR-based volatility or price deviation. It opens buy/sell positions when the indicator generates directional signals and closes positions on opposite signals or trend reversals, with configurable trade direction (with or against the signal).
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
This EA uses the VolatilityPivot indicator as its core strategy, which calculates dynamic pivot support and resistance levels based on either ATR volatility or price deviation from a moving average. Entry conditions: a buy signal is generated when the indicator's upper signal line produces a non-empty value, and a sell signal is generated when the lower signal line produces a non-empty value; an inverse trading mode (FalshDirect) is also supported to trade against the signal direction. Exit conditions: positions are closed when an opposing trend signal appears (e.g., a long position is closed when a downtrend signal emerges), or via fixed stop loss and take profit levels. Position sizing leverages multiple money management modes defined in TradeAlgorithms.mqh, including dynamic lot calculation based on free margin, account balance, or loss proportion relative to the account, as well as a fixed lot option. The strategy uses H4 as the default timeframe, making it a medium-to-long-term trading system that recalculates signals only on new bars, avoiding redundant per-tick computation. The 1000-point stop loss and 2000-point take profit settings indicate the strategy targets a favorable risk-reward ratio of 1:2.
Strengths
- Uses a volatility-based pivot indicator that dynamically adapts to market volatility changes, offering more flexibility than static pivot points
- Supports multiple money management modes, allowing flexible position sizing based on account conditions
- Recalculates signals only on new bars, reducing redundant computation and overtrading risk
- Provides both signal-direction and counter-signal trading modes, adaptable to different market conditions
- Reasonable stop loss and take profit settings with a 1:2 risk-reward ratio
Weaknesses
- Depends on the custom VolatilityPivot indicator whose source code is not visible, making the strategy logic opaque
- Lacks a spread filter mechanism, potentially leading to unfavorable entries during high-spread conditions
- The 1000-point stop loss is relatively large, which could result in significant per-trade losses in volatile markets
- No multi-timeframe confirmation mechanism; relies solely on a single indicator signal for entries
- Missing trading session/time filter, potentially generating unfavorable trades during low-liquidity periods
Possible improvements
- Add a spread filter and multi-timeframe confirmation to improve entry quality
- Add trading session filtering and a dynamic ATR-based stop loss mechanism to adjust stop distance according to current volatility
Risk assessment
Overall risk: Medium
- Depends on an external custom indicator; the EA cannot run if the indicator is missing
- Fixed stop loss in points does not adapt to market volatility dynamically, potentially causing frequent stop-outs during high volatility
- No spread filter; major news events or low-liquidity sessions may result in slippage losses
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | 0.1 | Trading capital ratio |
MMMode | LOT | Lot sizing method (free margin/balance/loss ratio/fixed lots) |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum price deviation in points (slippage tolerance) |
BuyPosOpen | true | Allow buy orders |
SellPosOpen | true | Allow sell orders |
BuyPosClose | true | Allow close buy orders |
SellPosClose | true | Allow close sell orders |
Direct | TrueDirect | Trading direction (with signal/against signal) |
InpInd_Timeframe | PERIOD_H4 | Indicator timeframe |
atr_range | 100 | ATRcalculation period |
ima_range | 10 | MAcalculation period |
atr_factor | 3 | ATR multiplier factor |
IndMode | Mode_ATR | Indicator mode (ATR volatility/price deviation) |
DeltaPrice | 200 | Price deviation value (used in price mode) |
SignalBar | 1 | Entry signal bar index |
Similar Pivot Point EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.