Files
Bithumb/docs/reference/LIVE_TRADING.md
dsyoon c6888c9228 40만 원 기준 시뮬·dry-run 정합 및 hybrid 체결 엔진 통합.
초기 자금 GT_INITIAL_CASH_KRW=400000과 원화 한도 비율(알림·LIVE_ORDER·일한도·손실한도)을 맞추고, dry-run/live 체결을 sim_causal_hybrid(replay)와 동일 경로로 통합한다. 시뮬 리포트 갱신, Phase C 슈퍼바이저·매수매도 리허설 스크립트를 추가한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 11:31:24 +09:00

108 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2~3단계 — dry-run·실거래 (hybrid primary)
## 운영 모델 (시뮬과 동일)
dry-run(Phase C)과 실거래(Phase B) 모두 **시뮬 `sim_primary` = `sim_causal_hybrid`** 와 같은 경로이다.
| 구분 | 내용 |
|------|------|
| 신호 | `matched_rules.json``monitor_rules` 2개 |
| 매수 규칙 | `buy_compound_tight` |
| 매도 규칙 | `sell_mtf_cross_all_tf` |
| 배분 | hybrid DD tier + past-leg, **`enhanced=False`** |
| 금지 | `sim_tier_enhanced` (conviction), GT oracle 타점 |
코드: `deepcoin/ops/hybrid_sim_execution.py` (`build_monitor_hybrid_sized_trades`, `enhanced=False`) → `live_trader.py`
## Phase C — dry-run (주문 없음, 3단계 전)
**정의:** 빗썸 **시장가 주문 없음**. 신호·tier·알림·로그만 검증.
| 항목 | 설정 |
|------|------|
| `LIVE_TRADING_ENABLED` | **0** |
| 스크립트 | `05_run_monitor.py`, `06_verify_live_dryrun.py`, `06_execute_live.py --once` |
| 기간 | 배포 체크리스트 기준 ~Phase C 종료(금요일 Go/No-Go) |
```bash
# .env: LIVE_TRADING_ENABLED=0, GT_SIGNAL_CAUSAL=1, SIM_PRIMARY_SIZING=auto
python scripts/01_download.py # 1일 1회
python scripts/06_verify_live_dryrun.py # 설정·tier·규칙 점검
python scripts/05_run_monitor.py # 텔레그램 알림 (상시)
python scripts/06_execute_live.py --once # dry_run 로그만 (선택)
```
- 06은 발화 시 **모의 계좌**(`paper_portfolio.json`)만 갱신, **빗썸 API 주문 없음**
- 체결 배분은 시뮬과 동일하게 `signal_history` 전체를 `replay_paper_portfolio`로 재생
- 구버전 paper는 `paper_fires.jsonl``would_trade=true`로 이력 복원 가능
상세: [DEPLOYMENT_CHECKLIST.md](../05_ops/DEPLOYMENT_CHECKLIST.md) §4 · [env.recommended.md](../05_ops/env.recommended.md) Phase C
## Phase B — 실거래 (3단계 오픈)
**정의:** 실제 KRW가 빗썸 주문으로 나간다. 05 알림만으로는 3단계가 아니다.
### 선행 조건
1. [SIMULATION.md](SIMULATION.md) — 시뮬 **GO** (완료)
2. Phase C **GO** (5일 모니터·verify·알림 안정)
3. [env.recommended.md](../05_ops/env.recommended.md) Phase B-1 `.env`
4. [RISK.md](RISK.md), [OPERATIONS.md](OPERATIONS.md) 숙지
### 실행
```bash
python scripts/06_verify_live_dryrun.py # B-1 당일 재확인
# LIVE_TRADING_ENABLED=1 확인 후
python scripts/06_execute_live.py --once
python scripts/06_execute_live.py # 상시
```
## 환경 변수
| 변수 | Phase C | Phase B-1 (예) | 설명 |
|------|---------|----------------|------|
| `LIVE_TRADING_ENABLED` | 0 | 1 | 1일 때만 실주문 |
| `GT_SIGNAL_CAUSAL` | 1 | 1 | hybrid sizing |
| `SIM_PRIMARY_SIZING` | auto | auto | primary=hybrid |
| `GT_INITIAL_CASH_KRW` | **400000** | **400000** | 시뮬·paper·hybrid 배분 시작 자금 |
| `LIVE_ORDER_KRW` | **40000** | **40000** | 초기×10% · fallback 참고 |
| `MONITOR_ALERT_KRW_AMOUNT` | **40000** | **40000** | 알림 참고(초기×10%) |
| `LIVE_DAILY_KRW_MAX` | **4000000** (초기×10) | **400000** | C: hybrid 여유 · B-1: 1일 1배 |
| `LIVE_DAILY_LOSS_LIMIT_KRW` | **20000** | **40000** | C: 초기×5% · B-1: ×10% |
| `LIVE_COOLDOWN_MIN` | **3** (1봉) | **3** | `MATCH_PRIMARY_INTERVAL`과 동일 |
| `LIVE_MAX_TRADES_PER_DAY` | **999** (시뮬 정합) | 15 | C: 횟수 제한 없음 |
| `MONITOR_LOOP_SLEEP_SEC` | 180 | 180 | 루프 3분 = 3분봉 주기 |
| `MATCH_LIVE_CACHE_SEC` | **180** | **180** | live_eval 캐시 ≤ 루프 주기 |
| `MONITOR_ALERT_COOLDOWN_MIN` | **3** (1봉) | **3** | 규칙당 알림 최소 간격 |
Phase별 전체 블록: [env.recommended.md](../05_ops/env.recommended.md)
## 주문·배분 동작
- **공통:** 발화 이력 → `size_monitor_signals` / `replay_paper_portfolio` (시뮬 `sim_causal_hybrid`와 동일)
- **매수:** EV/WF 통과 규칙만 → `_can_trade` (live: 일한도·3분 쿨다운 / dry-run: 쿨다운만) → planned `amount_krw` 시장가 매수
- **매도:** 시뮬 분할 `sell_qty` (leg 마지막 매도는 잔량 전량) → 시장가 매도
- **스킵:** 시뮬 배분 0, 보유 없음, 일한도, 미승인 규칙, 규칙 쿨다운(3분)
## 로그
| 경로 | 내용 |
|------|------|
| `data/ops/live_trades.jsonl` | 06 실주문 (JSONL) |
| `data/ops/paper_fires.jsonl` | Phase C 모의 체결 시도 |
| `data/ops/paper_portfolio.json` | dry-run 모의 잔고·`signal_history` |
| `data/ops/live_signal_history.json` | live 발화 이력 (시뮬 배분용) |
| `docs/05_ops/live_verification_*.md` | Phase C/B 일별 기록 |
## 4단계 연결
오픈 후 **1~2주** 실계좌 PnL·슬리피지·장애를 verification 문서에 기록 → B-2 한도 검토.
## 관련 문서
- [SIMULATION.md](SIMULATION.md) — Go/No-Go·`sim_primary`
- [OPERATIONS.md](OPERATIONS.md) — 일상 루틴·장애
- [RISK.md](RISK.md) — Kill switch·한도