|
|
# ORB Phase 4 — Composite Ranking Weights + Risk Per Trade
|
|
|
#
|
|
|
# Phase 1-3 fixed: entry direction, bar size, stop management, universe/risk filters.
|
|
|
# Phase 4 tunes the composite ranking signal that picks which breakouts to trade.
|
|
|
#
|
|
|
# New signals available (currently weight=0):
|
|
|
# weight_body_ratio: ORB candle body size (bullish body = strong buying pressure)
|
|
|
# weight_momentum: 5-day prior return aligned with breakout direction
|
|
|
#
|
|
|
# Weights don't need to sum to 1.0 — normalized per-day before weighting.
|
|
|
#
|
|
|
# 3 × 3 × 3 × 2 = 54 combinations
|
|
|
#
|
|
|
# IMPORTANT: Update base_config to Phase 3 winner before running!
|
|
|
#
|
|
|
# Run:
|
|
|
# python -m apps.intraday_bt.evaluate \
|
|
|
# --config configs/intraday/orb_p3_winner.yaml \
|
|
|
# --sweep configs/intraday/sweep_orb_p4_weights.yaml \
|
|
|
# --start 2022-01-01 --split-date 2025-01-01 \
|
|
|
# --top-n 54 --oos-sort \
|
|
|
# --output runs/intraday_orb/phase4_eval.json
|
|
|
|
|
|
base_config: configs/intraday/orb_p3_winner.yaml
|
|
|
|
|
|
sweep:
|
|
|
# RVOL weight (baseline signal) — currently 0.60
|
|
|
weight_rvol: [0.40, 0.60, 0.80]
|
|
|
|
|
|
# Gap weight (premarket activity proxy) — currently 0.25
|
|
|
weight_gap: [0.15, 0.25, 0.35]
|
|
|
|
|
|
# Body ratio weight (new: bullish ORB candle body = buying conviction) — currently 0.0
|
|
|
weight_body_ratio: [0.0, 0.15, 0.30]
|
|
|
|
|
|
# Risk per trade — currently 0.0025
|
|
|
risk_per_trade_pct: [0.001, 0.002, 0.0025]
|
|
|
|
|
|
compound_returns: [false]
|