---
schema_version: "cash_recovery_optimizer_v1"
generated: "2026-06-25"
description: "P6: 가치보존형 현금확보"

# Phase 6: 현금확보 (은퇴자산포트폴리오 목표 달성을 위한 현금 조성)
# 현재: 자산 3.94억, 현금 부족: 4,134만원 (목표: 5억)
# 제약: value_damage_raw_pct <= 10% (자산 가치 훼손 최소화)

problem:
  current_asset_krw: 394191813       # 현재 자산
  target_asset_krw: 500000000         # 목표
  shortfall_krw: 41342219             # 부족액
  current_cash_pct: 3.86              # 현금 비중
  target_cash_pct: 15.0               # 목표 현금 비중
  status: "BELOW_FLOOR"
  market_regime: "BREAKDOWN"

objective: "현금 부족액 충족 AND 주식가치 훼손 최소 (raw <= 10%)"

# ─────────────────────────────────────────────────────────────────────────────
# 핵심 전략: K2 50/50 분할
# ─────────────────────────────────────────────────────────────────────────────

approach: "K2 50/50 분할: immediate_qty + rebound_wait_qty"

key_rules:
  rule_1: |
    K2 즉시 50% / 반등 대기 50% 분할
    (rebound_trigger_price 도달 전까지 대기 주문 실행 금지)

  rule_2: |
    매도 순서: K3 regime_adjusted_sell_priority 사용
    코어 주도주 마지막 (상승추세 종목 보호)

  rule_3: |
    value_damage_raw_pct <= 10% 상한 유지
    (cap_pass=false 허용 안함)

  rule_4: |
    emergency_full_sell=true 조건:
    (half_expected * 2) < shortfall_min 일 때만

# ─────────────────────────────────────────────────────────────────────────────
# 공식
# ─────────────────────────────────────────────────────────────────────────────

formulas:
  rebound_trigger_price: |
    prevClose + 0.5 * ATR20
    (tick 정규화 후 지정가 사용)

  value_damage_raw_pct: |
    sum(target_sell_krw) / current_portfolio_value * 100

  immediate_qty_pct: 50

  rebound_wait_qty_pct: 50

# ─────────────────────────────────────────────────────────────────────────────
# 구현
# ─────────────────────────────────────────────────────────────────────────────

implementation:
  - "spec/exit/cash_recovery.yaml (현재 파일)"
  - "src/google_apps_script/gas_data_feed.gs: calcCashRecoveryOptimizerV1_()"
  - "tools/validate_value_preservation_v1.py (raw <= 10% 검증)"

sample_case:
  current_asset: 394191813
  shortfall: 41342219
  target_damage_pct: "10% max"
  expected_recovery: 37108765

execution_checklist:
  - "K3 regime_adjusted_sell_priority 실행"
  - "매도 대상 종목 선정 (코어 제외)"
  - "immediate 50% 주문 발생"
  - "rebound_trigger_price 모니터링"
  - "rebound_wait 50% 대기 주문 준비"
  - "value_damage 모니터링 (10% 이내)"
  - "emergency 조건 평가"

enforcement:
  - "자동 매도 순서 적용, 수동 개입 금지"
  - "value_damage > 10% 초과 시 ABORT"
  - "모든 주문 로깅 의무"
