166 lines
5.9 KiB
Plaintext
166 lines
5.9 KiB
Plaintext
[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 처리 일관성 확인
|
|
- 모델 버전/설정 해시/실험 로그 재현성 확보
|
|
|
|
끝.
|