Files
Bithumb/docs/05_ops/env.recommended.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

182 lines
5.2 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.
# Phase별 `.env` 권장값
프로젝트 루트 `.env`**해당 Phase 블록만** 반영하세요. API 키·토큰은 기존 값 유지.
**일정:** Phase C ~2026-06-05 (금) → Phase B-1 ~2026-06-06 (토)부터
---
## 공통 (C·B 모두 동일)
```env
SYMBOL=WLD
CHART_LOOKBACK_DAYS=365
# 인과 sim · hybrid live sizing (필수)
GT_SIGNAL_CAUSAL=1
SIM_CAUSAL_TIER=1
SIM_PRIMARY_SIZING=auto
# hybrid DD (캘리브 결과 — 변경 시 04_hybrid_dd_calibrate 재실행)
# docs/04_matching/hybrid_dd_calibration.json 과 동기
CAUSAL_GT_DD_LARGE_PCT=5.0
CAUSAL_GT_DD_MEDIUM_PCT=2.0
# GT tier (sim·live hybrid)
GT_BUY_PCT_LARGE_LEG=1.0
GT_BUY_PCT_SMALL_LEG=0.05
GT_BUY_PCT_MEDIUM_LEG=0.25
GT_LARGE_LEG_TOP_PCT=0.2
GT_MIN_ORDER_KRW=5000
# 시뮬·GT·paper·live hybrid 배분 공통 초기 자금
GT_INITIAL_CASH_KRW=400000
# 원화 한도 비율 (초기 40만 기준, 100만 시대 대비 ×0.4)
# | 변수 | 비율 | 값 |
# | MONITOR_ALERT_KRW_AMOUNT, LIVE_ORDER_KRW | ×10% | 40,000 |
# | LIVE_DAILY_LOSS_LIMIT_KRW (Phase C) | ×5% | 20,000 |
# | LIVE_DAILY_KRW_MAX (Phase C) | ×10 | 4,000,000 |
# | LIVE_DAILY_KRW_MAX (B-1) | ×1 | 400,000 |
# monitor 규칙 (04 matched_rules — 코드에서 로드, env 변경 불필요)
MATCH_MONITOR_MAX_PER_SIDE=1
# conviction tier — 코드 기본 enhanced=False 유지, env로 켜지 않음
SIM_TIER_CONVICTION_DD_PCT=10.0
```
---
## Phase C — 알림만 (월~금, 주문 없음)
**적용 기간:** ~2026-06-05
**실행:** `python scripts/05_run_monitor.py`
```env
# === Phase C ===
LIVE_TRADING_ENABLED=0
# 05 알림 · 06 루프 — 3분봉 1주기(180초)
MONITOR_ALERT_COOLDOWN_MIN=3
MONITOR_ALERT_KRW_AMOUNT=40000
MONITOR_LOOP_SLEEP_SEC=180
# 06 dry-run (시뮬 정합: 일한도·거래횟수 무제한, 쿨다운=봉간격 3분)
# LIVE=0 + paper 모드 시 06은 _can_trade에서 LIVE 한도 검사 생략.
LIVE_ORDER_KRW=40000
LIVE_DAILY_KRW_MAX=4000000
LIVE_COOLDOWN_MIN=3
LIVE_MAX_TRADES_PER_DAY=999
LIVE_DAILY_LOSS_LIMIT_KRW=20000
LIVE_SLIPPAGE_PCT=0.05
LIVE_BUY_PCT_LARGE=1.0
LIVE_BUY_PCT_SMALL=0.05
```
| 항목 | Phase C 값 | 설명 |
|------|------------|------|
| `GT_INITIAL_CASH_KRW` | **400,000** | 시뮬·GT·paper·06 배분 시작 자금 |
| `MONITOR_ALERT_KRW_AMOUNT` | **40,000** | 초기 자금의 10% (알림 참고) |
| `LIVE_ORDER_KRW` | **40,000** | fallback·참고 (실매수는 hybrid 산출) |
| `LIVE_DAILY_KRW_MAX` | **4,000,000** | 초기×10 — Phase C hybrid 전액 매수 여유 |
| `LIVE_DAILY_LOSS_LIMIT_KRW` | **20,000** | 초기×5% — 일 손실 중단 |
| `LIVE_MAX_TRADES_PER_DAY` | 999 | 분할 매수·매도 횟수 제한 없음 |
| `LIVE_COOLDOWN_MIN` | **3** | 규칙별 최소 1봉(3분) — 시뮬 발화 간격과 동일 |
| `MONITOR_ALERT_COOLDOWN_MIN` | **3** | 동일 규칙 텔레그램도 1봉당 1회 수준 |
| `MONITOR_LOOP_SLEEP_SEC` | **180** | 06/05 루프 주기 = 3분 |
| `MATCH_LIVE_CACHE_SEC` | **180** | `live_eval` 캐시 ≤ 루프 주기 (06은 `force_refresh` 사용) |
### Phase C 확인 명령
```bash
python scripts/06_verify_live_dryrun.py
python scripts/05_run_monitor.py --once
python scripts/06_execute_live.py --once
```
---
## Phase B-1 — 소액 실거래 (토요일~)
**적용 시점:** 2026-06-06 (토) 00:00 이후 (금요일 C Go 후)
**실행:** `python scripts/06_execute_live.py`
```env
# === Phase B-1 ===
LIVE_TRADING_ENABLED=1
LIVE_ORDER_KRW=40000
LIVE_DAILY_KRW_MAX=400000
LIVE_MAX_TRADES_PER_DAY=15
LIVE_COOLDOWN_MIN=3
LIVE_DAILY_LOSS_LIMIT_KRW=40000
LIVE_SLIPPAGE_PCT=0.05
LIVE_BUY_PCT_LARGE=1.0
LIVE_BUY_PCT_SMALL=0.05
MONITOR_ALERT_COOLDOWN_MIN=3
MONITOR_LOOP_SLEEP_SEC=180
```
| 항목 | 값 | 설명 |
|------|-----|------|
| 초기 자금 | ₩400,000 | 빗썸 가용 KRW (`GT_INITIAL_CASH_KRW`) |
| 일 매수 한도 | ₩400,000 | 초기 1배 — large tier 1회분 |
| 일 손실 중단 | ₩40,000 | 초기 10% |
| 1회 참고 | ₩40,000 | 알림·fallback; **매수는 hybrid tier** |
### B-1 오픈 당일
```bash
python scripts/06_verify_live_dryrun.py
python scripts/06_execute_live.py --once
python scripts/06_execute_live.py
```
---
## Phase B-2 — sim hybrid 근접 (B-1 Go 후, 2~4주)
> +1,000% 경로. **리스크·MDD·슬리피지 감수 가능할 때만.**
```env
# === Phase B-2 ===
LIVE_TRADING_ENABLED=1
LIVE_ORDER_KRW=40000
LIVE_DAILY_KRW_MAX=2000000
LIVE_MAX_TRADES_PER_DAY=30
LIVE_COOLDOWN_MIN=3
LIVE_DAILY_LOSS_LIMIT_KRW=120000
LIVE_SLIPPAGE_PCT=0.05
LIVE_BUY_PCT_LARGE=1.0
LIVE_BUY_PCT_SMALL=0.05
```
| sim 대비 | B-1 | B-2 |
|----------|-----|-----|
| 일한도 | 40만 | 200만 |
| large tier 1회 ~100% | 종종 스킵 | 대부분 가능 |
| +1000% 가능성 | 낮음 | sim에 근접 (보장 없음) |
---
## 절대 변경하지 말 것
```env
# conviction tier 배포 금지 — live_trader는 enhanced=False 고정
# GT_SIGNAL_CAUSAL=0 ← hybrid sizing 꺼짐, sim과 불일치
# SIM_PRIMARY_SIZING=causal_tier ← 구 +75% 경로
```
---
## Phase 전환 체크
| 전환 | 조건 | `.env` 변경 |
|------|------|-------------|
| C → B-1 | 금요일 C Go | `LIVE_TRADING_ENABLED=1`, B-1 한도 |
| B-1 → B-2 | 2~4주 검증 Go | `LIVE_DAILY_KRW_MAX` 등 B-2 값 |
상세: [DEPLOYMENT_CHECKLIST.md](./DEPLOYMENT_CHECKLIST.md)