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>
This commit is contained in:
@@ -12,7 +12,7 @@ dry-run(Phase C)과 실거래(Phase B) 모두 **시뮬 `sim_primary` = `sim_caus
|
||||
| 배분 | hybrid DD tier + past-leg, **`enhanced=False`** |
|
||||
| 금지 | `sim_tier_enhanced` (conviction), GT oracle 타점 |
|
||||
|
||||
코드: `deepcoin/ops/live_trader.py` (`GT_SIGNAL_CAUSAL=1` 시 `plan_buy_amount_krw(..., enhanced=False)`)
|
||||
코드: `deepcoin/ops/hybrid_sim_execution.py` (`build_monitor_hybrid_sized_trades`, `enhanced=False`) → `live_trader.py`
|
||||
|
||||
## Phase C — dry-run (주문 없음, 3단계 전)
|
||||
|
||||
@@ -32,8 +32,9 @@ python scripts/05_run_monitor.py # 텔레그램 알림 (상시)
|
||||
python scripts/06_execute_live.py --once # dry_run 로그만 (선택)
|
||||
```
|
||||
|
||||
- 06은 발화 시 `dry_run (LIVE_TRADING_ENABLED=0)` 만 기록, **API 매수·매도 호출 없음**
|
||||
- 잔고 조회는 알림·tier 계산용으로 API를 쓸 수 있음
|
||||
- 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
|
||||
|
||||
@@ -65,27 +66,34 @@ python scripts/06_execute_live.py # 상시
|
||||
| `LIVE_TRADING_ENABLED` | 0 | 1 | 1일 때만 실주문 |
|
||||
| `GT_SIGNAL_CAUSAL` | 1 | 1 | hybrid sizing |
|
||||
| `SIM_PRIMARY_SIZING` | auto | auto | primary=hybrid |
|
||||
| `LIVE_ORDER_KRW` | 100000 | 100000 | 매도·비-hybrid fallback 참고 |
|
||||
| `LIVE_DAILY_KRW_MAX` | 300000 | 1,000,000 | **sim 대비 체결 상한** |
|
||||
| `LIVE_COOLDOWN_MIN` | 180 | 180 | 규칙별 재주문 간격 |
|
||||
| `LIVE_MAX_TRADES_PER_DAY` | 10 | 10 | 일 최대 시도 |
|
||||
| `LIVE_DAILY_LOSS_LIMIT_KRW` | 50000 | 50000 | 일 손실 한도 |
|
||||
| `MONITOR_LOOP_SLEEP_SEC` | 180 | 180 | 05/06 루프 주기 |
|
||||
| `MONITOR_ALERT_COOLDOWN_MIN` | 180 | 180 | 텔레그램 중복 방지 |
|
||||
| `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)
|
||||
|
||||
## 주문·배분 동작
|
||||
|
||||
- **매수:** EV/WF 통과 규칙만 hybrid tier 원화 산출 → `_can_trade` (일한도·쿨다운) → 시장가 매수
|
||||
- **매도:** 보유 WLD 전량 기준 시장가 매도 (`LIVE_ORDER_KRW`는 매도 경로에서 수량 우선)
|
||||
- **스킵:** 현금 부족, 일한도, hybrid planned > `LIVE_DAILY_KRW_MAX`, 미승인 규칙
|
||||
- **공통:** 발화 이력 → `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 주문·dry-run 시도 (JSONL) |
|
||||
| `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단계 연결
|
||||
|
||||
Reference in New Issue
Block a user