You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.1 KiB
4.1 KiB
Risk Guard & Approval Workflow
1. 목적
이 문서는 Phase 6 실행 시스템에서 필수적인 리스크 가드, 운영 제약, approval workflow를 정의합니다. 전략 신호가 아무리 좋아도, 실행 시스템은 이 문서의 제약을 통과하지 못하면 주문을 제출하면 안 됩니다.
2. Risk Guard 계층
리스크 가드는 4개 계층으로 나눕니다.
2.1 계좌 레벨
- 계좌 총 자산
- buying power / cash / margin 상태
- 일중 실현/미실현 손익
- 일일 손실 한도 초과 여부
- 신규 주문 허용 상태
2.2 포트폴리오 레벨
- 동시 보유 종목 수
- 섹터 집중도
- 이벤트 유형 집중도
- 총 gross exposure
- 총 planned risk
2.3 종목 레벨
- 유동성 기준 유지 여부
- 최근 halt / LULD / 비정상 변동성
- 가격 제한(예: min price)
- 오늘 이미 포지션/주문이 있는 종목인지
2.4 운영 레벨
- broker health
- market data freshness
- parser snapshot freshness
- reconciliation lag
- alert backlog
- operator acknowledgement requirement
3. Pre-trade Checks
주문 제출 직전에는 최소 아래를 확인한다.
- candidate snapshot이 최신 세션 기준으로 확정되었는가
- market calendar가 현재 세션과 일치하는가
- broker health가 healthy인가
- market data freshness가 기준 이하인가
- 동일 candidate/order plan으로 이미 제출된 주문이 없는가
- buying power / cash가 충분한가
- 전략/리스크 정책상 신규 진입 허용 상태인가
- approval mode일 경우 승인 상태인가
모든 pre-trade check 결과는 로그가 아니라 구조화된 risk_decision record로 저장한다.
4. Risk Guard 결정 결과
결정 타입은 아래 셋 중 하나다.
allowdenydefer
defer가 필요한 예시
- broker websocket reconnect 중
- market data freshness 임계치 초과
- approval 응답 대기 중
- sector limit이 장중 청산 결과에 따라 해제될 수 있음
5. 일일 손실/중단 규칙
v1 기본 예시:
- 일일 순손실이 계좌의
X%초과 시 신규 진입 중단 - 연속
N회 실패 주문/체결 이상 시 신규 제출 중단 - reconciliation mismatch가
M건 이상이면 no-trade mode 전환 - 데이터 freshness가
T초 초과하면 신규 주문 중단
정확한 수치는 live_config에서 설정한다.
6. Approval Workflow
6.1 모드
approval_requiredapproval_optionalauto
6.2 Approval Ticket 필드
approval_ticket_idcandidate_idorder_plan_idsymbolsideqtyentry_windowplanned_stopplanned_time_exitscore_totalscore_summaryrisk_summarydecision_deadlinestatusoperator_comment
6.3 상태 전이
created
-> pending_review
-> approved
-> rejected
-> expired
-> superseded
6.4 운영 규칙
- 승인 만료 시점이 지나면 자동 제출하지 않는다.
- operator가 수량/가격을 수정할 수 있는 범위를 제한한다.
- 전략 의미를 바꾸는 수정은 허용하지 않는다.
- 승인/거절/수정 사유는 필수 기록이다.
7. Kill Switch
Kill switch는 최소 3종을 지원한다.
7.1 soft halt
- 신규 주문만 중단
- 기존 포지션 관리는 계속
7.2 hard halt
- 신규 주문 중단
- 기존 미체결 주문 취소
- 기존 포지션은 별도 exit policy 유지
7.3 flatten all
- 신규 주문 중단
- 미체결 주문 취소
- 가능한 한 빠르게 모든 포지션 청산
8. No-trade / Degraded Mode
no-trade mode
- signal 계산은 계속하지만 주문은 보내지 않는다.
- 이유 예: 브로커 장애, 구성 오류, 심각한 reconciliation mismatch.
degraded mode
- 신규 진입은 제한적으로 허용
- overlay 비활성화, auto mode 비활성화, replace 사용 금지 등 축소 운영
9. Post-trade Risk Checks
장 종료 후 최소 아래를 검증한다.
- 브로커 포지션과 내부 포지션 일치 여부
- 미체결 주문 잔존 여부
- 계획된 stop/target/time-exit 상태 누락 여부
- trade blotter와 fill ledger 정합성
- operator manual action 기록 반영 여부