Very Blonde System
This EA opens an initial market order when the price deviates significantly from the recent high/low, then places a series of 4 BuyLimit or SellLimit orders at fixed grid intervals with doubling lot sizes (Martingale-style). It closes all positions and pending orders when total floating profit reaches a target amount, and optionally moves stop loss to breakeven after a LockDown threshold is reached.
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: High
- Opens a grid of orders at fixed price steps
- Has no stop loss or trailing stop
- Can hold up to 5 positions at once
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
Strategy concept: This is a hybrid Grid + Martingale strategy based on price deviation from recent extremes. Entry conditions: Buy when the highest price minus current Bid exceeds ExtLimit*Point, Sell when current Bid minus the lowest price exceeds ExtLimit*Point. After entry, 4 limit pending orders are placed at ExtGrid intervals, with each order's volume doubling exponentially (2^i*Lots), which is a classic Martingale scaling-in pattern. Exit conditions: All positions and pending orders are closed when total floating profit reaches the Amount parameter threshold. Position sizing: Initial lot size is calculated from account balance (Balance/100/1000), and subsequent pending order volumes increase by powers of 2, creating geometric growth that carries extreme risk without proper stop loss protection. Money management: A LockDown breakeven mechanism exists — when floating profit exceeds ExtLockDown points, stop loss is moved to entry price ±1 point, but only for positions that have no stop loss already set. Overall, the strategy relies on the assumption that profits will eventually cover losses, but multi-level scaling in during extreme market conditions can lead to account blowout.
Strengths
- Grid scaling-in captures pullback profits in ranging markets through multi-level limit orders
- Automatic close-all on profit target hit also removes all pending orders, preventing orphan orders
- LockDown breakeven mechanism reduces risk exposure by moving stop loss to entry when price moves favorably
- Lot sizes are normalized via LotCheck, respecting symbol volume min/max and step constraints
Weaknesses
- Martingale lot doubling causes exponential position and loss growth in trending markets,easilyleading to account blowout
- No hard stop loss protection — LockDown defaults to 0 (disabled), and even when enabled it only moves to breakeven not a true stop
- IsTradeAllowed has a redundant duplicate check of TERMINAL_TRADE_ALLOWED (lines 230 and 235)
- iLowest/iHighest return bar indices not price values, but code compares them directly with Bid — this is a critical logic bug
- No new bar detection mechanism, every tick triggers logic evaluation, adding unnecessary computational overhead
Possible improvements
- Fix iLowest/iHighest return value issue — should use iLow()/iHigh() to get price values, not bar indices
- Add hard stop loss protection to prevent unlimited single-trade or cumulative losses
- Add new bar detection to avoid redundant calculations on every tick
- Limit maximum grid levels and total exposure to prevent over-leveraging in extreme markets
- Add spread filter to avoid opening positions during wide spread conditions
Risk assessment
Overall risk: Dangerous
- Martingale doubling with no stop loss — trending markets can blow the account
- iLowest/iHighest returns bar index not price — comparison with Bid is a logic bug causing potentially wrong entries
- LockDown breakeven defaults to 0 (disabled), and even enabled only protects profitable positions, not losing ones
- No maximum position limit — 4 grid levels create 15x base lot exposure (1+2+4+8+16), extremely high leverage risk
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
CountBars | 10 | Bar count for highest/lowest price calculation |
InpLimit | 240 | Price deviation threshold (points) for entry condition |
InpGrid | 35 | Grid spacing (points) between limit orders |
Amount | 40 | Target profit amount; closes all on reach |
InpLockDown | 0 | Break-even stop trigger points, 0=disabled |
Similar Grid EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.