# spec/strategy/semiconductor_concentration_policy.yaml # 반도체 집중 허용 정책 — MARKET_WEIGHT_AWARE_CLUSTER_GATE_V1 # ──────────────────────────────────────────────────────────────────────────── # 배경: # 한국 KOSPI 시장에서 삼성전자+SK하이닉스는 시총 비중 35%+를 차지한다. # 기존 고정 25% 한도는 이 두 종목이 주도하는 상승장에서 시장 대비 필연적 # 언더퍼폼을 강제한다. 분산은 목적이 아니라 리스크 관리 수단이며, # 주도주 집중 전략이 유효한 국면에서는 시장 비중만큼은 허용해야 한다. # # 원칙: # 1. 시장 비중(KOSPI_SEMI_WEIGHT) 이하는 항상 PASS — 시장 중립 포지션 # 2. RISK_ON 국면에서는 시장 비중 1.3배까지 허용 (능동적 과중비중) # 3. SECULAR_LEADER 국면에서는 65%까지 허용 (주도주 집중 전략) # 4. RISK_OFF / EVENT_SHOCK에서는 시장 비중 × 0.7로 축소 (방어) # 5. 한도 초과 시 BLOCK이 아닌 WARN/TRIM — 설거지 구간에서만 BLOCK # ──────────────────────────────────────────────────────────────────────────── formula_id: MARKET_WEIGHT_AWARE_CLUSTER_GATE_V1 # KOSPI 반도체 시총 비중 — settings 시트에서 사용자가 직접 입력해야 함 # 주의: 하드코딩 기본값 없음. 시총 비중은 KRX/FnGuide 실데이터 기준으로만 입력. # 미입력 시 GAS는 DATA_MISSING 상태로 동작 (정책 한도만 적용, 시장비중 × 배수 미적용) kospi_weights_settings_keys: kospi_semi_weight_pct: "settings 시트 key — 삼성전자+SK하이닉스 합산 KOSPI 비중 (%)" kospi_samsung_weight_pct: "settings 시트 key — 삼성전자 단독 KOSPI 비중 (%)" kospi_hynix_weight_pct: "settings 시트 key — SK하이닉스 단독 KOSPI 비중 (%)" data_source: "KRX 또는 FnGuide 시총 비중 데이터 (최소 월 1회 갱신 권장)" critical_note: | KOSPI 내 삼성전자·SK하이닉스 비중은 시장 상황에 따라 크게 변동한다. 어떠한 추정치도 settings 미입력 시 코드에 삽입하지 않는다. 반드시 사용자가 실제 시총 데이터 기반으로 직접 입력해야 한다. # ── 반도체 클러스터 한도 (동적) ───────────────────────────────────────────── cluster_cap_table: EVENT_SHOCK: cap_pct: "max(20, kospi_semi_weight × 0.60)" default: 21.0 rationale: "이벤트 충격: 시장 비중의 60%로 방어 축소" gate_behavior: "초과 시 CLUSTER_BLOCK (신규 BUY 전면 금지)" RISK_OFF: cap_pct: "max(25, kospi_semi_weight × 0.80)" default: 28.0 rationale: "하락장: 시장 비중의 80%까지만 유지" gate_behavior: "초과 시 CLUSTER_BLOCK" NEUTRAL: cap_pct: "max(35, kospi_semi_weight × 1.00)" default: 35.0 rationale: "중립: 시장 비중 매칭까지 허용 (PASS)" gate_behavior: "초과 시 CLUSTER_OVERWEIGHT_TRIM (BUY 금지, 점진 감축)" change_from_old: "25% → 35% (시장 중립 허용)" RISK_ON: cap_pct: "max(45, kospi_semi_weight × 1.30)" default: 45.0 rationale: "상승장: 반도체 주도 시 시장 비중 130%까지 능동 과중비중 허용" gate_behavior: "초과 시 CLUSTER_OVERWEIGHT_WARN (BUY 신중, 강제 감축 아님)" change_from_old: "25% → 45% (반도체 주도 상승장 적극 참여 허용)" SECULAR_LEADER_RISK_ON: cap_pct: 65.0 rationale: "주도주 집중 전략: 삼성+하이닉스 양 종목 최대 보유" gate_behavior: "초과 시 CLUSTER_OVERWEIGHT_TRIM" change_from_old: "60% → 65%" CLA: cap_pct: 65.0 rationale: "CONCENTRATED_LEADER_ADVANCE: SECULAR_LEADER_RISK_ON과 동일" gate_behavior: "초과 시 CLUSTER_OVERWEIGHT_TRIM" # 게이트 상태 정의 (변경) gate_status_definitions: PASS: "combined_pct < kospi_semi_weight × 0.90 — 시장 비중 90% 이하" CLUSTER_OVERWEIGHT_WARN: "combined_pct < regime_cap — 주의 모니터링, BUY 신중" CLUSTER_OVERWEIGHT_TRIM: "combined_pct >= regime_cap (non-RISK_OFF) — 감축 검토" CLUSTER_BLOCK: "combined_pct >= regime_cap (RISK_OFF/EVENT_SHOCK) — 신규 BUY 금지" CLUSTER_HOLD_ONLY: "isCLA AND combined_pct < cap — 보유만, 추가 매수 금지" # ── 개별 종목 비중 한도 (LEADER_POSITION_WEIGHT_CAP_V1) ──────────────────── leader_position_cap_table: description: | 005930(삼성전자), 000660(SK하이닉스)는 KOSPI 주도주로서 일반 종목 상한(20%)과 별도로 시장 비중 기반 상한을 적용한다. # 모든 한도는 EXPERT_PRIOR (calibration_registry.yaml 등록). # KOSPI 비중이 settings에 입력되면 max(정책한도, kospi_weight × 배수) 적용. # KOSPI 비중 미입력 시 정책 한도만 적용 (추정치 삽입 금지). samsung_005930: EVENT_SHOCK: 15.0 RISK_OFF: 18.0 NEUTRAL: 28.0 # kospi_samsung_weight 입력 시: max(28, weight×1.20) RISK_ON: 40.0 # kospi_samsung_weight 입력 시: max(40, weight×1.70) SECULAR_LEADER_RISK_ON: 50.0 # 입력 시: max(50, weight×2.20) skhynix_000660: EVENT_SHOCK: 10.0 RISK_OFF: 12.0 NEUTRAL: 15.0 # kospi_hynix_weight 입력 시: max(15, weight×1.20) RISK_ON: 22.0 # 입력 시: max(22, weight×1.80) SECULAR_LEADER_RISK_ON: 28.0 # 입력 시: max(28, weight×2.50) other_stocks: EVENT_SHOCK: 12.0 RISK_OFF: 15.0 NEUTRAL: 20.0 RISK_ON: 22.0 SECULAR_LEADER_RISK_ON: 25.0 # ── SECULAR_LEADER 자동 감지 조건 ─────────────────────────────────────────── secular_leader_auto_detect_conditions: description: | RISK_ON 국면에서 아래 조건이 충족되면 SECULAR_LEADER_RISK_ON으로 자동 상향 → 클러스터/단일종목 한도 완화 적용. conditions: - id: SL1 description: "RS비율: 삼성전자 또는 SK하이닉스의 RS_Ratio >= 1.5 (5일 연속)" weight: 3 - id: SL2 description: "수급: 외인+기관 삼성전자 또는 SK하이닉스 동반순매수 3일 이상" weight: 2 - id: SL3 description: "섹터: 반도체 섹터 5일 수익률 KOSPI 대비 +5% 이상 초과" weight: 2 - id: SL4 description: "거래대금: 반도체 섹터 5일 평균 거래대금 > 20일 평균 × 1.3" weight: 1 threshold: "합산 ≥ 6점 → SECULAR_LEADER_RISK_ON 자동 진입" exit_conditions: - "RS_Ratio < 1.0 (3일 연속)" - "외인+기관 동반순매도 5일" - "DISTRIBUTION_SELL_DETECTOR_V1.weighted_sum >= 4.0" # ── 리스크 관리 보완 (집중 시 자동 강화) ──────────────────────────────────── concentration_risk_safeguards: description: | 반도체 집중도가 높을수록 개별 종목 손절을 더 타이트하게 관리. '몰빵 후 고점 물리기' 방지. rules: - id: CR1 trigger: "combined_pct >= 50%" action: "PROFIT_RATCHET_TIERED_V2 강제 활성화 (PROFIT_LOCK_10 이상 구간 진입 즉시)" note: "집중도 높을수록 수익 보호 필수" - id: CR2 trigger: "combined_pct >= 55% AND DISTRIBUTION_SELL_DETECTOR weighted_sum >= 3.0" action: "K2_STAGED_REBOUND_SELL 즉시 발동 (절반 즉시 매도, 절반 반등 대기)" note: "설거지 구간 + 고집중도 = 즉시 반응" - id: CR3 trigger: "combined_pct >= 65%" action: "신규 BUY 전면 금지 (SECULAR_LEADER에서도)" note: "65%가 최대 한도 — 이 이상은 포트폴리오 전체 위험" # ── 하네스 수치 목표 ───────────────────────────────────────────────────────── performance_targets: cluster_gate_false_positive_rate_max: 5 # 건당 BLOCK인데 실제 손실 없었던 비율 cluster_gate_true_positive_rate_min: 85 # 건당 BLOCK이었을 때 실제 손실 방어 비율 expected_benchmark_tracking_error_reduction_pct: 30 # 기존 25% 한도 대비 추적오차 감소 calibration_status: EXPERT_PRIOR sample_n: 0 note: "실측 표본 30건 이상 누적 후 PROVISIONAL → CALIBRATED 승격"