Files
trading/docs/ai_org.md
T
kyu 5c721e6b70 feat: 데이터 토대 + 정확도 검증 (AI 투자조직 Phase 0~1)
- score-engine: 일간리포트 텔레그램을 notify=True(16:30 1회)로 게이팅 → 호출마다
  발신되던 폭주 제거. 데이터 무결성 모니터(/data-health + 평일 매시간 경고).
  정확도 검증 하베스트(/accuracy + 주간 리포트) — 추천 등급별 실측 알파/적중률.
- ta-engine: job_analyze가 is_active=true 전 활성종목 시총순 커버(장중 상위500·
  장마감 전종목). 기존 LIMIT 500·무필터로 LS 등 누락되던 버그 수정.
- docs/ai_org.md: 데이터우선 마스터 기획(데이터→검증→지능→실행).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 12:29:02 +09:00

69 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AI 주식 투자 회사 — 마스터 기획 (데이터 우선 재설계)
> 사용자 의도: AI 에이전트들이 매일 회사처럼 스스로 운영. 사용자는 결과+승인.
> **핵심 원칙(재정립)**: 지능·자동실행보다 **데이터 신뢰성과 정확도 검증이 먼저**.
> "쓰레기 입력 → 쓰레기 추천". 토대가 검증되기 전엔 위층을 신뢰하지 않는다.
> 선택: 두뇌=하이브리드(EXAONE 1차 + Gemini 고급검증) / 승인=자동실행+사후보고 / 풀 조직.
## 왜 순서를 바꿨나 (2026-06-03 발견된 토대 결함)
- 시세: 키움 토큰 race로 stale → 복구함.
- 일봉(stock_ohlcv): 06-02 366종목/오늘 0개. ka10005(30봉 한계)로 백필 안 됨 → **네이버 siseJson 경로 필요**.
- TA: `/analyze/all`이 dart_corps LIMIT 500 중 163개만, `is_active=true` 필터 없음.
- 정확도: 매일 "당일 실측 대비" 검증이 운영 중심이 아님.
→ 이 상태로 에이전트 조직을 올리면 추천이 오염된다. 데이터·검증을 먼저 세운다.
---
## 로드맵 (각 Phase는 "검증 통과"가 다음 진행 조건)
### Phase 0 — 데이터 신뢰 기반 (지금 시작)
목표: 모든 핵심 데이터가 **매일 최신·전종목·무결**하고, 깨지면 **즉시 감지**.
- [ ] OHLCV 백필 정상화: 네이버 siseJson 경로로 06-02~당일 + KOSPI 지수 채움. 키움은 보조.
- [ ] TA 커버리지: 전 활성종목 대상 + `is_active=true` 필터.
- [ ] **데이터 무결성 모니터**(신규): 시세/일봉/TA/점수/뉴스의 신선도·종목수·결측을 매시간 점검,
기준 미달이면 텔레그램 경고 1건. (= "데이터 제대로 쌓이는지" 상시 감시)
- 검증: 모니터가 "전부 GREEN" 며칠 유지. LS 등 표본 종목 시세=일봉=TA=점수 일치.
### Phase 1 — 정확도 검증 하베스트 (백본)
목표: 모든 예측을 **매일 당일 실측과 대조**해 맞는지 수치로 안다.
- [ ] 일일 검증 잡: 어제 추천/예측 vs 오늘 실제 등락 → 등급별 적중률·평균수익·알파·IC(스피어만) 기록.
(기존 verify_predictions_job / /backtest / /learn-weights 를 이 백본으로 통합·정규화)
- [ ] **핫종목 검증팀**을 여기 편입: 키움 핫종목(ka10023 거래량급증 등) × 시스템 추천 교차 →
노이즈(작전·테마·일시급등) 필터 → 며칠 뒤 실측으로 "노이즈 판별이 맞았나" 정확도 추적.
- [ ] 정확도 리포트(텔레그램/대시보드): 방식이 맞는지 매일 사용자에게 숫자로 보고.
- 검증: 적중률·IC가 무작위(0) 대비 유의미하게 양(+)인지. 아니면 방식 수정.
### Phase 2 — AI 조직 (신뢰 데이터 위에서)
- [ ] 🔍 리서치 2명: `run_deep_analysis(model="hybrid")` 재사용 (EXAONE↔Gemini 교차검증).
- [ ] ⚠️ 리스크 매니저: 사이징·섹터집중·레짐·분식·단기약세·일일손실 게이트 정식화.
- [ ] 🧭 CIO(신규, Gemini): 점수+논거+리스크+핫검증 종합 → "오늘의 결정안"(매수/매도/보류+확신도+사이즈+논거).
- 비용 가드: EXAONE 전종목 1차 → 상위 N(기본10)만 Gemini. `gemini_call_log` 일일한도 재사용.
- 검증: 결정안을 1~2주 dry-run, Phase 1 하베스트로 실측 적중 확인.
### Phase 3 — 자동실행 + 사후보고
- 기본 **모의투자 유지**(`KIS_IS_PAPER=true`). 실계좌 전환은 별도 명시 승인.
- 사전승인 필수("중요") 기본: ①1회 매수 ≥50만원 ②신규종목 ③일일손실 -2% 근접.
- 그 외 가드 내 자동실행 + 텔레그램 사후보고. 기존 7가드·halt 유지.
- 검증: 모의계좌 체결·손익이 결정안과 일치, 가드가 실제로 막는지.
---
## 조직도 (Phase 2에서 완성, 기존 재사용 위주)
| 직책 | 구현 | 상태 |
|------|------|------|
| 📥 데이터팀 | 서비스 7종 | ✅ (Phase 0에서 신뢰성 보강) |
| 🔍 리서치 ×2 | run_deep_analysis(hybrid) | ✅ 재사용 |
| 💰 퀀트 | score-engine 10공식 | ✅ |
| 🔥 핫종목 검증팀 | 키움 핫 × 추천 노이즈필터 | 🟡 Phase 1 |
| ⚠️ 리스크 매니저 | 가드 묶음 | 🟡 Phase 2 |
| 🧭 CIO | 종합 결정안 (Gemini) | ❌ Phase 2 |
| 📋 리포터 / ✅ 사용자 | 텔레그램 보고·승인 | 🟡 Phase 3 |
## 신규 산출물(누적)
- `data_health` 점검 모듈 + 신선도 모니터 (Phase 0)
- OHLCV siseJson 백필 보강 (Phase 0)
- `prediction_accuracy` 검증 하베스트 + 리포트 (Phase 1)
- `/hot/validate` 핫종목 노이즈필터 (Phase 1)
- `daily_decisions` 테이블 + CIO 로직 (Phase 2)
- 자동실행/사후보고 배선 (Phase 3)