본문으로 건너뛰기

절대 룰 (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/statusis_ready=true인 자산군만 request_confirm 호출 가능.

readiness 룰은 자산군별로 별도 카운트되며, BTC 50거래로 us_equity 라이브를 활성화할 수 없습니다.

5. 라이브 일일 거래 한도

환경변수기본값
LIVE_DAILY_TRADE_LIMIT10

자산군별로 별도 카운트되며, 도달 시 다음 주문은 429 RATE_LIMIT_LIVE_DAILY 거부. UTC 자정에 카운터 리셋.

6. 시크릿 로테이션 영향

시크릿영향
AUTH_SECRET_KEY 변경모든 JWT 무효화 → 사용자 재로그인 필요
ENCRYPTION_SALT 변경거래소 API 키 복호화 불가 → 사용자가 키 재등록 필요

자세한 내용은 운영: 시크릿 로테이션 참조.

7. 환경변수 단축 매트릭스

변수기본강제
RISK_MAX_PER_TRADE_PCT0.0150.02
RISK_DAILY_LOSS_LIMIT_PCT0.05(사용자 변경 불가)
RISK_MAX_LEVERAGE1.03.0
LIVE_READINESS_DAYS90(사용자 변경 불가)
LIVE_READINESS_TRADES50(사용자 변경 불가)
LIVE_DAILY_TRADE_LIMIT10운영자 조정 가능

8. 절대로 하면 안 되는 것

  • [절대] RiskManager 우회 코드 작성
  • [절대] 출금 권한이 있는 거래소 키 등록
  • [절대] 페이퍼 검증 없이 라이브 진입
  • [절대] 본인 외 user의 데이터 접근 시도 (모두 404 응답)
  • [절대] .env 파일 커밋

위반 감지 시 대응

  1. 즉시 emergency-stop 발동
  2. audit log (broker_order_events) 검사
  3. RiskManager 검증 코드 재확인 (변조 여부)
  4. 필요 시 사용자 계정 비활성화

변경 이력

룰 변경은 PR + 책임자 승인 필요. 변경 시 changelog에 기록.