절대 룰 (Risk Rules)
quant-ai에서 절대로 우회할 수 없는 리스크 규칙입니다. 모든 룰은 RiskManager v2가 시그널/주문 단계에서 강제 적용합니다.
단일 출처
이 페이지는 CLAUDE.md의 Risk Rules 섹션을 단일 출처로 합니다. 코드와 문서가 어긋나면 CLAUDE.md가 우선합니다.
1. 거래당 최대 리스크: 1–2%
| 항목 | 값 |
|---|---|
| 기본값 | 1.5% |
| 최댓값 | 2.0% |
| 적용 단위 | (entry - stop_loss) × qty / account_equity |
| 강제 시점 | RiskManager.validate_signal_v2() — 시그널 단계 |
| 위반 시 | 422 RISK_RULE_VIOLATION |
검증 로직
risk_pct = abs(entry - stop_loss) * qty / account_equity
if risk_pct > max_per_trade_pct: # 0.02
return RiskValidation(is_valid=False, code="RISK_RULE_VIOLATION", ...)
qty 산출 식
qty = (account_equity × max_per_trade_pct) / |entry - stop_loss|
2. 일일 최대 손실: 5%
| 항목 | 값 |
|---|---|
| 임계값 | -5.0% (자산군 합산, USD 환산) |
| 사전 경보 | -3.0% 도달 시 Telegram + Grafana |
| 동작 | 즉시 자동 거래 중단 (bot_status: halted) |
| 복구 | 다음 UTC 자정에 자동 재개 |
동결 동안
- 신규 주문 모두 422 거부
- 스탑로스 / 트레일링 청산은 정상 동작
- LLM 분석은 가능 (시그널은 거부)
- 백테스트는 무관
자세한 시나리오는 운영 인시던트 대응 참조.
3. 최대 레버리지: 3배
| 모드 | 권장 레버리지 |
|---|---|
| Paper (학습) | 1x |
| Live (검증된 사용자) | ≤ 3x |
CLAUDE.md 절대 룰은 3배까지만 허용. 그 이상의 레버리지는 RiskManager가 거부.
4. 페이퍼 트레이딩 검증: 90일 + 50거래
라이브 모드 활성화 readiness:
| 항목 | 임계값 |
|---|---|
| 페이퍼 운영 일수 | ≥ 90일 |
| 페이퍼 체결 건수 | ≥ 50건 |
| 자산군별 별도 적용 | crypto / us_equity / kr_equity 각각 |
/api/equity/live/status의 is_ready=true인 자산군만 request_confirm 호출 가능.
readiness 룰은 자산군별로 별도 카운트되며, BTC 50거래로 us_equity 라이브를 활성화할 수 없습니다.
5. 라이브 일일 거래 한도
| 환경변수 | 기본값 |
|---|---|
LIVE_DAILY_TRADE_LIMIT | 10 |
자산군별로 별도 카운트되며, 도달 시 다음 주문은 429 RATE_LIMIT_LIVE_DAILY 거부. UTC 자정에 카운터 리셋.
6. 시크릿 로테이션 영향
| 시크릿 | 영향 |
|---|---|
AUTH_SECRET_KEY 변경 | 모든 JWT 무효화 → 사용자 재로그인 필요 |
ENCRYPTION_SALT 변경 | 거래소 API 키 복호화 불가 → 사용자가 키 재등록 필요 |
자세한 내용은 운영: 시크릿 로테이션 참조.
7. 환경변수 단축 매트릭스
| 변수 | 기본 | 강제 |
|---|---|---|
RISK_MAX_PER_TRADE_PCT | 0.015 | ≤ 0.02 |
RISK_DAILY_LOSS_LIMIT_PCT | 0.05 | (사용자 변경 불가) |
RISK_MAX_LEVERAGE | 1.0 | ≤ 3.0 |
LIVE_READINESS_DAYS | 90 | (사용자 변경 불가) |
LIVE_READINESS_TRADES | 50 | (사용자 변경 불가) |
LIVE_DAILY_TRADE_LIMIT | 10 | 운영자 조정 가능 |
8. 절대로 하면 안 되는 것
- [절대] RiskManager 우회 코드 작성
- [절대] 출금 권한이 있는 거래소 키 등록
- [절대] 페이퍼 검증 없이 라이브 진입
- [절대] 본인 외 user의 데이터 접근 시도 (모두 404 응답)
- [절대]
.env파일 커밋
위반 감지 시 대응
- 즉시 emergency-stop 발동
- audit log (
broker_order_events) 검사 - RiskManager 검증 코드 재확인 (변조 여부)
- 필요 시 사용자 계정 비활성화
변경 이력
룰 변경은 PR + 책임자 승인 필요. 변경 시 changelog에 기록.