Exp_BullsBearsEyes
This EA trades based on the ColorBullsBearsEyes custom indicator, which is a smoothed Bulls/Bears oscillator. It generates buy and sell signals depending on the selected algorithm mode (trend direction change, midline breakdown, or overbought/oversold level breakthroughs), and manages positions with configurable stop loss and take profit levels.
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 | — | — | — | — | — | No trades |
| GBPUSD | 0.00% | 0.00% | 0.00% | 0 | — | — | — | — | — | No trades |
| USDJPY | +1.81% | +1.57% | 0.90% | 1 | 100.00% | — | — | — | — | Too few trades |
| XAUUSD | -97.04% | -94.55% | 100.00% | 59 | 57.60% | -1.78 | -0.97 | 4 | −$164.48 | Account stopped out |
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.
Against the other Momentum EAs with a reliable result on the same market: XAUUSD: better than 17% of 75
Month by month
| Market | Months with a gain | Best month | Worst month |
|---|---|---|---|
| XAUUSD | 23% | +35.22% 2026-01 | -94.66% 2026-03 |
From the backtest equity curve, sampled about every two days; only reliable results.
Blow-up risk: High
- Hit a stop-out in our backtest (equity below 10%) on XAUUSD
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 strategy concept is based on the BullsBearsEyes oscillator, a gamma-smoothed bulls/bears power indicator that measures the relative strength of buying and selling pressure in the market. Entry conditions are determined by four algorithm modes: twist mode detects trend direction changes, breakdown1 detects midline crossovers, breakdown2 detects overbought/oversold level breakthroughs, and breakdown3 combines overbought/oversold zone exits with level breakthroughs. A buy signal is generated when indicator buffer 2 reads +2, a sell signal at -2, while positive values trigger short position closing and negative values trigger long position closing. Position sizing is controlled by the MM parameter where negative values represent fixed lot sizes and positive values represent deposit share-based sizing. Money management employs fixed stop loss (default 1000 points) and take profit (default 2000 points), with the stop loss being larger than take profit, suggesting a higher win-rate but unfavorable risk-reward ratio approach. Exit conditions include stop loss/take profit as well as reverse signal closing, with independent permission controls for buy/sell opening and closing directions.
Strengths
- Offers four algorithm modes for flexible switching to adapt to different market conditions
- Independent permission controls for buy/sell opening and closing enable strategy optimization and directional trading
- New bar detection mechanism prevents repeated entries within the same bar, reducing overtrading risk
- Signal logic relies on custom indicator handles with clear and modular architecture
- Supports deposit share-based dynamic position sizing for better money management
Weaknesses
- The stop loss (1000 points) vs take profit (2000 points) relationship needs careful verification as the risk-reward ratio may be unfavorable depending on interpretation
- Lacks spread filter and trading session filter, potentially entering during high-spread periods
- No trailing stop or moving stop feature to lock in floating profits
- Depends on external TradeAlgorithms.mqh library, increasing deployment and debugging complexity
- SignalBar=1 uses completed bars but error handling for indicator calculation failures is insufficient
Possible improvements
- Add a spread filter mechanism to avoid entering during high-spread periods and improve execution quality
- Implement a trailing stop feature to progressively lock in profits during trend continuation and optimize exit strategy
Risk assessment
Overall risk: Medium
- Stop loss to take profit ratio needs confirmation; if SL>TP, single loss could exceed single gain
- Lack of spread filter may cause unfavorable fills during low-liquidity periods with high slippage
- MM parameter with negative values directly specifying lot size lacks minimum lot validation, potentially causing oversized or undersized positions
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
MM | -0.1 | Deposit percentage or fixed lots; negative value = lot size |
StopLoss_ | 1000 | Stop loss in points |
TakeProfit_ | 2000 | Take profit in points |
Deviation_ | 10 | Maximum price deviation in points (slippage tolerance) |
BuyPosOpen | true | Allow opening long positions |
SellPosOpen | true | Allow opening sell positions |
BuyPosClose | true | Allow closing buy positions |
SellPosClose | true | Allow closing sell positions |
InpInd_Timeframe | PERIOD_H4 | Indicator timeframe |
period_ | 13 | Indicator averaging period |
gamma | 0.6 | Indicator smoothing ratio |
Mode | breakdown2 | Signal algorithm mode |
HighLevel | 75 | Overbought level |
MiddleLevel | 50 | Middle level |
LowLevel | 25 | Oversold level |
SignalBar | 1 | Bar index for entry signal |
Similar Momentum EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.