# 고점 확률 모델 도입 계획 (초안) 작성일: 2026-03-02 목적: 기존 계획(v2)의 "모델 보조 신호"를, 실운용 가능한 단순한 형태로 재정의한다. --- ## 1. 한 줄 요약 - 목표는 "지금이 고점(또는 고점 근처)일 확률"을 예측해 익절/축소/오버나잇 리스크 결정을 보조하는 것이다. - 1차는 정규장 중심으로 시작하고, NXT/US_PRE 등 확장세션은 이후 분리 대응한다. --- ## 2. 왜 바꾸는가 - 기존 논의는 범위가 넓어 구현/검증 비용이 컸다. - 현재 로그 구조에서도 빠르게 시작 가능한 타깃이 필요하다. - 실거래 효용 기준에서 "고점 근처 감지"는 청산 품질 개선에 직접 연결된다. --- ## 3. 이번 계획의 핵심 결정 ### 3.1 예측 타깃 (2개) - `p_top_d0`: 현재 시점이 "오늘 정규장 고점(근접 포함)"일 확률 - `p_top_d1`: 현재 시점이 "내일 정규장 마감까지 포함한 고점(근접 포함)"일 확률 ### 3.2 모델 역할 - 단독 매도 트리거가 아니라 보조 신호로 사용한다. - Hard stop / ATR trailing / Kill Switch 우선 원칙은 유지한다. ### 3.3 적용 순서 1. KR/US 정규장만 대상으로 MVP 구축 2. 성능/운영 안정화 후 NXT, US_PRE, US_AFTER 분리 확장 --- ## 4. 데이터/라벨 정의 (MVP) ### 4.1 샘플 단위 - 단위: "시점 t의 관측값 1개" - 대상: 주문 가능 시점 중 정책 게이트를 통과하는 시점 ### 4.2 라벨 정의 - `y_d0 = 1` if `max_high(t ~ 오늘 정규장 마감) <= price_t * (1 + eps_d0)` else `0` - `y_d1 = 1` if `max_high(t ~ 내일 정규장 마감) <= price_t * (1 + eps_d1)` else `0` ### 4.3 필수 피처 (초기) - 가격/수익률: `current_price`, `price_change_pct` - 미시지표: `rsi`, `volume_ratio`, `signal`, `score` - 포트폴리오: `portfolio_pnl_pct`, `total_cash`(선택) - 상태: `market`, `session_id`, `minutes_to_close`, `is_tradeable_now` ### 4.4 데이터 제외 규칙 (초기) - `session_id in ('', 'UNKNOWN')` 제외 - `price <= 0` 또는 `quantity <= 0` 제외 - `rationale LIKE '[startup-sync]%'` 제외 - 라벨 윈도우 불완전(휴장/데이터 누락) 샘플 제외 --- ## 5. 추론/실행 규칙 (초안) ### 5.1 추론 출력 ```json { "p_top_d0": 0.00, "p_top_d1": 0.00, "model_version": "TBD" } ``` ### 5.2 실행 반영 원칙 - `p_top_d0`가 높으면: 당일 익절/트레일링 강화 - `p_top_d1`가 높으면: 오버나잇 보유 축소/청산 우선 - 확장세션(NXT/US_PRE)은 초기엔 보수 임계치 또는 실행 제한 --- ## 6. 세션 이슈 대응 원칙 ### 6.1 거래 가능 세션 기준 - 달력 시간이 아니라 "종목이 실제 거래 가능한 세션" 기준으로 라벨/추론을 구성한다. ### 6.2 정규장 vs 확장세션 분리 - MVP: 정규장 전용 라벨/모델 - 확장: 세션별 헤드 또는 세션별 모델 분리 검토 ### 6.3 고점 정의 분리 - `reg_high`: 정규장 고점 (주 라벨) - `ext_high`: 확장세션 포함 고점 (보조 분석) --- ## 7. 단계별 구현 계획 ### Phase A: 계약 고정 - 학습용 canonical dataset 스키마 확정 - 시점 정렬(as-of) 규칙 문서화 - 라벨 생성 함수/검증 테스트 추가 ### Phase B: 오프라인 검증 - Walk-forward + Purge/Embargo 평가 - `d0`, `d1` 분리 리포트 - B1(모델 없음) 대비 개선 여부 확인 ### Phase C: 런타임 통합 - 추론 결과를 `pred_top_d0/pred_top_d1`로 주입 - 매도/축소 보조 규칙 연결 - Shadow 모드로 관측 후 제한적 활성화 ### Phase D: 세션 확장 - NXT/US_PRE/US_AFTER 정책 분리 - 실행 게이트/임계치 세션별 튜닝 --- ## 8. 지금 당장 결정할 최소 항목 (TBD) - [ ] `eps_d0`, `eps_d1` 기본값 (`TBD`) - [ ] `p_top_d0`, `p_top_d1` 실행 임계치 (`TBD`) - [ ] 정규장/확장세션 대상 시장 범위 (`TBD`) - [ ] 최소 학습 샘플 수 기준 (`TBD`) - [ ] Shadow 관측 기간 (`TBD`) --- ## 9. 리스크 및 완화 - 라벨 불균형: class weight, threshold 튜닝 - 시간대 편향(장마감 근처): 시간 피처 추가 + 구간별 성능 보고 - 데이터 무결성: 제외 규칙 강제 + CI 검증 - 복잡도 증가: 정규장 MVP를 먼저 잠그고 확장세션은 후속 분리 --- ## 10. 후속 문서 연결 (예정) - requirements registry: 신규 REQ/TASK/TEST 매핑 추가 - code-level work orders: 구현 작업 분해 - acceptance/test plan: `p_top_d0/d1` 검증 항목 추가 - implementation audit: 기존 "모델 보조 신호" 항목 업데이트