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.

40 lines
1.4 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.

# 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]