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.

124 lines
3.6 KiB
YAML

_meta:
id: 36
name: "VWAP Reclaim V1"
status: aborted
aborted_date: "2026-04-21"
aborted_reason: >
Same gainers pool as V23 → 57.3% trade overlap (fails ≤20% gate). Orthogonal high-gap
variant (id:37) reduced overlap to 16.5% but daily PnL corr=0.394 (fails ≤0.30 gate).
Root cause: correlation is regime-driven (both long-momentum, both triggered by same
QQQ-positive days) — not fixable by any stock-selection filter. VWAP stop mode broke
position sizing (entry ≈ VWAP → stop_distance ≈ 0 → overleverage → WR 16%). Baseline
+13.82%/WR 48% does not beat V23 (+95.67%/WR 58%). Not a valid diversifier.
description: >
Phase 2 / diagnostic pass: V23's gainers_leader candidate pool + minimal VWAP reclaim entry.
Engine: vwap_reclaim_v1 — same pre-market candidates as V23, but instead of entering
on the 9:30-9:35 ORB breakout, scans from 10:00 ET (30 min from open) for the first
bar that closes above the running session VWAP.
Hypothesis: catalyst stocks spend the first 20-30 min in price discovery.
A VWAP close-above in the 10:00-11:30 window signals committed direction.
Diagnostic purpose: determine if V23's candidate pool structurally supports
a late-morning entry (vs. negative selection like orb_pullback_v1 showed).
Gate: base WR ≥ 45% (vs. pullback's 25.6%). If fails → wrong pool.
This config uses zero quality gates (no tightness, no base, no vol filter) —
purely "first bar closing above VWAP in [10:00, 11: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.02
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: 0.04
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
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