8f13bb4a48
- PostgreSQL history contract와 schema/validator를 추가했습니다. - .NET history store, snapshot reader, repository, migration을 연결했습니다. - history-first 운영 모델 문서와 daily signal tracking 문구를 정리했습니다.
170 lines
8.0 KiB
YAML
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 달성"
|