Exp_Chaikin_Volatility_Stochastic
This EA trades based on crossover signals from the Chaikin Volatility Stochastic custom indicator. It opens buy positions when the oscillator lines cross downward and sell positions when they cross upward, with configurable money management and position closing logic. The strategy operates on a multi-timeframe basis using a selectable higher timeframe for signal generation while executing on the current chart timeframe.
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 crossover signals between two lines of the Chaikin Volatility Stochastic custom indicator. Entry conditions are: a buy signal is generated when Osc1 crosses below Osc2 (downward crossover), and a sell signal is generated when Osc1 crosses above Osc2 (upward crossover), with signals evaluated on the bar specified by SignalBar. Exit conditions include hard stop loss and take profit settings (StopLoss_=1000, TakeProfit_=2000 points), as well as position closing logic triggered by reverse crossover signals. Position sizing uses a configurable money management ratio (MM=0.1), supporting both fixed lot and margin percentage modes. The EA employs multiple smoothing algorithms (SMA, EMA, JJMA, JurX, etc.) for indicator smoothing, which enhances signal stability. The strategy only recalculates signals on new bar formation, avoiding excessive tick-by-tick trading, but lacks filtering mechanisms for market volatility and spread.
Strengths
- Combines Chaikin volatility with stochastic logic, integrating both volatility and momentum analysis for deeper strategy insight
- Supports 10 smoothing algorithm options, providing high flexibility for optimization across different market conditions
- New bar detection mechanism avoids tick-by-tick trading, reducing trade frequency and slippage impact
- Complete stop loss and take profit settings with reverse signal closing providing dual protection
- Buy and sell open/close operations can be independently toggled, offering high configuration flexibility
Weaknesses
- Lacks spread filtering, which may result in unfavorable fills in high-spread environments
- No position count check, potentially opening duplicate positions in the same direction
- Depends on the custom external indicator Chaikin_Volatility_Stochastic; if missing, the EA cannot run
- Stop loss of 1000 points and take profit of 2000 points are excessively large and may not suit all instruments and timeframes
- No position scaling logic (add/reduce), resulting in a single-dimensional position management approach
Possible improvements
- Add spread filter and volatility filter mechanisms to avoid opening positions under unfavorable market conditions
- Add position checking and maximum position limits to prevent duplicate entries leading to excessive risk exposure
- Add trailing stop functionality to lock in floating profits during trending markets
Risk assessment
Overall risk: Medium
- No spread filter may cause significant slippage losses in low-liquidity markets
- No position count check may lead to duplicate same-direction entries increasing risk exposure
- Dependency on external custom indicator introduces runtime dependency risk
- Fixed stop loss/take profit values are not dynamically adjusted based on instrument volatility
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 positions |
SellPosOpen | true | Allow sell positions |
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_H4 | Timeframe for indicator calculation |
SignalBar | 1 | Bar index for signal detection (0=current, 1=completed) |
XMA_Method | MODE_EMA_ | Smoothing algorithm type |
XLength | 10 | Smoothing period length |
XPhase | 15 | Smoothing phase parameter |
StocLength | 5 | Stochastic period length |
WMALength | 5 | Weighted moving average period length |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.