# Morning Momentum Intraday Backtester — Default Configuration # Strategy: Buy top N morning gainers at ENTRY time, sell at EXIT time or stop loss. strategy: entry_minutes_after_open: 30 # 9:30 + 30 = 10:00 AM ET exit_minutes_before_close: 30 # 4:00 - 30 = 3:30 PM ET stop_loss_pct: -0.02 # -2% stop loss (null to disable) min_morning_gain_pct: 0.01 # stock must be up >= 1% to qualify top_n: 3 # buy top 3 gainers initial_capital: 10000 # $10,000 starting capital slippage_bps: 5.0 # 0.05% per side (entry + exit) universe: source: sp500 # sp500 | nasdaq100 | broad | midlarge | largecap | midcap | smallmid | yaml | screener sector_exclude: [] # e.g. ["Energy", "Utilities"] min_price: 5.0 # filter out penny stocks backtest: start_date: null # null = auto (today - lookback_trading_days) end_date: null # null = today lookback_trading_days: 40 # ~2 months pre_screen_threshold: 0.015 # phase 1 filter: opening gap vs prev_close >= 1.5% cache: enabled: true dir: data/cache/intraday # Parquet files: {dir}/{TICKER}/{YYYY-MM-DD}.parquet output: dir: runs/intraday verbose: false # true = show per-day table during run