EA-1163 · Breakout

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

CategoryBreakout
RiskMedium
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesM15, H1, H4
IndicatorsiVLT
AuthorInteger

Backtest results (H1, about 1 year)

SymbolP&LAnnualMax DDTradesWin rateSharpeRecoveryLosing streakPer tradeStatus
EURUSD0.00%0.00%0.00%0—————Not convertible yet
GBPUSD0.00%0.00%0.00%0—————Not convertible yet
USDJPY0.00%0.00%0.00%0—————Not convertible yet
XAUUSD0.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

Code quality2.0
Strategy logic3.0
Risk management2.0
Robustness3.0
Innovation2.0
Documentation1.0
Overall2.2

Parameters

ParameterDefaultDescription
period9iVLT indicator period parameter
PendingLevel100Pending order distance from previous bar high/low in points
Lots0.1Fixed trade lot size
StopLoss550Stop loss in points
TakeProfit550Take profit in points

Similar Breakout EAs

Backtests are historical simulations and do not guarantee future results. Not financial advice.

Get the weekly Arena report

One email a week: ranking changes, new signals and new research. No spam; unsubscribe any time.