EA-1136 · Candlestick Pattern

Eugene

This EA trades based on inside bar (insider) candlestick patterns combined with zigzag breakout confirmation. It enters buy positions when price breaks above the prior bar's high with a confirmed bullish setup, and sells on breaks below the prior low with bearish confirmation. Position management includes optional stop loss/take profit and a one-trade-per-bar filter using global variables.

Open the interactive view (equity curve, symbol switch)

Key facts

RiskCaution
Blow-up riskLow
Rating★★☆☆☆
TypeTrading EA
TimeframesM15, H1, H4
IndicatorsInside Bar, Zigzag Level
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

  • Has no stop loss or trailing stop

On its own this is not a typical blow-up pattern, 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 core is based on Inside Bar candlestick pattern recognition, where the current bar is completely contained within the previous bar's range. For entry, a buy requires price breaking above the prior high (Buy_signal) with confirmation (Confirm_buy), which includes the current low touching Zig_level_buy or time past 8:00, while excluding Black_bird and White_insider patterns; sell conditions are symmetrical. Exit conditions trigger when a reverse signal appears - for example, a long position closes when a bearish confirmation signal occurs and price falls below the prior bar's high. Position sizing uses a fixed lot size (Lots parameter) with no dynamic position or money management logic. Stop loss and take profit are optional parameters, calculated in points based on Ask/Bid prices depending on trade direction. The strategy includes a signal inversion feature (InvertSignals) that swaps buy and sell signals. A time filter automatically confirms signals as valid after hour 8, serving as a fallback confirmation mechanism.

Strengths

  • Strategy logic is based on the classic Inside Bar pattern with clear technical analysis foundation
  • Uses global variables to implement one-trade-per-bar filter, preventing repeated entries on the same bar
  • Stop loss/take profit validation considers the symbol's StopsLevel minimum distance, complying with exchange rules
  • Signal inversion parameter provides flexibility for testing or adapting to different market conditions
  • Exit logic is linked to entry signals, forming a relatively complete trading loop

Weaknesses

  • No dynamic money management - fixed lot size cannot adjust based on account balance or risk
  • Default stop loss and take profit are zero, creating unlimited risk exposure without protection
  • Uses current bar (r[0]) data for signal calculation, uncompleted bar data changes frequently causing signal flickering
  • No spread filter - for small volatility patterns like Inside Bar, high spreads can easily erode profits
  • SolveLots function only returns fixed lots, retaining the parameter structure but implementing no dynamic calculation logic

Possible improvements

  • Implement dynamic position sizing based on account risk percentage instead of fixed lots
  • Add new bar detection logic to calculate signals only when a new bar forms, avoiding signal flickering and repeated trades
  • Add spread filter condition to pause trading when spread is too wide, protecting profit margins
  • Mandate stop loss or provide minimum stop loss protection to prevent catastrophic losses from unprotected trades

Risk assessment

Overall risk: Caution

  • Default zero stop loss/take profit creates unlimited risk exposure per trade
  • Using uncompleted bar data for signals risks signal flickering causing repeated open/close cycles
  • Fixed lot sizing without money management may cause excessive per-trade risk on large accounts
  • Inside Bar patterns have small volatility, high spread environments may cause frequent losses

Evaluation scores

Code quality3.0
Strategy logic3.0
Risk management2.0
Robustness2.0
Innovation2.0
Documentation2.0
Overall2.3

Parameters

ParameterDefaultDescription
Lots0.1Fixed lot size, used when MaximumRisk is zero
StopLoss0Stop loss in points, 0 means no SL
TakeProfit0Take profit in points, 0 means no TP
InvertSignalsfalseInvert trading signals, swap buy/sell

Similar Candlestick Pattern 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.