Files
The-Ouroboros/docs/live-trading-checklist.md
agentson f7d33e69d1
Some checks failed
CI / test (pull_request) Has been cancelled
docs: 실전 전환 체크리스트 작성 (issue #218)
docs/live-trading-checklist.md 신규 작성:
- 사전 조건: KIS 실전 계좌/OpenAPI 신청, 리스크 파라미터 검토
- 환경 설정: .env 수정 가이드, TR_ID 분기표 (모의/실전)
- 최종 확인: DB 백업, 실행 명령, 시작 직후 점검
- 비상 정지: Ctrl+C / /stop 명령 / CB 발동
- 롤백 절차: MODE=paper 복원

CLAUDE.md: 문서 목록에 체크리스트 링크 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-23 12:55:37 +09:00

3.9 KiB

실전 전환 체크리스트

모의 거래(paper)에서 실전(live)으로 전환하기 전에 아래 항목을 순서대로 모두 확인하세요.


1. 사전 조건

1-1. KIS OpenAPI 실전 계좌 준비

  • 한국투자증권 계좌 개설 완료 (일반 위탁 계좌)
  • OpenAPI 실전 사용 신청 (KIS 홈페이지 → Open API → 서비스 신청)
  • 실전용 APP_KEY / APP_SECRET 발급 완료
  • KIS_ACCOUNT_NO 형식 확인: XXXXXXXX-XX (8자리-2자리)

1-2. 리스크 파라미터 검토

  • CIRCUIT_BREAKER_PCT 확인: 기본값 -3.0% (더 엄격하게 조정 권장)
  • FAT_FINGER_PCT 확인: 기본값 30.0% (1회 주문 최대 잔고 대비 %)
  • CONFIDENCE_THRESHOLD 확인: BEARISH ≥ 90, NEUTRAL ≥ 80, BULLISH ≥ 75
  • 초기 투자금 결정 및 해외 주식 운용 한도 설정

1-3. 시스템 요건

  • 커버리지 80% 이상 유지 확인: pytest --cov=src
  • 타입 체크 통과: mypy src/ --strict
  • Lint 통과: ruff check src/ tests/

2. 환경 설정

2-1. .env 파일 수정

# 1. KIS 실전 URL로 변경 (모의: openapivts 포트 29443)
KIS_BASE_URL=https://openapi.koreainvestment.com:9443

# 2. 실전 APP_KEY / APP_SECRET으로 교체
KIS_APP_KEY=<실전_APP_KEY>
KIS_APP_SECRET=<실전_APP_SECRET>
KIS_ACCOUNT_NO=<실전_계좌번호>

# 3. 모드를 live로 변경
MODE=live

# 4. PAPER_OVERSEAS_CASH 비활성화 (live 모드에선 무시되지만 명시적으로 0 설정)
PAPER_OVERSEAS_CASH=0

⚠️ KIS_BASE_URL 포트 주의:

  • 모의(VTS): https://openapivts.koreainvestment.com:29443
  • 실전: https://openapi.koreainvestment.com:9443

2-2. TR_ID 자동 분기 확인

아래 TR_ID는 MODE 값에 따라 코드에서 자동으로 선택됩니다. 별도 설정 불필요하나, 문제 발생 시 아래 표를 참조하세요.

구분 모의 TR_ID 실전 TR_ID
국내 잔고 조회 VTTC8434R TTTC8434R
국내 현금 매수 VTTC0012U TTTC0012U
국내 현금 매도 VTTC0011U TTTC0011U
해외 잔고 조회 VTTS3012R TTTS3012R
해외 매수 VTTT1002U TTTT1002U
해외 매도 VTTT1001U TTTT1006U

출처: docs/한국투자증권_오픈API_전체문서_20260221_030000.xlsx (공식 문서 기준)


3. 최종 확인

3-1. 실전 시작 전 점검

  • DB 백업 완료: data/trade_logs.dbdata/backups/
  • Telegram 알림 설정 확인 (실전에서는 알림이 더욱 중요)
  • 소액으로 첫 거래 진행 후 TR_ID/계좌 정상 동작 확인

3-2. 실행 명령

# 실전 모드로 실행
python -m src.main --mode=live

# 대시보드 함께 실행 (별도 터미널에서 모니터링)
python -m src.main --mode=live --dashboard

3-3. 실전 시작 직후 확인 사항

  • 로그에 MODE=live 출력 확인
  • 첫 잔고 조회 성공 (ConnectionError 없음)
  • Telegram 알림 수신 확인 ("System started")
  • 첫 주문 후 KIS 앱에서 체결 내역 확인

4. 비상 정지 방법

즉각 정지

# 터미널에서 Ctrl+C (정상 종료 트리거)
# 또는 Telegram 봇 명령:
/stop

Circuit Breaker 발동 시

  • CB가 발동되면 자동으로 거래 중단 및 Telegram 알림 전송
  • CB 임계값: CIRCUIT_BREAKER_PCT (기본 -3.0%)
  • 임계값은 엄격하게만 조정 가능 (더 낮은 음수 값으로만 변경)

5. 롤백 절차

실전 전환 후 문제 발생 시:

# 1. 즉시 .env에서 MODE=paper로 복원
# 2. 재시작
python -m src.main --mode=paper

# 3. DB에서 최근 거래 확인
sqlite3 data/trade_logs.db "SELECT * FROM trades ORDER BY id DESC LIMIT 20;"

관련 문서