186 lines
6.9 KiB
Plaintext
186 lines
6.9 KiB
Plaintext
[The Ouroboros] 운영확장 v3
|
|
작성일: 2026-02-26
|
|
상태: v2 확장판 / 야간·프리마켓 포함 글로벌 세션 운영 설계안
|
|
|
|
==================================================
|
|
0) 목적
|
|
==================================================
|
|
"24시간 무중단 자산 증식" 비전을 위해 거래 세션 범위를 KR 정규장 중심에서
|
|
NXT/미국 확장 세션까지 확대한다. 핵심은 다음 3가지다.
|
|
- 세션 인지형 의사결정
|
|
- 세션별 리스크/비용 차등 적용
|
|
- 시간장벽의 현실적 재정의
|
|
|
|
==================================================
|
|
1) 세션 모델 (Session-aware Engine)
|
|
==================================================
|
|
KR 세션:
|
|
- NXT_PRE : 08:00 ~ 08:50 (KST)
|
|
- KRX_REG : 09:00 ~ 15:30 (KST)
|
|
- NXT_AFTER : 15:30 ~ 20:00 (KST)
|
|
|
|
US 세션(KST 관점 운영):
|
|
- US_DAY : 10:00 ~ 18:00
|
|
- US_PRE : 18:00 ~ 23:30
|
|
- US_REG : 23:30 ~ 06:00
|
|
- US_AFTER : 06:00 ~ 07:00
|
|
|
|
원칙:
|
|
- 모든 피처/신호/주문/로그에 session_id를 명시적으로 포함
|
|
- 세션 전환 시 상태 업데이트 및 리스크 파라미터 재로딩
|
|
|
|
==================================================
|
|
2) 캘린더/휴장/DST 고정 소스
|
|
==================================================
|
|
KR:
|
|
- 기본: pykrx 또는 FinanceDataReader (KRX 기준)
|
|
- 예외: 연휴/임시 휴장/NXT 특이 운영은 KIS 공지 기반 보완
|
|
|
|
US:
|
|
- pandas_market_calendars (NYSE 기준)
|
|
- 2026 DST:
|
|
- 시작: 2026-03-08
|
|
- 종료: 2026-11-01
|
|
|
|
정합성 규칙:
|
|
- 스케줄 충돌 시 "거래소 캘린더 > 로컬 추정" 우선
|
|
- 시장 상태(open/close/half-day)는 주문 엔진 진입 전 최종 검증
|
|
|
|
KIS 점검시간 회피 정책(필수):
|
|
- 브로커 점검/장애 블랙아웃 윈도우는 운영 설정으로 별도 관리
|
|
- 블랙아웃 구간에는 신규 주문 전송 금지, 취소/정정도 정책적으로 제한
|
|
- 신호는 유지하되 주문 의도는 Queue에 적재, 복구 후 유효성 재검증 뒤 실행
|
|
- 복구 직후에는 잔고/미체결/체결내역을 우선 동기화한 뒤 주문 엔진 재가동
|
|
|
|
==================================================
|
|
3) 시간장벽 재정의
|
|
==================================================
|
|
v2의 time_barrier_bars 고정값을 v3에서 다음으로 확장:
|
|
- max_holding_minutes (시장별 기본 만기)
|
|
- 봉 개수는 세션 길이/간격으로 동적 계산
|
|
|
|
기본값:
|
|
- KR: max_holding_minutes = 2160 (약 3거래일, NXT 포함 관점)
|
|
- US: max_holding_minutes = 4320 (약 72시간)
|
|
|
|
운영 주의:
|
|
- 고정 "일중 청산"보다 "포지션 유지 시간" 기준 만기 적용
|
|
- 세션 종료 강제청산 규칙과 충돌 시 우선순위 명시 필요
|
|
|
|
==================================================
|
|
4) 세션별 비용/슬리피지 모델 (보수적)
|
|
==================================================
|
|
KRX_REG:
|
|
- 슬리피지: 2~3틱 (약 0.05%)
|
|
- 수수료+세금: 0.20% ~ 0.23%
|
|
|
|
NXT_AFTER:
|
|
- 슬리피지: 5~8틱 (약 0.15%)
|
|
- 수수료+세금: 0.20% ~ 0.23%
|
|
|
|
US_REG:
|
|
- 슬리피지: 2~3틱 (약 0.03%)
|
|
- 수수료+기타 비용: 0.07% ~ 0.15%
|
|
|
|
US_PRE / US_DAY:
|
|
- 슬리피지: 10틱+ (약 0.3% ~ 0.5%)
|
|
- 수수료+기타 비용: 0.07% ~ 0.15%
|
|
|
|
원칙:
|
|
- 백테스트 체결가는 세션별 보수 가정 적용
|
|
- 저유동 세션은 자동 보수 모드(p_thresh 상향, atr_k 상향) 권장
|
|
- 백테스트 체결가 기본은 "불리한 방향 체결" 가정 (단순 close 체결 금지)
|
|
|
|
세션별 주문 유형 강제(필수):
|
|
- KRX_REG / US_REG: 지정가 우선, 시장가 제한적 허용
|
|
- NXT_AFTER / US_PRE / US_DAY / US_AFTER: 시장가 금지
|
|
- 저유동 세션은 최우선 지정가 또는 IOC/FOK(가격 보호 한도 포함)만 허용
|
|
- 주문 실패 시 재호가 간격/횟수 상한을 두고, 초과 시 주문 철회
|
|
|
|
==================================================
|
|
5) 포지션/잔고 통합 규칙 (KIS 특성 반영)
|
|
==================================================
|
|
문제:
|
|
- KRX/NXT 잔고 조회가 venue 단위로 분리되거나 반영 지연 가능
|
|
|
|
규칙:
|
|
- 종목 식별은 동일 종목코드(또는 ISIN) 기준 통합 포지션으로 관리
|
|
- 다만 주문 가능 수량은 venue별 API 응답을 최종 기준으로 사용
|
|
- 매도 가능 수량 검증은 주문 직전 재조회로 확정
|
|
|
|
==================================================
|
|
6) 마감 강제청산/오버나잇 예외 규칙
|
|
==================================================
|
|
기본 원칙:
|
|
- 모든 포지션에 대해 세션 종료 10분 전 REDUCE_ALL 검토
|
|
|
|
오버나잇 예외 허용 (모두 충족 시):
|
|
1) ARMED 상태 (예: +2.8% 이상)
|
|
2) 모델 하락확률 < 0.30
|
|
3) 포트폴리오 현금 비중 >= 50%
|
|
|
|
갭 리스크 통제:
|
|
- 다음 개장 시 hard stop를 시가 기준으로 재산정
|
|
- 조건 위반 시 즉시 청산 우선
|
|
|
|
Kill Switch 연동:
|
|
- MDD/실패율 임계치 초과 시 "미체결 전량 취소 -> 신규 주문 차단 -> 리스크 축소" 순서 강제
|
|
|
|
==================================================
|
|
7) 데이터 저장/용량 정책
|
|
==================================================
|
|
핵심 테이블(계획):
|
|
- feature_snapshots
|
|
- position_states
|
|
- model_predictions
|
|
|
|
저장 규칙:
|
|
- feature_hash 기반 중복 제거
|
|
- 가격 변화가 작아도 session_id 변경 시 강제 스냅샷
|
|
- 월 단위 DB 로테이션 권장 (예: trading_YYYY_MM.db)
|
|
|
|
==================================================
|
|
8) 환율/정산 리스크 정책 (US 필수)
|
|
==================================================
|
|
원칙:
|
|
- USD 노출은 전략 손익과 별도로 환율 손익을 분리 추적
|
|
- 원화 주문 서비스 사용 시 가환율 체결/익일 정산 리스크를 예수금 규칙에 반영
|
|
|
|
운영 규칙:
|
|
- 환전 시점 정책(사전 환전/수시 환전)을 고정하고 로그에 기록
|
|
- 최소 USD 버퍼와 KRW 버퍼를 각각 설정해 주문 가능금 부족 리스크 완화
|
|
- 환율 급변 구간에는 포지션 한도 축소 또는 신규 진입 제한
|
|
|
|
==================================================
|
|
9) v3 실험 매트릭스 (우선 3선)
|
|
==================================================
|
|
EXP-KR-01:
|
|
- 시장: KR
|
|
- 포커스: NXT 야간 특화
|
|
- 제안: time barrier 확장(예: 48 bars 상당), p_thresh 상향(0.65)
|
|
|
|
EXP-US-01:
|
|
- 시장: US
|
|
- 포커스: 21h 준연속 운용
|
|
- 제안: time barrier 확장(예: 80 bars 상당), atr_k 상향(2.5)
|
|
|
|
EXP-HYB-01:
|
|
- 시장: Global
|
|
- 포커스: KR 낮 + US 밤 연계
|
|
- 제안: 레짐 기반 자산배분 자동조절
|
|
|
|
==================================================
|
|
10) 코드 착수 전 최종 확정 체크
|
|
==================================================
|
|
1) 세션별 공식 캘린더 소스/우선순위
|
|
2) 세션별 슬리피지/비용 테이블 수치
|
|
3) 시장별 max_holding_minutes
|
|
4) 마감 강제청산 예외 조건 임계값
|
|
5) 블랙아웃(점검/장애) 시간대와 주문 큐 처리 규칙
|
|
6) 세션별 허용 주문 유형(시장가 허용 범위 포함)
|
|
7) 환전/정산 정책 및 통화 버퍼 임계값
|
|
|
|
모든 항목 확정 후 Step 1 구현(코드)로 이동.
|
|
|
|
끝.
|