[The Ouroboros] 운영/전략 계획서 v2 작성일: 2026-02-26 상태: 코드 구현 전 설계안(전략/검증 중심) ================================================== 0) 목적 ================================================== 고정 익절(+3%) 중심 로직에서 벗어나, 다음을 만족하는 실전형 청산 체계로 전환한다. - 수익 구간 보호 (손익 역전 방지) - 변동성 적응형 청산 - 예측 모델의 확률 신호를 보조적으로 결합 - 과적합 방지를 최우선으로 한 검증 프레임워크 ================================================== 1) 핵심 설계 원칙 ================================================== 1. 예측 성능과 전략 성능을 분리 평가 - 예측 성능: PR-AUC, Brier, Calibration - 전략 성능: Net PnL, Sharpe, MDD, Profit Factor, Turnover 2. 시계열 검증 규율 강제 - Walk-forward 분할 - Purge/Embargo 적용 - Random split 금지 3. 실거래 리얼리즘 우선 - 거래비용/슬리피지/체결실패 반영 없는 백테스트 결과는 채택 금지 ================================================== 2) 매도 상태기계 (State Machine) ================================================== 상태: - HOLDING - BE_LOCK - ARMED - EXITED 정의: - HOLDING: 일반 보유 상태 - BE_LOCK: 일정 수익권 진입 시 손절선을 본전(또는 비용 반영 본전)으로 상향 - ARMED: 추세 추적(피크 추적) 기반 청산 준비 상태 - EXITED: 청산 완료 전이 규칙(개념): - HOLDING -> BE_LOCK: unrealized_pnl_pct >= be_arm_pct - BE_LOCK -> ARMED: unrealized_pnl_pct >= arm_pct - ARMED -> EXITED: 아래 조건 중 하나 충족 1) hard stop 도달 2) trailing stop 도달 (peak 대비 하락) 3) 모델 하락확률 + 유동성 약화 조건 충족 상태 전이 구현 규칙(필수): - 매 틱/바 평가 시 "현재 조건이 허용하는 최상위 상태"로 즉시 승격 - 순차 if-else로 인한 전이 누락 금지 (예: 갭으로 BE_LOCK/ARMED 동시 충족) - EXITED 조건은 모든 상태보다 우선 평가 - 상태 전이 로그에 이전/이후 상태, 전이 사유, 기준 가격/수익률 기록 ================================================== 3) 청산 로직 구성 (4중 안전장치) ================================================== A. Hard Stop - 계좌/포지션 보호용 절대 하한 - 항상 활성화 B. Dynamic Stop (Break-even Lock) - BE_LOCK 진입 시 손절선을 본전 이상으로 상향 - "수익 포지션이 손실로 반전"되는 구조적 리스크 차단 C. ATR 기반 Trailing Stop - 고정 trail_pct 대신 변동성 적응형 사용 - 예시: ExitPrice = PeakPrice - (k * ATR) D. 모델 확률 신호 - 하락전환 확률(pred_prob)이 임계값 이상일 때 청산 가중 - 단독 트리거가 아닌 trailing/리스크 룰 보조 트리거로 사용 ================================================== 4) 라벨링 체계 (Triple Barrier) ================================================== 목표: 고정 H-window 라벨 편향을 줄이고, 금융 시계열의 경로 의존성을 반영한다. 라벨 정의: - Upper barrier (익절) - Lower barrier (손절) - Time barrier (만기) 규칙: - 세 장벽 중 "먼저 터치한 장벽"으로 라벨 확정 - 라벨은 entry 시점 이후 데이터만 사용해 생성 - 피처 생성 구간과 라벨 구간을 엄격 분리해 look-ahead bias 방지 ================================================== 5) 검증 프레임워크 ================================================== 5.1 분할 방식 - Fold 단위 Walk-forward - Purge/Embargo로 인접 샘플 누수 차단 5.2 비교군(Baseline) 구조 - B0: 기존 고정 손절/익절 - B1: 모델 없는 trailing only - M1: trailing + 모델 확률 결합 5.3 채택 기준 - M1이 B0/B1 대비 OOS(Out-of-sample)에서 일관된 우위 - 단일 구간 성과가 아닌 fold 분포 기준으로 판단 ================================================== 6) 실행 아키텍처 원칙 ================================================== 1. 저지연 실행 경로 - 실시간 청산 판단은 경량 엔진(룰/GBDT) 담당 - LLM은 레짐 판단/비중 조절/상위 의사결정 보조 2. 체결 현실 반영 - 세션 유동성에 따른 슬리피지 페널티 차등 적용 - 미체결/재호가/재접수 시나리오를 백테스트에 반영 ================================================== 7) 운영 리스크 관리 ================================================== 승격 단계: - Offline backtest -> Paper shadow -> Small-capital live 중단(Kill Switch): - rolling Sharpe 악화 - MDD 한도 초과 - 체결 실패율/슬리피지 급등 Kill Switch 실행 순서(원자적): 1) 모든 신규 주문 차단 플래그 ON 2) 모든 미체결 주문 취소 요청 3) 취소 결과 재조회(실패 건 재시도) 4) 포지션 리스크 재계산 후 강제 축소/청산 판단 5) 상태/로그 스냅샷 저장 및 운영 경보 발송 원칙: - 모델이 실패해도 hard stop 기반 보수 모드로 즉시 디그레이드 가능해야 함 ================================================== 8) 고정 파라미터(초기안) ================================================== (15분봉 단기 스윙 기준 제안) - KR: be_arm_pct=1.2, arm_pct=2.8, atr_period=14, atr_multiplier_k=2.2, time_barrier_bars=26, p_thresh=0.62 - US: be_arm_pct=1.0, arm_pct=2.4, atr_period=14, atr_multiplier_k=2.0, time_barrier_bars=32, p_thresh=0.60 민감도 범위(초기 탐색): - be_arm_pct: KR 0.9~1.8 / US 0.7~1.5 - arm_pct: KR 2.2~3.8 / US 1.8~3.2 - atr_multiplier_k: KR 1.8~2.8 / US 1.6~2.4 - time_barrier_bars: KR 20~36 / US 24~48 - p_thresh: 0.55~0.70 ================================================== 9) 구현 전 체크리스트 ================================================== - 파라미터 튜닝 시 nested leakage 방지 - 수수료/세금/슬리피지 전부 반영 여부 확인 - 세션/타임존/DST 처리 일관성 확인 - 모델 버전/설정 해시/실험 로그 재현성 확보 끝.