meta: title: "은퇴자산포트폴리오 — 시장위험 현금룰" parent_file: "spec/risk/risk_control.yaml" version: "2026-05-15-F12_split" language: "ko-KR" timezone: "Asia/Seoul" role: "canonical" migration_status: "canonical_split_active" risk_control: VIX: below_18: "정상 집행" 18_25: "집행액 85%" 25_35: "집행액 60%" above_35: "신규 위험자산 50% 축소" above_45: "신규 위험자산 매수 중단" US10Y: monthly_plus_50bp: "위험자산 수량 20% 축소 및 하락 위험 상향" rate_cut_delay_shock: "금리 인하 지연 + 환율 1,400원 동시 돌파 시 신규 매수 전면 중단, cash_floor 15~20% 즉각 상향" market_risk_score_based_cash: purpose: "MRS(시장 위험 점수) 0~10점에 따라 현금 비중을 5~20%로 자동 조정. cash_floor.regime_numbers 고정값 대체." formula: "target_cash_pct = 5 + (MRS / 10) × 15" formula_examples: MRS_0: "target_cash_pct = 5% (강한 상승장 최저현금)" MRS_5: "target_cash_pct = 12.5%" MRS_10: "target_cash_pct = 20% (극단 위기 최고현금)" mrs_components: VIX: below_18: 0 18_25: 2 25_35: 3 above_35: 4 max_score: 4 KOSPI_vs_MA20: above_MA20: 0 below_MA20: 2 max_score: 2 USD_KRW: below_1400: 0 1400_1450: 1 above_1450: 2 max_score: 2 USD_JPY_direction: stable: 0 rapid_drop_1pct_2d: 1 max_score: 1 credit_stress: none: 0 caution: 1 max_score: 1 override_rule: rule: "target_cash_pct = max(MRS_formula_result, cash_floor.regime_numbers 해당 구간 min_cash_ratio)" note: "MRS 기반 결과와 기존 regime_numbers 중 더 높은 값 적용. MRS가 기존보다 낮을 경우 기존 하한 유지." output_table: columns: ["VIX점수", "KOSPI점수", "환율점수", "JPY점수", "신용점수", "MRS합계", "target_cash_pct(%)", "현재현금(%)", "조정방향"] daily_calculation_sop: # [proposal_74 / 2026-05-15] MRS 일일 산출 실행 프로토콜 reference_time: "매일 15:30 종가 확정 직후" collection_sequence: step_1: "VIX 종가 수집 → score 산출 (VIX<18→0, 18~25→2, 25~35→3, >35→4)" step_2: "KOSPI 종가 vs MA20 비교 → score (MA20 상회→0, 이탈→2)" step_3: "USD/KRW 종가 → score (<1400→0, 1400~1450→1, >1450→2)" step_4: "USD/JPY → score (급격 하락 2거래일 내 1%↓→1, 정상→0)" step_5: "credit_stress → score (경계→1, 없음→0)" aggregation: "MRS = step_1~step_5 합산 (최소 0, 최대 10)" missing_data_rule: rule: "각 컴포넌트 데이터 미확인 시 해당 컴포넌트 최고점 보수 처리" VIX_missing: "→ 4점 처리" KOSPI_MA20_missing: "→ 2점 처리" USD_KRW_missing: "→ 2점 처리" USD_JPY_missing: "→ 1점 처리" credit_missing: "→ 1점 처리" rationale: "데이터 누락 = 위험 인식 불가 = 최고 위험 가정이 생존 원칙에 부합" output_requirement: "MRS 점수·각 컴포넌트 점수·target_cash_pct를 보고서 블록5 현금룰 섹션에 출력 필수" update_frequency: "일별 갱신. VIX 5p 이상 장중 급변 시 장중 임시 갱신 허용." fallback_logic: # [proposal_82 / 2026-05-15] MRS 미산출 시 조건부 보수적 기본값 purpose: "MRS 미산출 시 시장 국면에 따른 조건부 보수적 기본값으로 위험 방어" conditional_default: VIX_high: "VIX >= 25 확인 시 → target_cash_pct 기본값 15%" KOSPI_below_MA20: "KOSPI 종가 < MA20 확인 시 → target_cash_pct 기본값 12%" normal: "두 조건 모두 미충족 시 → target_cash_pct 기본값 10%" all_unknown_rule: "VIX·KOSPI 모두 확인 불가 시 → target_cash_pct 15% 강제 적용 AND 신규 매수 보류(MRS 재산출 완료 후 재개)" priority: "daily_calculation_sop 실행 실패 시에만 발동. SOP 성공 시 비활성." output_requirement: "fallback 발동 시 블록5에 [MRS 미산출 — fallback 적용: X%] 표기 필수" prohibition: - "VIX >= 25 국면에서 MRS 미산출 상태로 10% 기본값 적용 금지" - "all_unknown 상태에서 MRS 재산출 없이 신규 매수 집행 금지" prohibition: - "MRS 점수 미산출 시 target_cash_pct 기본값 10% 적용. 명시 표기." - "MRS 결과가 기존 cash_floor.regime_numbers보다 낮아도 기존 하한 유지 (하향 조정 금지)" - "→ master_prohibitions.P3 전역 적용" # [proposal_56 / 2026-05-15] 섹터 급락 당일 대응 프로토콜 — sector_crash_intraday_protocol