Files
QuantEngineByItz/spec/realtime/live_outcome_ledger_plan.yaml
T
kjh2064 8f13bb4a48 feat: postgres history-first 계약과 적재 경로 추가
- PostgreSQL history contract와 schema/validator를 추가했습니다.
- .NET history store, snapshot reader, repository, migration을 연결했습니다.
- history-first 운영 모델 문서와 daily signal tracking 문구를 정리했습니다.
2026-06-26 14:17:04 +09:00

170 lines
8.0 KiB
YAML

---
schema_version: "live_outcome_ledger_plan_v1"
generated: "2026-06-25"
description: "실전 거래신호 추적 및 CALIBRATED 전환 계획"
# ─────────────────────────────────────────────────────────────────────────────
# 목표
# ─────────────────────────────────────────────────────────────────────────────
purpose: |
실제 거래 신호 30개를 T+20 기준으로 평가하여
UNVALIDATED → PROVISIONAL → CALIBRATED 상태 전환
honest_proof_score: 56.57 → 95.0 달성
implementation_note: |
live_outcome_ledger.gs는 Google Sheets 원장 적재/갱신용 GAS thin adapter다.
운영 리포트와 검증용 JSON 산출물은 Python 하네스가 Temp/ 경로에 생성한다.
GAS는 JSON 리포트를 직접 출력하지 않는다.
이후 운영 표준은 PostgreSQL history store이며, 시트/GAS는 운영 경로에서 제외한다.
current_state:
honest_proof_score: 56.57
target_score: 95.0
improvement_needed: 38.43
# ─────────────────────────────────────────────────────────────────────────────
# 레저 구조 (19 필드)
# ─────────────────────────────────────────────────────────────────────────────
ledger_fields:
- "signal_id: 거래신호 고유 ID"
- "date: 신호 발생 일자 (YYYY-MM-DD)"
- "ticker: 종목코드"
- "signal_type: BUY|SELL"
- "signal_score: 신호 강도 (0-100)"
- "entry_price: 진입가 (KRW)"
- "entry_quantity: 진입 수량"
- "entry_time: 진입 시간 (HH:MM)"
- "style: SCALP|SWING|MOMENTUM|POSITION"
- "routing_confidence: 라우팅 확신도 (0-100)"
- "price_t5: T+5 종가"
- "price_t10: T+10 종가"
- "price_t20: T+20 종가"
- "return_pct_t20: T+20 수익률 (%)"
- "outcome: WIN|LOSS|BREAKEVEN"
- "win_margin: 수익률 절대값 (%)"
- "validation_status: UNVALIDATED|PROVISIONAL|CALIBRATED"
- "notes: 평가 메모"
- "last_updated: 마지막 업데이트 (ISO 8601)"
# ─────────────────────────────────────────────────────────────────────────────
# 상태 전환 규칙
# ─────────────────────────────────────────────────────────────────────────────
state_transitions:
UNVALIDATED:
condition: "신호 생성 직후"
action: "T+20 가격 데이터 대기"
duration: "약 20 거래일"
PROVISIONAL:
condition: "T+20 데이터 수집 완료"
criteria:
- "return_pct_t20 계산됨"
- "outcome 판정됨"
- "win_margin 기록됨"
action: "신호 품질 임시 검증"
CALIBRATED:
condition: "30개 신호 누적 + 평균 win_rate >= 60%"
criteria:
- "sample_count >= 30"
- "avg_win_rate >= 60%"
- "win_margin >= 2.0% (평균)"
action: "해당 스타일 알고리즘 locked (배포)"
honest_proof_score_gain: "+15점"
# ─────────────────────────────────────────────────────────────────────────────
# 샘플링 일정
# ─────────────────────────────────────────────────────────────────────────────
sampling_schedule:
start_date: "2026-06-25"
target_date: "2026-08-10" # 약 6주 (30개 신호 × 20거래일 수집)
expected_completion: "30개 신호 완료"
sampling_targets:
SCALP: "10개" # 초단타
SWING: "8개" # 중단기
MOMENTUM: "7개" # 모멘텀
POSITION: "5개" # 장기
# ─────────────────────────────────────────────────────────────────────────────
# 품질 기준 (W/L 판정)
# ─────────────────────────────────────────────────────────────────────────────
quality_criteria:
WIN:
condition: "return_pct_t20 > 2.0%"
example: "진입 50,000 → T+20 51,000원 (+2%)"
LOSS:
condition: "return_pct_t20 < -2.0%"
example: "진입 50,000 → T+20 49,000원 (-2%)"
BREAKEVEN:
condition: "-2.0% <= return_pct_t20 <= 2.0%"
action: "통계에서 제외 (noise)"
success_threshold: "avg_win_rate >= 60% (30개 중 18개 WIN)"
# ─────────────────────────────────────────────────────────────────────────────
# honest_proof_score 개선 경로
# ─────────────────────────────────────────────────────────────────────────────
honest_proof_improvement_path:
current: 56.57
phase_1_complete:
name: "P0 거짓 100% 제거"
gain: "+10점"
new_score: 66.57
phase_2_30_samples:
name: "live_outcome_ledger 30건"
gain: "+20점"
new_score: 86.57
phase_3_p3_to_p6:
name: "P3~P6 체계 운영"
gain: "+8점"
new_score: 94.57
final_target: 95.0
# ─────────────────────────────────────────────────────────────────────────────
# 추적 시스템
# ─────────────────────────────────────────────────────────────────────────────
tracking_system:
datastore: "PostgreSQL history store"
deprecated_surface: "live_outcome_ledger (GAS 연동 스프레드시트)"
daily_tasks:
- "신규 신호 entry 작성 (시작할 때)"
- "T+5, T+10, T+20 가격 입력 (자동 수집)"
- "outcome 자동 계산"
- "validation_status 자동 전환"
weekly_review:
- "누적 신호 수 확인"
- "win_rate 추이 분석"
- "스타일별 성적 비교"
- "honest_proof_score 예상치 갱신"
# ─────────────────────────────────────────────────────────────────────────────
# 체크리스트
# ─────────────────────────────────────────────────────────────────────────────
checklist:
- "[ ] live_outcome_ledger 스프레드시트 생성 (GAS 연동)"
- "[ ] 신호 기록 템플릿 작성"
- "[ ] T+20 가격 수집 자동화 (GAS)"
- "[ ] Temp/operational_t20_outcome_ledger_v1.json 생성 체인 유지 (Python)"
- "[ ] daily commit: 신호 추가 시마다"
- "[ ] 30개 신호 누적 (약 6주)"
- "[ ] win_rate >= 60% 달성"
- "[ ] CALIBRATED 전환"
- "[ ] honest_proof_score 95 달성"