Files
QuantEngineByItz/docs/DAILY_SIGNAL_TRACKING.md
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

275 lines
5.7 KiB
Markdown

# 📊 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 (금요일)