BTC Strike AutoTrader
- Experts
-
Shipra Gupta
I’m Shipra Gupta, a trader and quantitative strategy developer with a strong background in mathematics, economics, and algorithmic trading systems. Over the years, I’ve worked extensively across forex, gold, indices, commodities, and crypto markets, focusing on building data-driven trading - Version: 2.20
- Activations: 10
BTCStrike EA
BTCStrike is a professional Bitcoin Expert Advisor for MetaTrader 5, engineered for BTCUSD automated trading on the M30 timeframe. Built using reverse-engineered logic from thousands of live BTC trades, BTCStrike leverages dynamic support and resistance zone detection combined with precision breakout entries, adaptive risk management, and multi-layer trade protection to deliver consistent results across all market conditions. Whether you are an algorithmic trading beginner looking for a plug-and-play Bitcoin EA or an experienced quant seeking a fully customizable MQL5 bot, BTCStrike provides institutional-grade execution logic, comprehensive broker compatibility validation, and a live dashboard — all in a single Expert Advisor.
Overview
BTCStrike operates on a breakout methodology built around dynamically calculated price zones. It places pending orders at calculated levels and manages them through a suite of intelligent exit mechanisms including a trailing stop, breakeven protection, time-based exit, and a hard take profit. The strategy is self-selecting by nature — only the side price actually moves toward will ever trigger, giving it a structural edge before any additional filter is applied.
The EA has been tested across over 6,600 closed trades on BTCUSD spanning 2022 to 2026, demonstrating profitability across bear markets, bull runs, and ranging conditions.
Key Features
- Fully automated breakout strategy designed specifically for BTCUSD on M30
- Dynamic support and resistance zones recalculated on every new bar
- Dual-direction pending order placement with automatic cancellation of the unfilled side
- Risk-based lot sizing that scales correctly as BTC price changes over time
- Trailing stop with configurable activation level, trail distance, and step
- Breakeven stop that moves SL to entry once the trade reaches a defined profit threshold
- Time-based exit that closes stagnant losing positions before they reach full stop loss
- Drawdown-based lot scaling that automatically reduces position size during losing periods
- ATR volatility filter to avoid entering during extreme or flat market conditions
- Momentum confirmation requiring consecutive bars to confirm breakout direction
- News filter with support for both live MT5 calendar and CSV-based historical data in backtesting
- Weekend closure with configurable Friday close and Sunday resume hours
- Account-level and symbol-level validation suite covering margin, volume limits, stops level, freeze level, and order count limits
- Live dashboard panel showing real-time status, trading conditions, GMT offset, and news state
Recommended Settings
Timeframe: M30 (mandatory — the EA enforces this automatically)
Symbol: BTCUSD or XBTUSD. Works on any BTC pair with USD as the quote currency. Avoid applying to non-BTC symbols.
Broker requirements:
- ECN or Raw Spread account recommended
- Minimum balance: $1,000 for 1% risk-based sizing
- Broker must support pending orders with expiry (ORDER_TIME_SPECIFIED)
Starting configuration for new users:
- Set UseFixedLot to false and RiskPercentage to 1.0 for safe risk-controlled sizing
- Leave ZoneBufferPct at the default of 0.50 initially
- Enable RequireMomentum and leave TimeExitMinutes at 20
- Keep EnableBreakevenStop true with BreakevenTriggerPct at 0.10
Parameter Optimization Guide
ZoneLookbackBars (default: 5)
- This controls how many M30 bars are used to define the support and resistance zone
- Lower values (3–4) make the EA more reactive and increase trade frequency, suitable for trending markets
- Higher values (7–10) produce stronger zone levels and fewer but higher-quality signals, suitable for ranging conditions
- Start optimization between 4 and 8
ZoneBufferPct (default: 0.50)
- Defines how far beyond the zone boundary price must be for an order to be placed
- This is the most impactful parameter for win rate — higher values filter weaker breakouts
- Values between 0.30 and 0.70 are the practical range
- Increase to 0.60–0.70 in low-volatility periods; decrease toward 0.30 in highly volatile trending markets
- Avoid going below 0.20 as it leads to excessive false breakouts
StopLossPct (default: 0.25)
- Fixed percentage stop loss from entry price
- Keep between 0.20 and 0.40 for BTCUSD
- Widening slightly to 0.30 can reduce stop-outs during high volatility at the cost of larger individual losses
- Do not optimize this independently of ZoneBufferPct — they work as a pair
TakeProfitPct (default: 1.5)
- Hard take profit target as a percentage from entry
- Set to 0 to disable and rely entirely on the trailing stop
- The optimal range for BTCUSD is 1.0–2.5 depending on volatility regime
- In strong trending markets, raising to 2.0–2.5 significantly improves average win
- In choppy markets, lowering to 0.8–1.2 locks in gains before reversals
TrailingStartPct (default: 0.15) and TrailingStopPct (default: 0.10)
- TrailingStartPct controls how far into profit the trailing stop activates
- TrailingStopPct controls the distance the trail maintains from current price
- A wider trail (0.12–0.15) lets winning trades run further but gives back more on reversal
- A tighter trail (0.06–0.08) locks in profit sooner but exits early in strong moves
- Recommended: keep TrailingStopPct at roughly 60–70% of TrailingStartPct
BreakevenTriggerPct (default: 0.10)
- Move the stop loss to entry once profit reaches this threshold
- Lower values (0.06–0.08) protect more trades but may exit early in volatile conditions
- Higher values (0.15–0.20) give trades more room before locking in zero risk
TimeExitMinutes (default: 20)
- Closes any position still in a loss after this many minutes
- This directly reduces gross loss — most losing trades in this strategy are quick reversals
- Range to optimize: 10–45 minutes
- In slower market conditions, increase to 30–45; in fast BTC markets, 10–20 is optimal
ATRPeriod, ATRHighMultiplier, ATRLowMultiplier
- The ATR filter prevents entries when volatility is outside the normal range
- ATRHighMultiplier (default: 2.5) — reduce to 2.0 to be more selective during volatile periods
- ATRLowMultiplier (default: 0.3) — raise to 0.5 to avoid flat, low-momentum market conditions
- Optimize ATRPeriod between 10 and 20
DDScaleStartPct (default: 5.0) and DDScaleStopPct (default: 15.0)
- These control the drawdown-based lot reduction system
- When equity drops more than DDScaleStartPct below the peak, lot sizes begin reducing
- At DDScaleStopPct drawdown, sizing reaches a 30% minimum to preserve capital
- For conservative accounts, lower DDScaleStartPct to 3.0 and DDScaleStopPct to 10.0
- For more aggressive accounts tolerating larger swings, raise to 8.0 and 20.0
DailyLossLimitPct (default: 3.0)
- Trading stops for the day once this percentage of balance is lost
- Conservative setting: 2.0 — suitable for prop firm challenges or risk-limited accounts
- Aggressive setting: 4.0–5.0 — suitable for normal trading accounts
Backtesting Notes
- Always run backtests on the M30 timeframe using BTCUSD
- Use a starting balance of at least $1,000 when testing with risk-based lot sizing
- Enable Every Tick Based on Real Ticks or Every Tick mode for the most accurate results
- The news filter CSV file should be placed in the MT5 Common\Files folder before running if EnableNewsFilter is true in backtest mode
- If no news CSV is available, disable the news filter (EnableNewsFilter = false) for clean backtesting
Live Trading Notes
- The EA automatically switches to M30 on a live chart if a different timeframe is selected
- The live news filter uses the MT5 economic calendar and does not require any CSV file
- Ensure your broker does not impose very low SYMBOL_VOLUME_MIN limits — the EA will log and skip any order that fails volume validation
- Monitor the dashboard for real-time feedback on filters, session status, and active orders
- Magic number must be unique per chart instance if running on multiple symbols simultaneously
