05/06 시작 전 ops_sync로 지연 간격만 증분 보완하고, Phase B-1 live env·ncue 실행 래퍼를 반영한다. Co-authored-by: Cursor <cursoragent@cursor.com>
275 lines
8.5 KiB
Markdown
275 lines
8.5 KiB
Markdown
# DeepCoin 배포 체크리스트 (C → B)
|
|
|
|
- **목표:** 초기 ₩400,000 (`GT_INITIAL_CASH_KRW`) → **+1,000% 이상** (인과적 hybrid primary 경로)
|
|
- **일정:** **금요일까지 Phase C** (알림·dry-run 사전 테스트) → **토요일부터 Phase B-1** (소액 실거래)
|
|
- **기준일:** 2026-06-01 (월) 작성 · C 종료 2026-06-05 (금) · B-1 시작 2026-06-06 (토)
|
|
|
|
---
|
|
|
|
## 1. 현재 설계 (한 장 요약)
|
|
|
|
```text
|
|
[Ground Truth] 사후 ZigZag 타점 → +4,291% (벤치마크·미래 허용)
|
|
↓
|
|
[Monitor 규칙] buy_compound_tight + sell_mtf_cross_all_tf (과거 지표만)
|
|
↓
|
|
[배분 hybrid] DD tier + past-leg tier (enhanced=False) → sim +1,121%
|
|
↓
|
|
[06 live_trader] LIVE_TRADING_ENABLED=1 일 때만 빗썸 주문
|
|
```
|
|
|
|
| 리포트 경로 | PnL | 배포 |
|
|
|-------------|-----|------|
|
|
| GT oracle | +4,291% | 아님 (상한) |
|
|
| **sim_primary (hybrid)** | **+1,121%** | **예** |
|
|
| sim_sized | +75% | 아님 |
|
|
| sim_causal_gt | +15% | 아님 |
|
|
| sim_tier_enhanced (conviction) | -51% | **금지** |
|
|
| sim_fixed_order | -94% | 비교용 |
|
|
|
|
---
|
|
|
|
## 2. 요청 항목 대비 달성 현황
|
|
|
|
### A. Ground Truth · 매수 배분
|
|
|
|
| # | 요청 | 상태 |
|
|
|---|------|------|
|
|
| A1 | GT 재생성 | 완료 |
|
|
| A2 | 1회 10만 캡 제거 | 완료 |
|
|
| A3 | 총자산×배분, 한도=보유 현금 | 완료 |
|
|
| A4 | GT HTML | 완료 |
|
|
|
|
### B. 시뮬 개선
|
|
|
|
| # | 요청 | 상태 |
|
|
|---|------|------|
|
|
| B1 | GT 일반화 | 부분 (monitor 규칙이 primary) |
|
|
| B2 | sim 매수 상한 제거 | 완료 (hybrid) |
|
|
| B3 | 전기간 복리 carry | 완료 |
|
|
| B4 | GT 배분 분석·DD 캘리브 | 완료 (large 5%, medium 2%) |
|
|
| B5 | sim 상한 제거 | hybrid 완료 |
|
|
| B6 | LIVE_DAILY_KRW_MAX sim 제거 | sim hybrid 완료 / **live는 Phase B에서 조정** |
|
|
| B7 | GT식 large leg | 완료 |
|
|
| B8 | 복리 구조 | hybrid 완료 / conviction 실패 |
|
|
|
|
### C. 인과성
|
|
|
|
| # | 요청 | 상태 |
|
|
|---|------|------|
|
|
| C1 | GT=미래 OK, sim=과거만 | 완료 |
|
|
| C2 | 인과 sim 재실행 | 완료 |
|
|
| C3 | 복리 총자산 배분 | 완료 |
|
|
| C4 | HTML 비교 | 완료 |
|
|
|
|
### D. +1,000% 목표
|
|
|
|
| # | 요청 | 상태 |
|
|
|---|------|------|
|
|
| D1 | 1000% 설계 | 완료 |
|
|
| D2 | Option C 300% | 완료 (+1,121%) |
|
|
| D3 | Phase2 +1000% Go | **시뮬 Go** |
|
|
| D4 | holdout/fee/WF | 완료 |
|
|
| D5 | 슬리피지 | Go이나 +28%로 급감 (주의) |
|
|
| D6 | 실현=sim | **미달** (mark·슬리피지·live 한도) |
|
|
|
|
### E. 배포·운영
|
|
|
|
| # | 요청 | 상태 |
|
|
|---|------|------|
|
|
| E1 | live_trader hybrid 정합 | 완료 |
|
|
| E2 | conviction 배포 | 금지 |
|
|
| E3 | git push | 완료 |
|
|
| E4 | Phase A dry-run | 완료 |
|
|
| E5 | Phase C (알림) | **진행 중** |
|
|
| E6 | Phase B (live) | 토요일 예정 |
|
|
|
|
---
|
|
|
|
## 3. Phase 로드맵 (C → B-1 → B-2)
|
|
|
|
```text
|
|
Phase C (월~금) 알림만 · 주문 없음 · 신호·슬리피지 관찰
|
|
↓ 금요일 Go 판정
|
|
Phase B-1 (토~ ) LIVE ON · 소~중간 한도 · hybrid tier 부분 체결
|
|
↓ 2~4주 검증
|
|
Phase B-2 (검증 후) sim에 근접한 한도 · +1000% 경로 추격 (리스크↑)
|
|
```
|
|
|
|
| Phase | 기간 | 스크립트 | LIVE_TRADING | 목적 |
|
|
|-------|------|----------|--------------|------|
|
|
| **C** | ~금 6/5 | `05_run_monitor.py` | **0** | 신호 품질·빈도·텔레그램 |
|
|
| **B-1** | 토 6/6~ | `06_execute_live.py` | **1** | 소액 실체결·tier·로그 검증 |
|
|
| **B-2** | B-1 Go 후 | `06_execute_live.py` | **1** | sim hybrid에 근접한 배분 |
|
|
|
|
---
|
|
|
|
## 4. Phase C — 금요일까지 사전 테스트
|
|
|
|
### 4.1 `.env` (Phase C)
|
|
|
|
`.env`에 아래를 적용하세요. 전체 예시는 `docs/05_ops/env.recommended.md` 참고.
|
|
|
|
```env
|
|
# === Phase C: dry-run (금~금, 시뮬 정합) ===
|
|
LIVE_TRADING_ENABLED=0
|
|
GT_SIGNAL_CAUSAL=1
|
|
SIM_PRIMARY_SIZING=auto
|
|
MONITOR_ALERT_COOLDOWN_MIN=3
|
|
MONITOR_LOOP_SLEEP_SEC=180
|
|
LIVE_DAILY_KRW_MAX=4000000
|
|
LIVE_MAX_TRADES_PER_DAY=999
|
|
LIVE_COOLDOWN_MIN=3
|
|
```
|
|
|
|
### 4.2 매일 실행
|
|
|
|
```bash
|
|
# 프로젝트 루트, conda activate ncue (또는 scripts/run.ps1)
|
|
# 05/06 시작 시 OPS_SYNC_ON_START=1 이면 누락 봉 자동 증분 (00_sync_ops와 동일)
|
|
python scripts/01_download.py # 1일 1회 전체 점검 (선택)
|
|
python scripts/06_verify_live_dryrun.py # tier·설정 점검 (1일 1회)
|
|
python scripts/05_run_monitor.py # 상시 알림 (또는 --once 수동)
|
|
python scripts/06_execute_live.py --once # dry-run (주문 없음, 선택)
|
|
```
|
|
|
|
### 4.3 Phase C 일별 기록 (금요일까지)
|
|
|
|
| 날짜 | download | verify | monitor | 발화 buy | 발화 sell | 메모 |
|
|
|------|----------|--------|---------|----------|-----------|------|
|
|
| 6/1 (월) | | PASS | | | | Phase A 완료 |
|
|
| 6/2 (화) | | | | | | |
|
|
| 6/3 (수) | | | | | | |
|
|
| 6/4 (목) | | | | | | |
|
|
| 6/5 (금) | | | | | | **C Go/No-Go** |
|
|
|
|
기록 파일: `docs/05_ops/live_verification_20260601.md` (매일 갱신)
|
|
|
|
### 4.4 Phase C 금요일 Go/No-Go 기준
|
|
|
|
**GO (토요일 B-1 진행)** — 아래 **전부** 충족:
|
|
|
|
- [ ] 5일간 `05` 크래시·API 오류 없음
|
|
- [ ] monitor 규칙 2개만 발화 (`buy_compound_tight`, `sell_mtf_cross_all_tf`)
|
|
- [ ] `06_verify_live_dryrun.py` PASS
|
|
- [ ] 텔레그램 알림 수신 정상
|
|
- [ ] 발화 빈도가 비정상적으로 과다/과소 아님 (참고: sim 전기간 buy ~1,608 / 365일)
|
|
- [ ] 빗썸 API 키·잔고 조회 정상
|
|
|
|
**NO-GO** — 하나라도 해당 시 토요일 live 연기:
|
|
|
|
- API/DB 장애 지속
|
|
- 규칙 외 신호
|
|
- verify FAIL
|
|
|
|
---
|
|
|
|
## 5. Phase B-1 — 토요일부터 소액 실거래
|
|
|
|
### 5.1 `.env` (Phase B-1)
|
|
|
|
```env
|
|
# === Phase B-1: 소액 live (토~) ===
|
|
LIVE_TRADING_ENABLED=1
|
|
GT_SIGNAL_CAUSAL=1
|
|
SIM_PRIMARY_SIZING=auto
|
|
|
|
# hybrid tier: large 구간 일부 체결 가능, sim보다 보수적
|
|
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
|
|
```
|
|
|
|
| 변수 | B-1 값 | 의미 |
|
|
|------|--------|------|
|
|
| `LIVE_DAILY_KRW_MAX` | **400,000** | 일 40만 (초기 1배, sim full tier보다 낮음) |
|
|
| `LIVE_DAILY_LOSS_LIMIT_KRW` | **100,000** | 일 -10만 시 당일 중단 |
|
|
| `LIVE_MAX_TRADES_PER_DAY` | 15 | sim 거래 빈도 대비 여유 |
|
|
|
|
### 5.2 토요일 오픈 당일
|
|
|
|
```bash
|
|
python scripts/06_verify_live_dryrun.py
|
|
python scripts/06_execute_live.py --once # 1회 수동 확인
|
|
python scripts/06_execute_live.py # 상시 (systemd/cron)
|
|
```
|
|
|
|
- [ ] `data/ops/live_trades.jsonl` 체결·dry_run 기록
|
|
- [ ] `data/ops/live_sizing_state.json` leg 상태 갱신
|
|
- [ ] Kill switch: `LIVE_TRADING_ENABLED=0` + 프로세스 중지
|
|
|
|
### 5.3 Phase B-1 Go/No-Go (2~4주 후)
|
|
|
|
**B-2 승격 후보:**
|
|
|
|
- [ ] 일 손실 한도 위반 없음
|
|
- [ ] hybrid planned vs 실체결 금액 오차 허용 범위
|
|
- [ ] 슬리피지·스킵 사유 기록
|
|
- [ ] 실계좌 PnL이 sim 대비 **완전히 다르더라도** tier 동작이 의도대로
|
|
|
|
---
|
|
|
|
## 6. Phase B-2 — sim hybrid 근접 (검증 후)
|
|
|
|
> +1,000% 경로 추격. **본인 리스크 허용 범위에서만** 적용.
|
|
|
|
```env
|
|
# === Phase B-2: sim 정합 (B-1 Go 후) ===
|
|
LIVE_TRADING_ENABLED=1
|
|
LIVE_DAILY_KRW_MAX=5000000
|
|
LIVE_MAX_TRADES_PER_DAY=30
|
|
LIVE_DAILY_LOSS_LIMIT_KRW=300000
|
|
LIVE_COOLDOWN_MIN=120
|
|
```
|
|
|
|
- large tier 1회 ~총자산 100% 매수 가능 → **MDD sim 19%·슬리피지 +28% 스트레스 참고**
|
|
- conviction tier(`enhanced=True`) **절대 사용 금지**
|
|
|
|
---
|
|
|
|
## 7. Kill switch
|
|
|
|
| 방법 | 동작 |
|
|
|------|------|
|
|
| `.env` | `LIVE_TRADING_ENABLED=0` 후 프로세스 재시작 |
|
|
| 프로세스 | `06_execute_live.py` 중지 |
|
|
| 빗썸 | 앱/웹 수동 청산 |
|
|
|
|
---
|
|
|
|
## 8. +1,000% 목표 현실 점검
|
|
|
|
| 항목 | sim | live (B-1) | live (B-2) |
|
|
|------|-----|------------|------------|
|
|
| hybrid large tier | 대부분 체결 | **일한도로 일부 스킵** | sim에 근접 |
|
|
| 복리 | 전기간 | 동일 로직 | 동일 |
|
|
| 슬리피지 | 5% 스트레스 +28% | **실측 필요** | 실측 필요 |
|
|
| 미청산 mark | +1,121%에 포함 | **실현 PnL 별도** | 동일 |
|
|
|
|
**+1,000%는 B-2까지 올라가도 보장되지 않습니다.** B-1에서 tier·슬리피지·PnL을 먼저 검증하세요.
|
|
|
|
---
|
|
|
|
## 9. 관련 문서·스크립트
|
|
|
|
| 경로 | 용도 |
|
|
|------|------|
|
|
| `docs/05_ops/env.recommended.md` | Phase별 `.env` 전체 예시 |
|
|
| `docs/05_ops/live_verification_*.md` | 일별 검증 기록 |
|
|
| `docs/reference/LIVE_TRADING.md` | 06 실거래 가이드 |
|
|
| `docs/reference/RISK.md` | 리스크·한도 |
|
|
| `scripts/06_verify_live_dryrun.py` | Phase A/C 점검 |
|
|
| `scripts/05_run_monitor.py` | Phase C 알림 |
|
|
| `scripts/06_execute_live.py` | Phase B 주문 |
|
|
|
|
---
|
|
|
|
## 10. 변경 이력
|
|
|
|
| 날짜 | 내용 |
|
|
|------|------|
|
|
| 2026-06-01 | C→B-1→B-2 로드맵·체크리스트 최초 작성 |
|