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.
121 lines
3.2 KiB
YAML
121 lines
3.2 KiB
YAML
_meta:
|
|
id: 100
|
|
name: "ORB Gainers V24 Quality Overlay"
|
|
status: live_champion
|
|
live_readiness: experimental
|
|
promoted_date: "2026-04-21"
|
|
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
|