VLT_TRADER
This EA places BuyStop and SellStop pending orders based on breakout signals from the iVLT custom indicator. When a signal is detected on a new bar, it sets pending orders at a configurable distance above the previous bar's high and below the previous bar's low, with optional stop-loss and take-profit levels. Existing pending orders are deleted once a position is opened to avoid duplicate entries.
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 a breakout system based on the iVLT custom indicator, placing BuyStop and SellStop pending orders above and below the previous bar's high and low respectively. Entry conditions require the iVLT indicator's buffer 2 to return a non-EMPTY_VALUE on the previous bar, combined with no existing position and no existing stop orders before placing new pending orders. Exit conditions rely entirely on fixed stop-loss and take-profit parameters with no trailing stop or signal-based exit logic, meaning the EA cannot adapt to changing market conditions after entry. Position sizing uses a fixed lot size input with no dynamic adjustment; the SolveLots function simply returns the input Lots parameter, and the fLotsNormalize function exists but is never called. Money management lacks any account-balance-based or risk-percentage-based calculation, so the same lot size applies regardless of account equity, creating inconsistent risk exposure across different account sizes. The pending order management is well-designed—when a position exists, all remaining stop orders are deleted to prevent duplicate entries. However, the SignalOpenBuy, SignalOpenSell, SignalCloseBuy, and SignalCloseSell functions are all empty stubs returning false, indicating either incomplete development or significant dead code.
Strengths
- Pending order breakout strategy avoids chasing price, entering only after breakout confirmation with sound entry logic
- Automatic deletion of unfilled pending orders when a position exists prevents duplicate entries and overexposure
- Stop-loss and take-profit prices are normalized and validated against StopsLevel minimum distance, reducing order rejection risk
- Global variables manage pending order state, enabling proper recovery of trading logic after EA restart
Weaknesses
- No trailing stop or signal-reversal exit mechanism—relying solely on fixed SL/TP cannot adapt to changing market conditions
- SignalOpenBuy/Sell and SignalCloseBuy/Sell are empty stubs; many helper functions (SolveBuySL/TP etc.) are never called, indicating significant dead code
- Fixed lot sizing with no dynamic position management; fLotsNormalize exists but is unused, causing inconsistent risk across different account sizes
- No spread filter, so pending orders may be frequently triggered and quickly stopped out in high-spread environments
- Stop-loss to take-profit ratio is 1:1 with no R:R optimization; breakout strategies typically require higher reward-to-risk ratios for long-term profitability
Possible improvements
- Implement dynamic position sizing based on account balance and risk percentage, and activate the existing fLotsNormalize function for lot normalization
- Add trailing stop and signal-reversal exit logic to improve the strategy's ability to adapt to changing market conditions
- Add spread filtering and a configurable reward-to-risk ratio parameter to avoid unfavorable trades in high-spread environments
Risk assessment
Overall risk: Medium
- Fixed 1:1 SL/TP ratio means breakout strategy may have negative long-term expectancy with low reward-to-risk
- No spread filter exposes the EA to frequent stop-outs in high-spread environments
- StopLoss=0 allows trading without stop-loss, creating unlimited loss risk
- Strategy depends entirely on the iVLT custom indicator quality; if the indicator is unavailable, the EA cannot operate
Evaluation scores
Parameters
| Parameter | Default | Description |
|---|---|---|
period | 9 | iVLT indicator period parameter |
PendingLevel | 100 | Pending order distance from previous bar high/low in points |
Lots | 0.1 | Fixed trade lot size |
StopLoss | 550 | Stop loss in points |
TakeProfit | 550 | Take profit in points |
Similar Breakout EAs
Backtests are historical simulations and do not guarantee future results. Not financial advice.