# πŸ“Š Daily Signal Tracking Guide **λͺ©ν‘œ**: 30개 κ±°λž˜μ‹ ν˜Έ μˆ˜μ§‘ β†’ CALIBRATED μ „ν™˜ β†’ honest_proof_score 95 달성 **κΈ°κ°„**: 2026-06-25 ~ 2026-08-10 (μ•½ 6μ£Ό) --- ## πŸ“‹ 맀일 ν•΄μ•Ό ν•  일 ### 1️⃣ μ‹ ν˜Έ λ°œμƒ μ‹œ (거래 μ§„μž… μ‹œμ ) ```python # Python λ˜λŠ” DB λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ λ„κ΅¬μ—μ„œ μ‹€ν–‰ signal = { "date": "2026-06-25", "ticker": "000660", # SKν•˜μ΄λ‹‰μŠ€ λ“± "signal_type": "BUY", # BUY λ˜λŠ” SELL "signal_score": 78, # 0-100 "entry_price": 50000, # KRW "entry_quantity": 10, # μ£Ό "entry_time": "10:30", # HH:MM "style": "SWING", # SCALP|SWING|MOMENTUM|POSITION "routing_confidence": 82, # buildRoutePacket_ κ²°κ³Ό "notes": "MA20 돌파 + μŠ€λ§ˆνŠΈλ¨Έλ‹ˆ 맀수" } # 운영 ν‘œμ€€: PostgreSQL의 signal/factor history ν…Œμ΄λΈ”μ— 적재 ``` **βœ… 체크리슀트:** - [ ] signal_id μžλ™ 생성됨 (YYYYMMDD_HHMM ν˜•μ‹) - [ ] validation_status = "UNVALIDATED" - [ ] PostgreSQL 이λ ₯ ν–‰ 좔가됨 --- ### 2️⃣ T+5 (5거래일 ν›„) ``` 거래일 κΈ°μ€€: - μ›”μš”μΌ μ§„μž… β†’ λ‹€μŒμ£Ό μ›”μš”μΌμ΄ T+5 - κΈˆμš”μΌ μ§„μž… β†’ κ·Έλ‹€μŒμ£Ό κΈˆμš”μΌμ΄ T+5 ``` **ν•΄μ•Ό ν•  일:** 1. T+5일의 μ’…κ°€ 쑰회 2. `updatePriceT5_(signalId, priceT5)` μ‹€ν–‰ 3. λ˜λŠ” PostgreSQL `price_t5` 이λ ₯ 열에 직접 μž…λ ₯ **μ˜ˆμ‹œ:** ``` signal_id: 20260625_1030 μ§„μž…κ°€: 50,000 T+5 μ’…κ°€: 51,000 ``` --- ### 3️⃣ T+20 (20거래일 ν›„) ⭐ κ°€μž₯ μ€‘μš” ``` T+5 이후 μΆ”κ°€ 15거래일 κ²½κ³Ό ``` **ν•΄μ•Ό ν•  일:** 1. T+20 μ’…κ°€ 쑰회 2. `updatePriceT20_(signalId, priceT20)` μ‹€ν–‰ 3. **μžλ™μœΌλ‘œ 계산됨:** - `return_pct_t20` = (priceT20 - entryPrice) / entryPrice * 100 - `outcome` = WIN / LOSS / BREAKEVEN - `win_margin` = |return_pct_t20| - `validation_status` = PROVISIONAL (μžλ™μœΌλ‘œ UNVALIDATED β†’ PROVISIONAL μ „ν™˜) **νŒμ • κΈ°μ€€:** ``` return_pct_t20 > 2% β†’ WIN -2% ≀ ret_pct ≀ 2% β†’ BREAKEVEN (톡계 μ œμ™Έ) return_pct_t20 < -2% β†’ LOSS ``` **μ˜ˆμ‹œ:** ``` signal_id: 20260625_1030 μ§„μž…κ°€: 50,000 T+20 μ’…κ°€: 51,050 수읡λ₯ : (51,050-50,000)/50,000 * 100 = 2.1% outcome: WIN βœ… win_margin: 2.1 validation_status: PROVISIONAL ``` --- ## πŸ“ˆ μ£Όκ°„ 리뷰 (λ§€μ£Ό κΈˆμš”μΌ) ### 확인 사항 ```javascript // GAS μ½˜μ†”μ—μ„œ μ‹€ν–‰ stats = calculateStats_(); Logger.log(JSON.stringify(stats, null, 2)); ``` **좜λ ₯ μ˜ˆμ‹œ:** ```json { "total": 8, "completed": 4, "win_count": 3, "loss_count": 1, "breakeven_count": 0, "win_rate": "75.00", "avg_win_margin": "2.45", "calibrated_progress": "4/30" } ``` ### 뢄석 - βœ… **win_rate >= 60%?** β†’ YESλ©΄ 순쑰둜운 μ§„ν–‰ - πŸ“Š **avg_win_margin** β†’ 평균 수읡λ₯  확인 - 🎯 **calibrated_progress** β†’ 남은 μ‹ ν˜Έ 수 (30 - μ™„λ£Œ) ### 보고 ```markdown ## μ£Όκ°„ 리포트 (Week 1) | ν•­λͺ© | κ°’ | |------|-----| | λˆ„μ  μ‹ ν˜Έ | 8개 | | μ™„λ£Œλ¨ | 4개 | | 승λ₯  | 75% | | 평균 수읡 | 2.45% | | μ§„ν–‰λ₯  | 4/30 | | μ˜ˆμƒ μ™„λ£Œ | 2026-07-20 | ``` --- ## 🎯 λ§ˆμΌμŠ€ν†€ ### Week 1-2 (2026-06-25 ~ 2026-07-08) - **λͺ©ν‘œ**: 6-8개 μ‹ ν˜Έ - **λˆ„μ **: 6-8개 - **μ˜ˆμƒ 승λ₯ **: 50-70% ### Week 3-4 (2026-07-09 ~ 2026-07-22) - **λͺ©ν‘œ**: μΆ”κ°€ 8-10개 - **λˆ„μ **: 14-18개 - **T+20 데이터 μˆ˜μ§‘ μ‹œμž‘** (첫 μ‹ ν˜Έλ“€ 마감) ### Week 5-6 (2026-07-23 ~ 2026-08-05) - **λͺ©ν‘œ**: μΆ”κ°€ 8-10개 - **λˆ„μ **: 22-28개 - **승λ₯  검증** μ‹œμž‘ ### Week 7 (2026-08-06 ~ 2026-08-10) - **λͺ©ν‘œ**: μ΅œμ’… 2-8개 - **λˆ„μ **: 30개 μ™„λ£Œ - **CALIBRATED μ „ν™˜ 확인** --- ## πŸš€ CALIBRATED μ „ν™˜ ### μžλ™ 확인 ```javascript // 맀일 λ˜λŠ” μ£Όκ°„ μ‹€ν–‰ check = checkCalibrationReady_(); Logger.log(JSON.stringify(check, null, 2)); ``` ### 쑰건 ``` βœ… sample_count >= 30 βœ… avg_win_rate >= 60% ``` ### μ „ν™˜ ν”„λ‘œμ„ΈμŠ€ ```javascript // 쑰건 μΆ©μ‘± μ‹œ μ‹€ν–‰ calibrateIfReady_(); // κ²°κ³Ό // β†’ λͺ¨λ“  PROVISIONAL β†’ CALIBRATED // β†’ honest_proof_score +15점 (86.57 β†’ 101.57... μ‹€μ œλ‘œλŠ” cap 95) // β†’ μ•Œκ³ λ¦¬μ¦˜ locked 배포 ``` --- ## πŸ“Š honest_proof_score κ°œμ„  경둜 ``` ν˜„μž¬: 56.57 Phase 1 (P0): +10점 β†’ 66.57 Phase 2 (30건 μƒ˜ν”Œ): +20점 β†’ 86.57 Phase 3 (P3~P6 운영): +8점 β†’ 94.57 β‰ˆ 95 λͺ©ν‘œ 달성 βœ… ``` --- ## ⚠️ μ£Όμ˜μ‚¬ν•­ ### μ‹ ν˜Έ ν’ˆμ§ˆ - **κ±°μ§“ μ‹ ν˜Έ μΆ”κ°€ κΈˆμ§€** (spec μœ„λ°˜) - **뒷뢁 μ‹ ν˜Έ μ œμ™Έ** (P5 Alpha Lead λ―ΈμΆ©μ‘±) - **λ°°λΆ„ μœ„ν—˜ μ‹ ν˜Έ 차단** (P5 Distribution Risk Gate) ### 데이터 μ •ν™•μ„± - **T+20 가격**: KIS/OpenAPI/Yahoo Financeμ—μ„œ μ •ν™•ν•˜κ²Œ μˆ˜μ§‘ - **수읡λ₯  계산**: μˆ˜μˆ˜λ£ŒΒ·μ„ΈκΈˆ μ œμ™Έ (μˆœκ°€κ²© κΈ°μ€€) - **μ‹œκ°„λŒ€**: λͺ¨λ“  μ‹œκ°„λŒ€λŠ” KRW/KST κΈ°μ€€ ### 맀뉴얼 점검 - μ£Όλ‹Ή 1회 톡계 검증 - μ›”λ‹Ή 1회 μƒ˜ν”Œ ν’ˆμ§ˆ 감사 - 승λ₯  급락 μ‹œ μ¦‰μ‹œ μ‹ ν˜Έ μ •μ±… μž¬κ²€ν†  --- ## πŸ“ ν…œν”Œλ¦Ώ ### μ‹ ν˜Έ 기둝 양식 ``` μ‹ ν˜Έ ID: [μžλ™ 생성] μ’…λͺ©: SKν•˜μ΄λ‹‰μŠ€ (000660) μ§„μž…κ°€: 50,000원 μ§„μž… μˆ˜λŸ‰: 10μ£Ό μ§„μž… μ‹œκ°„: 10:30 μ‹ ν˜Έ 강도: 78/100 λΌμš°νŒ… 신뒰도: 82/100 (buildRoutePacket_) μŠ€νƒ€μΌ: SWING 이유: 5일선 돌파 + μŠ€λ§ˆνŠΈλ¨Έλ‹ˆ 순맀수 + κΈ°κ΄€ 맀수 ``` ### T+20 기둝 ``` T+20 μ’…κ°€: 51,050원 수읡λ₯ : +2.1% νŒμ •: WIN λ§ˆμ§„: 2.1% λ©”λͺ¨: λͺ©ν‘œκ°€ 도달, μ†μ ˆ μ „ μ²­μ‚° ``` --- ## πŸ”— κ΄€λ ¨ λ¬Έμ„œ - `spec/realtime/live_outcome_ledger_plan.yaml` β€” λ§ˆμŠ€ν„° κ³„νš(역사적) - `src/google_apps_script/live_outcome_ledger.gs` β€” 역사적 GAS 원μž₯ μ–΄λŒ‘ν„° - `spec/02_data_contract.yaml` β€” PostgreSQL history-first 운영 계약 - `V9_HARDENING_IMPLEMENTATION_ROADMAP.md` β€” 전체 λ‘œλ“œλ§΅ --- **λ§ˆμ§€λ§‰ μ—…λ°μ΄νŠΈ**: 2026-06-25 **λ‹€μŒ 리뷰**: 2026-07-04 (κΈˆμš”μΌ)