schema_version: macro_event_synchronizer.v2 formula_id: MACRO_EVENT_SYNCHRONIZER_V2 purpose: > macro/event rows are CONTEXT_ONLY inputs and must not be used to create prices. P1-013: macro_risk_score -> position_size_scale + cash_target_pct 자동 조정. python_tool: tools/build_macro_event_synchronizer_v2.py required_metrics: - macro_event_rows_freshness_hours # <= 24 - event_hold_gate_coverage # == 100% - position_size_scale_wired # == 100 (JSON 제공됨) - external_context_used_for_price_count # == 0 - position_size_scale # NEW: macro_risk_score에서 산출 - cash_target_pct # NEW: macro_risk_score에서 산출 # -- position_size_scale 산출 공식 (P1-013 신규) -- position_size_scale_formula: input: macro_risk_score # hApex.macro_risk_score (0~100) table: NORMAL: {threshold: "<20", scale: 1.00, cash_target_pct: 5.0} CAUTION: {threshold: "20-40", scale: 0.75, cash_target_pct: 15.0} HIGH_RISK: {threshold: "40-60", scale: 0.50, cash_target_pct: 25.0} VERY_HIGH: {threshold: "60-80", scale: 0.25, cash_target_pct: 40.0} EXTREME: {threshold: ">=80", scale: 0.00, cash_target_pct: 60.0} note: > scale은 주문 수량 상한 계수. scale=0.5이면 기준 수량의 50% 이하만 집행. EXTREME(scale=0.00)이면 신규 매수 금지. # -- event_hold_gate -- event_hold_gate: pre_guard_days: 5 # HIGH Impact 이벤트 5일 전부터 신규 BUY 차단 post_guard_days: 2 # 이벤트 후 2일 포지션 축소 구간 applies_to: HIGH,VERY_HIGH # MEDIUM 이벤트는 WATCH만 # -- 금지 사항 -- prohibitions: - "macro/event 외부 데이터를 주문 가격 산출에 직접 사용 금지" - "event_hold 종목 guard 구간 내 신규 BUY 금지" - "position_size_scale=0.00(EXTREME)에서 신규 진입 금지" - "macro_risk_score 변경 없이 position_size_scale 임의 수정 금지"