Rock-Trader-Neuro
This EA uses a single-layer artificial neuron with hyperbolic tangent activation to generate trading signals from Bollinger Band indicator values. It normalizes the ratio of Bollinger Band width to base line across 7 bars as neuron inputs, buys when the neuron output is negative, and sells when positive. Positions are managed with fixed 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 | — | — | — | — | — | 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 strategy concept is based on a single-layer perceptron neural network using Bollinger Band upper, lower, and base line data as input features. Entry conditions are: open a buy when the neuron output is less than 0, and open a sell when the neuron output is greater than 0. The neuron inputs are normalized values of the Bollinger Band width (upper minus lower) divided by the base line across 7 bars, with 7 inputs mapped to 14 array elements (each input paired with a weight). Exit conditions rely entirely on fixed stop loss (30 pips) and take profit (100 pips), with no dynamic trailing stop or partial close mechanism. Position sizing uses a fixed lot size (default 1.0 lot) with no dynamic adjustment based on account equity or volatility. Money management only checks for existing same-direction positions to prevent duplicate entries, but does not consider total portfolio risk or maximum drawdown limits. The weight parameters (w0-w13) are hardcoded input parameters with no adaptive training or optimization mechanism.
Strengths
- Innovative use of neural network concept for signal generation
- Utilizes multi-dimensional Bollinger Band data (upper, lower, base) as feature inputs
- New bar detection mechanism prevents redundant trades on the same bar
- Automatic stop loss/take profit adjustment for 5/3 digit price brokers
Weaknesses
- Single-layer perceptron is too simplistic with limited expressiveness, unable to capture non-linear market features
- Only 7 of 14 inputs are effectively mapped — odd-indexed elements of the inputs array are never assigned, causing a mismatch between input and weight array sizes
- No neural network training mechanism — weights rely entirely on manual setting with no adaptability to market changes
- No spread filter — trades can be opened even when the spread is unusually wide
- Normalization formula has potential division-by-zero risk when x_maxx+x_max equals x_min+x_minn
- Missing reverse position closing logic — does not automatically close opposite positions when signal reverses
Possible improvements
- Fix the inputs array assignment logic to ensure all 14 elements receive valid values, or restructure to a 7-input/7-weight matching architecture
- Add a spread filter mechanism to prevent opening positions when spread exceeds a threshold
- Introduce online neural network training or periodic optimization so weights can adapt to changing market conditions
- Add division-by-zero protection in normalization calculations, using fallback values when the denominator approaches zero
- Implement automatic reverse position closing when signal direction changes, closing existing positions before opening opposite ones
Risk assessment
Overall risk: Medium
- Odd-indexed elements of the inputs array are never assigned, causing the neuron to compute with uninitialized values (likely zero), effectively making only 7 of 14 weights functional
- Division-by-zero risk in the normalization formula
- Fixed lot size with no dynamic adjustment — large positions could cause significant losses in adverse markets
- No spread filter — wide spreads during high-volatility periods could result in unfavorable fills
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
StopLoss | 30 | Stop loss in points |
TakeProfit | 100 | Take profit in points |
EA_Magic | 12345 | EA magic number |
Lot | 1.0 | Trading lot size |
w0 | 0.8 | Neuron weight 0 |
w1 | 0.4 | Neuron weight 1 |
w2 | -0.9 | Neuron weight 2 |
w3 | 0.0 | Neuron weight 3 |
w4 | 0.7 | Neuron weight 4 |
w5 | -0.2 | Neuron weight 5 |
w6 | 0.9 | Neuron weight 6 |
w7 | 0.7 | Neuron weight 7 |
w8 | -1.0 | Neuron weight 8 |
w9 | 0.3 | Neuron weight 9 |
w10 | 0.5 | Neuron weight 10 |
w11 | 0.5 | Neuron weight 11 |
w12 | 0.0 | Neuron weight 12 |
w13 | 1.0 | Neuron weight 13 |
Similar Machine Learning EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.