Files
The-Ouroboros/docs/ouroboros/86_peak_probability_model_plan.md
agentson 16515080dc
Some checks failed
Gitea CI / test (pull_request) Failing after 5s
docs: seed peak probability model plan (#86)
2026-03-02 22:59:31 +09:00

4.6 KiB

고점 확률 모델 도입 계획 (초안)

작성일: 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 추론 출력

{
  "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: 기존 "모델 보조 신호" 항목 업데이트