0a51702a9a
Phase 2 implementation complete: P3 - 손절 체계 재정의 (Stop Loss Taxonomy): - spec/exit/stop_loss.yaml: P3 섹션 추가 - calcAbsoluteRiskStopV1_: 절대 손실 금지선 (entry * 0.92 vs ATR * 1.5) - calcRelativeUnderperfAlertV1_: 상대 성과 추적 (WATCH/TRIM_30/TRIM_50/EXIT_100) - calcStopActionLadderV1_: 사다리식 액션 결정 P4 - 라우팅 단일화 (Unified Routing): - spec/xx_routing_contract.yaml: 4가지 스타일 가중치 정의 - buildRoutePacket_: SCALP/SWING/MOMENTUM/POSITION 점수 + best_style 결정 P5 - 뒷북 차단 (Anti-Late Entry): - spec/exit/pre_distribution_gate.yaml: 배분 위험 조기 감지 - calcAlphaLeadV1_: Alpha Lead Entry Gate (alpha_lead_score >= 75) - calcDistributionRiskV1_: Pre-Distribution Early Warning (risk >= 70) P6 - 현금확보 (Cash Recovery): - spec/exit/cash_recovery.yaml: K2 50/50 분할 + value_damage <= 10% - calcCashRecoveryOptimizerV1_: 현금 최적화 (부족액 4,134만원) UI/UX 개선 (MudBlazor 6.10.0): - Dashboard.razor: 단순 버전 (컴파일 에러 제거) - MainLayout.razor: Typo enum 수정 (H5→h5, H6→h6) - NavMenu.razor: Icons.Material.Filled.Portfolio → Inventory2 릴리스 빌드: - dotnet publish -c Release 성공 - publish 폴더 24MB (배포 준비 완료) 실전 운영 계획: - spec/realtime/live_outcome_ledger_plan.yaml: 30건 신호 샘플링 계획 - honest_proof_score: 56.57 → 95.0 개선 경로 정의 - 예상 기간: 2026-06-25 ~ 2026-08-10 (약 6주) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
88 lines
3.7 KiB
YAML
88 lines
3.7 KiB
YAML
---
|
|
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"
|
|
- "모든 주문 로깅 의무"
|