|
|
_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
|