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.
125 lines
3.4 KiB
YAML
125 lines
3.4 KiB
YAML
_meta:
|
|
id: 30
|
|
name: "ORB Gainers V23 Safe v2"
|
|
status: validated
|
|
parent: orb_gainers_v23
|
|
description: >
|
|
V23 파생 전략 — "안전 투자자" v2. v1(+5.16%, DD -13.49%)보다 DD를 줄이는 것이 목표.
|
|
|
|
핵심 발견 (v1 분석):
|
|
- V23 손실일의 QQQ 갭: +0.3%~+3.4% → QQQ 임계값 강화는 효과 없음
|
|
- 손실은 QQQ 방향이 아닌 개별 종목 실패에서 발생
|
|
- DD는 손실 클러스터(Oct/Sep 2025)에서 집중 발생
|
|
|
|
v2 접근법:
|
|
1. Rolling loss governor 강화: 손실 직후 즉시 거래 중단 (-2% threshold)
|
|
2. Partial exit 활성화: 1R(0.75ATR) 도달시 50% 이익 실현 → 많은 거래를 "무조건 수익"으로
|
|
3. 포지션 축소: risk 5%→2% (손실 기회당 절대액 감소)
|
|
4. 동시 포지션: 3→2 (손실 클러스터링 방지)
|
|
5. QQQ 레짐: 유지 (효과 없음이 증명됨 — 더 강화해도 소용없음)
|
|
6. Streak sizing 비활성화 (안전 우선)
|
|
|
|
200d 검증 결과 (2025-07-03 → 2026-04-20):
|
|
- 수익: +36.67% (V23 +109.32% 대비)
|
|
- Max DD: -11.54% (고점 대비, 그러나 시작 자본 이하 0일!)
|
|
- Sharpe: 2.24
|
|
- 시작 자본($10k) 이하: 0일 (최저점 $10,017 on 2025-07-09)
|
|
- 최악의 하루: -$344 (V23 -$981 대비)
|
|
- 거래일: 49/200, 거래: 154건
|
|
|
|
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: 5
|
|
# === KEY CHANGE: stop IMMEDIATELY after $200 loss (was -7%) ===
|
|
rolling_loss_threshold: -0.02
|
|
# === CHANGE: max 2 simultaneous (was 3) ===
|
|
max_simultaneous_entries: 2
|
|
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
|
|
|
|
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
|
|
|
|
# === KEY CHANGE: lock in 50% at 1R (was disabled at 99R) ===
|
|
partial_exit_at_r: 1.0
|
|
partial_exit_pct: 0.50
|
|
|
|
# === CHANGE: smaller per-trade risk (was 0.05) ===
|
|
risk_per_trade_pct: 0.02
|
|
max_position_pct: 0.70
|
|
# === CHANGE: tighter daily loss cut (was 0.05) ===
|
|
daily_max_loss_pct: 0.02
|
|
max_stops_per_day: 3
|
|
exit_minutes_before_close: 5
|
|
|
|
slippage_bps: 5.0
|
|
initial_capital: 10000
|
|
|
|
compound_returns: false
|
|
daily_budget_reset: true
|
|
settlement_days: 1
|
|
|
|
# === CHANGE: tighter portfolio governor (was 0.025) ===
|
|
drawdown_governor_threshold: 0.015
|
|
drawdown_governor_min_scale: 0.50
|
|
|
|
# === CHANGE: no streak sizing (was bonus=0.70, max=2.5) ===
|
|
streak_sizing_win_bonus: 0.0
|
|
streak_sizing_max: 1.0
|
|
|
|
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
|