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.

123 lines
3.3 KiB
YAML

_meta:
id: 100
name: "ORB Gainers V24 Quality Overlay"
status: superseded
live_readiness: experimental
promoted_date: "2026-04-21"
superseded_by: orb_gainers_v46_prior_event
superseded_date: "2026-04-22"
parent: orb_gainers_v23
description: >
V23 → V24 via OBV-slope(20d) accumulation weight (weight_obv_slope: 0.05).
Diagnostic finding (2026-04-21, 98 V23 trades n=96 valid):
Phase 1: obv_slope_20 passed all gates:
Pearson(obv_slope, r_multiple) = +0.2349
Top-tercile WR 75.0% vs Bottom-tercile 59.4% (+15.6pp)
Top-tercile avg_R +0.431 vs Bottom-tercile +0.036 (+0.394R)
Hurst_60 and OU-θ_60 both failed gates.
Weight sweep: 0.05 is Pareto-dominant (0.10 blows DD; 0.15 return+108% but DD -16%).
Phase 2 validation (2026-04-21):
200d: V24 +94.8%, DD -11.29%, Sharpe 2.83 vs V23 +85.0%, DD -11.58%, Sharpe 2.66
Δ Return +9.8pp, Δ DD +0.29pp (BETTER), Δ Sharpe +0.17 ← ALL PASS
400d: V24 +162.1%, DD -13.70%, Sharpe 2.47 vs V23 +149.4%, DD -13.66%, Sharpe 2.36
Δ Return +12.7pp, Δ DD -0.04pp (negligible), Δ Sharpe +0.11 ← ALL PASS
V24 is Pareto-dominant over V23 on both 200d and 400d windows.
Hypothesis confirmed: OBV accumulation pre-breakout = smart-money positioning
→ cleaner follow-through → better candidate selection quality.
strategy_mode: orb
orb_strategy:
engine_family: gainers_leader
live_readiness: experimental
orb_minutes: 5
sim_bar_minutes: 5
entry_direction: long_only
order_timeout_minutes: 45
allow_doji_breakout: true
allow_red_to_green_breakout: true
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: 1.2
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
# === NEW: OBV accumulation weight (Phase 1 gate: Pearson=0.23, WR gap +15.6pp) ===
# Weight sweep result: 0.05 is Pareto-dominant (best return AND DD simultaneously)
# 0.10 → DD blows up (-15.72%); 0.15 → return +108% but DD -16%
weight_obv_slope: 0.05
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
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