# MT5 bridge URL (required) MT5_BASE_URL=http://localhost:8080 # ── Symbol & Timeframe ────────────────────────────────────────────────────── # Single pair: SYMBOL=XAUUSDm # Multi pair (comma-sep, overrides SYMBOL): # SYMBOLS=XAUUSDm,XAGUSDm TIMEFRAME=M5 # ── Risk ───────────────────────────────────────────────────────────────────── RISK_PCT=0.01 # ── Momentum Candle Thresholds ─────────────────────────────────────────────── BODY_PCT_MIN=0.5 CLOSE_PCT_MIN=0.8 # ── FVG Setup ──────────────────────────────────────────────────────────────── FVG_EXPIRY_CANDLES=10 MIN_FVG_PIPS=1 MIN_SL_PIPS=5 SL_BUFFER=0 MIN_RR=1.5 # TIMEOUT_CANDLES=0 # ── Friction ───────────────────────────────────────────────────────────────── COMMISSION_PER_LOT=7 SLIPPAGE_POINTS=2 SPREAD_OVERRIDE=0 # ── EMA Trend Filter ───────────────────────────────────────────────────────── EMA_PERIOD=20 # ── Backtest ───────────────────────────────────────────────────────────────── BACKTEST_BALANCE=600 BACKTEST_CANDLES=50000 # DATE_FROM=2025-01-01 # DATE_TO=2025-12-31 # ── Live Trading ───────────────────────────────────────────────────────────── # LIVE=true # LIVE_POLL_SECS=30 # ── Optimisations ───────────────────────────────────────────────────────────── # Session filter: only take new entries when UTC hour in [FROM, TO). # Leave empty to disable. Recommended: 8-13 (London) based on live data. SESSION_FROM_UTC=8 SESSION_TO_UTC=13 # Breakeven: move SL to entry once price moves this multiple of SL-distance. # 0 = disabled, 1.0 = move at 1:1 RR # BREAKEVEN_AT_RR=1.0 # Daily loss limit: halt new entries if today's closed PnL < -(balance × pct). # 0 = disabled, 0.03 = stop after -3% day # DAILY_LOSS_LIMIT_PCT=0.03 # ATR quality filters (backtest + live): reject weak FVGs/impulses. # Research (20k candles, XAUUSDm): with ATR filters alone PF improves vs no-filter baseline. # Combined with EMA=10 + ENTRY_ZONE_PCT=0.75: PF 2.58, DD -1134 (vs PF 1.39, DD -3064 unfiltered). MIN_FVG_ATR_RATIO=0.3 # FVG zone must be >= 0.3× ATR(14) MIN_IMPULSE_ATR_RATIO=1.0 # Impulse candle body must be >= 1.0× ATR(14) # Pre-fill invalidation: cancel pending FVG if price closes past impulse SL before fill. PRE_FILL_INVALIDATE=true # Entry zone within FVG: 0.0 = zone edge (aggressive), 0.5 = midpoint, 1.0 = far edge (conservative). # Research: 0.75 gives best PF/DD balance (waits deeper into zone for better confirmation). ENTRY_ZONE_PCT=0.75 # ── Telegram Notifications ─────────────────────────────────────────────────── # Get token from @BotFather, chat_id from @userinfobot or Telegram API. # All three are optional — omit to disable notifications. # TELEGRAM_BOT_TOKEN=123456:ABC-xxxx # TELEGRAM_CHAT_ID=-100xxxxxxxxxx # TELEGRAM_THREAD_ID=123 # forum topic/thread ID (optional)