Exp_BalanceOfPower_Histogram
This EA trades based on the Balance of Power (BOP) histogram indicator, which measures the strength of buyers vs sellers. It opens buy positions when BOP values are rising (buyers gaining strength) and sell positions when BOP values are falling (sellers gaining strength), with configurable smoothing applied to the indicator values.
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 trades based on momentum changes in the Balance of Power histogram indicator. Entry conditions: a buy signal is triggered when BOP values are consecutively rising (Value[0]>Value[1] and Value[1]<Value[2]), indicating buyers are gaining strength; a sell signal is triggered when BOP values are consecutively falling (Value[0]<Value[1] and Value[1]>Value[2]), indicating sellers are gaining strength. Exit conditions include hard stop-loss and take-profit settings, as well as signal-based position closing—sell positions are closed when a buy signal appears, and buy positions are closed when a sell signal appears. Position sizing supports multiple money management modes including proportional calculation based on free margin, balance, or balance minus floating loss, as well as a fixed lot mode. The indicator values are processed through configurable smoothing algorithms (such as T3, JJMA, JurX, etc.) to reduce market noise. The overall strategy is a momentum-following type, entering trades in the direction of shifting buyer-seller power dynamics.
Strengths
- Clear strategy logic based on momentum changes in buyer-seller power dynamics, with meaningful market microstructure interpretation
- Supports multiple smoothing algorithms and money management modes, offering flexible parameter tuning and strong adaptability
- Dual exit mechanism combining stop-loss/take-profit with signal-based position closing provides robust risk control
Weaknesses
- Lacks spread filter and trading session filter, which may lead to unfavorable fills during low-liquidity periods
- Default stop-loss of 1000 points and take-profit of 2000 points are relatively large and may not suit all instruments and volatility environments
- The indicator only uses a single timeframe without multi-timeframe confirmation, making it prone to false signals
- Missing position count check, which may result in duplicate entries in the same direction
Possible improvements
- Add multi-timeframe confirmation, such as verifying the trend direction on a higher timeframe before entering
- Add spread filter and trading session control to avoid trading during low liquidity or high spread periods
- Add position checking logic to prevent duplicate entries in the same direction which could lead to excessive risk exposure
Risk assessment
Overall risk: Medium
- Missing same-direction position check, which may cause accumulated risk exposure from duplicate entries
- Large default stop-loss and take-profit values may lead to unnecessarily long holding periods on low-volatility instruments
- No spread filter mechanism, which may result in unfavorable fills when spreads widen during volatile 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 positions |
SellPosOpen | true | Allow sell positions |
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 |
XMethod | MODE_T3 | Smoothing algorithm type |
XLength | 15 | Extra smoothing period |
XPhase | 15 | Smoothing phase (-100~+100 for JJMA, different for VIDYA/AMA) |
SignalBar | 1 | Signal detection bar index position |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.