You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
3.6 KiB
YAML

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

_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