_meta: id: 37 name: "VWAP Reclaim V1 High-Gap" status: aborted aborted_date: "2026-04-21" aborted_reason: > Orthogonal gap pool (≥4%) reduced trade overlap to 16.5% (passes ≤20%) but daily PnL corr=0.394 (fails ≤0.30). Correlation is purely regime-driven — both engines are long-momentum triggered by QQQ-positive days. Worst-20% day combined PnL is WORSE than V23 standalone (amplifies drawdowns). Baseline +13.82%/WR 48% fails G1 (WR<50%) and G3 (corr). Phase 3 must use a directionally different approach to break regime correlation. description: > Diagnostic pass 2: high-gap pool (gap ≥ 4%) + VWAP reclaim entry. Problem with same-pool vwap_reclaim_v1: 57% trade overlap with V23 (same stocks, same days). Hypothesis: V23 uses max_gap_pct=0.04 (2-4% gap). Gap > 4% stocks are orthogonal by construction — V23 never touches them. These higher-gap stocks often exhibit genuine price discovery (initial dump then reclaim) rather than immediate continuation. Gate: base WR ≥ 45% AND portfolio overlap ≤ 30%. strategy_mode: orb orb_strategy: engine_family: vwap_reclaim_v1 live_readiness: research_only orb_minutes: 5 sim_bar_minutes: 5 entry_direction: long_only order_timeout_minutes: 120 # not used for entry, but sets the timeout context allow_doji_breakout: true allow_red_to_green_breakout: true # === Candidate filters identical to V23 (gainers_leader pool) === min_price: 10.0 min_avg_dollar_volume: 25000000 min_atr_14: 0.50 min_atr_pct: 0.04 min_rvol: 1.5 min_abs_gap_pct: 0.04 # high-gap pool: ≥4% gap (orthogonal to V23's 2-4% range) min_premarket_dollar_vol: 1500000 max_candidates: 20 max_candidates_per_sector: 3 min_candidates_to_trade: 1 ticker_cooldown_days: 0 max_gap_pct: null # no upper cap — allow all high-gap stocks min_candidate_breadth: 0.60 market_regime_spy_threshold: 0.0015 market_regime_ticker: QQQ rolling_loss_days: 7 rolling_loss_threshold: -0.07 max_simultaneous_entries: 3 min_breakout_rel_vol: null # disabled — VWAP reclaim bar is late-morning, not ORB # === Scoring weights identical to V23 === weight_rvol: 0.35 weight_gap: 0.20 weight_dollar_vol: 0.05 weight_premarket_dollar_vol: 0.25 weight_body_ratio: 0.0 weight_momentum: 0.15 # === Stop / exit parameters (base ATR same as V23) === atr_stop_multiplier: 0.75 breakeven_at_r: 1.0 trailing_at_r: 1.0 trailing_stop_atr_multiplier: 0.8 trailing_tighten_at_r: 2.0 trailing_stop_atr_multiplier_tight: 0.3 partial_exit_at_r: 99.0 partial_exit_pct: 0.50 risk_per_trade_pct: 0.05 max_position_pct: 0.70 daily_max_loss_pct: 0.05 max_stops_per_day: 5 exit_minutes_before_close: 5 slippage_bps: 5.0 initial_capital: 10000 compound_returns: false daily_budget_reset: true settlement_days: 1 drawdown_governor_threshold: 0.025 drawdown_governor_min_scale: 0.30 streak_sizing_win_bonus: 0.70 streak_sizing_max: 2.5 # === VWAP reclaim window === vwap_reclaim_window_start_min: 30 # 10:00 ET vwap_reclaim_window_end_min: 120 # 11:30 ET vwap_reclaim_require_prior_dip: false vwap_reclaim_min_clearance_pct: 0.0 # no clearance filter — enter on first close above VWAP vwap_reclaim_stop_mode: vwap # structural stop: distance to VWAP floor vwap_reclaim_stop_vwap_buffer_pct: 0.002 # stop at VWAP × (1 - 0.2%) universe: source: midlarge backtest: start_date: null end_date: null lookback_trading_days: 200 cache: enabled: true dir: data/cache/intraday output: dir: runs/intraday_orb verbose: false