refactor: GT·시뮬·운영 3축 정리 및 hybrid 실거래 정합
Phase C/dry-run·미사용 모듈·재생성 HTML을 제거하고, 운영 체결을 sim_causal_hybrid와 동일한 hybrid 로직으로 통합한다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,274 +1,115 @@
|
||||
# DeepCoin 배포 체크리스트 (C → B)
|
||||
# DeepCoin 배포 체크리스트 (GT → Simulation → Operations)
|
||||
|
||||
- **목표:** 초기 ₩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 (토)
|
||||
- **설계:** [ARCHITECTURE.md](../reference/ARCHITECTURE.md)
|
||||
- **초기 자금:** ₩400,000 (`GT_INITIAL_CASH_KRW`)
|
||||
- **운영 배분:** `sim_causal_hybrid` (= `06_execute_live`)
|
||||
|
||||
---
|
||||
|
||||
## 1. 현재 설계 (한 장 요약)
|
||||
## 1. 한 장 요약
|
||||
|
||||
```text
|
||||
[Ground Truth] 사후 ZigZag 타점 → +4,291% (벤치마크·미래 허용)
|
||||
[Ground Truth] 사후 ZigZag · 미래 허용 → 벤치마크 PnL
|
||||
↓
|
||||
[Monitor 규칙] buy_compound_tight + sell_mtf_cross_all_tf (과거 지표만)
|
||||
[Simulation] monitor_rules · 인과 스캔 · 40만·현금/보유 제약
|
||||
↓
|
||||
[배분 hybrid] DD tier + past-leg tier (enhanced=False) → sim +1,121%
|
||||
↓
|
||||
[06 live_trader] LIVE_TRADING_ENABLED=1 일 때만 빗썸 주문
|
||||
[Operations] 동일 규칙·hybrid · LIVE=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% | 비교용 |
|
||||
| 경로 | 배포 |
|
||||
|------|------|
|
||||
| GT oracle | 아님 |
|
||||
| **sim_causal_hybrid** | **예** (시뮬·운영 공통) |
|
||||
| sim_tier_enhanced | **금지** |
|
||||
|
||||
---
|
||||
|
||||
## 2. 요청 항목 대비 달성 현황
|
||||
## 2. Ground Truth
|
||||
|
||||
### 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) | 토요일 예정 |
|
||||
- [ ] `01_download.py` 완료 (주봉·월봉 포함)
|
||||
- [ ] `02_ground_truth.py` — `CHART_LOOKBACK_DAYS` 의도 확인
|
||||
- [ ] `03_analyze_enrich.py` + `03_analyze_trades.py` + `03_gt_mtf_profile.py`
|
||||
- [ ] `05_chart_truth.py` — HTML·JSON 정합
|
||||
- [ ] `GENERAL_ANALYSIS_INTERVALS`에 `10080,43200` 포함
|
||||
|
||||
---
|
||||
|
||||
## 3. Phase 로드맵 (C → B-1 → B-2)
|
||||
## 3. Simulation
|
||||
|
||||
```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에 근접한 배분 |
|
||||
- [ ] `GT_SIGNAL_CAUSAL=1`
|
||||
- [ ] `04_match_rules.py` — `monitor_rules` 2개 (`buy_compound_tight`, `sell_mtf_cross_all_tf`)
|
||||
- [ ] `04_simulation_report.py` — `simulation_report.html` 확인
|
||||
- [ ] hybrid Go/No-Go·holdout·MDD 검토 ([SIMULATION.md](../reference/SIMULATION.md))
|
||||
- [ ] conviction tier 미배포 확인
|
||||
|
||||
---
|
||||
|
||||
## 4. Phase C — 금요일까지 사전 테스트
|
||||
## 4. Operations
|
||||
|
||||
### 4.1 `.env` (Phase C)
|
||||
|
||||
`.env`에 아래를 적용하세요. 전체 예시는 `docs/05_ops/env.recommended.md` 참고.
|
||||
### 4.1 `.env`
|
||||
|
||||
```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
|
||||
GT_INITIAL_CASH_KRW=400000
|
||||
LIVE_DAILY_KRW_MAX=400000
|
||||
LIVE_DAILY_LOSS_LIMIT_KRW=40000
|
||||
LIVE_MAX_TRADES_PER_DAY=15
|
||||
LIVE_COOLDOWN_MIN=3
|
||||
LIVE_DAILY_LOSS_LIMIT_KRW=40000
|
||||
LIVE_SLIPPAGE_PCT=0.05
|
||||
MONITOR_LOOP_SLEEP_SEC=180
|
||||
```
|
||||
|
||||
| 변수 | 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 거래 빈도 대비 여유 |
|
||||
전체: [env.recommended.md](env.recommended.md)
|
||||
|
||||
### 5.2 토요일 오픈 당일
|
||||
### 4.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)
|
||||
python scripts/00_sync_ops.py
|
||||
python scripts/06_verify_live.py
|
||||
python scripts/check_balance.py
|
||||
python scripts/06_execute_live.py --once
|
||||
python scripts/06_execute_live.py
|
||||
```
|
||||
|
||||
- [ ] `data/ops/live_trades.jsonl` 체결·dry_run 기록
|
||||
- [ ] `data/ops/live_sizing_state.json` leg 상태 갱신
|
||||
- [ ] Kill switch: `LIVE_TRADING_ENABLED=0` + 프로세스 중지
|
||||
### 4.3 Go/No-Go (운영)
|
||||
|
||||
### 5.3 Phase B-1 Go/No-Go (2~4주 후)
|
||||
**GO**
|
||||
|
||||
**B-2 승격 후보:**
|
||||
- [ ] `06_verify_live.py` PASS
|
||||
- [ ] 시뮬 hybrid 검토 완료
|
||||
- [ ] 빗썸 API·잔고 정상
|
||||
- [ ] `--once` 후 `data/ops/live_trades.jsonl` 확인
|
||||
|
||||
- [ ] 일 손실 한도 위반 없음
|
||||
- [ ] hybrid planned vs 실체결 금액 오차 허용 범위
|
||||
- [ ] 슬리피지·스킵 사유 기록
|
||||
- [ ] 실계좌 PnL이 sim 대비 **완전히 다르더라도** tier 동작이 의도대로
|
||||
**NO-GO**
|
||||
|
||||
- verify FAIL
|
||||
- monitor_rules ≠ 2개
|
||||
- `GT_SIGNAL_CAUSAL=0`
|
||||
|
||||
### 4.4 Kill switch
|
||||
|
||||
- `06` 프로세스 중지
|
||||
- 빗썸 수동 청산
|
||||
|
||||
---
|
||||
|
||||
## 6. Phase B-2 — sim hybrid 근접 (검증 후)
|
||||
## 5. 주기적 유지보수
|
||||
|
||||
> +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` 중지 |
|
||||
| 빗썸 | 앱/웹 수동 청산 |
|
||||
| 일 1회 | `01_download` (또는 06 자동 sync) |
|
||||
| 주 1회 | `06_verify_live` |
|
||||
| 월 1회 | `02`~`04` 재실행·시뮬 Go 재확인 |
|
||||
|
||||
---
|
||||
|
||||
## 8. +1,000% 목표 현실 점검
|
||||
## 6. 스크립트 인덱스
|
||||
|
||||
| 항목 | sim | live (B-1) | live (B-2) |
|
||||
|------|-----|------------|------------|
|
||||
| hybrid large tier | 대부분 체결 | **일한도로 일부 스킵** | sim에 근접 |
|
||||
| 복리 | 전기간 | 동일 로직 | 동일 |
|
||||
| 슬리피지 | 5% 스트레스 +28% | **실측 필요** | 실측 필요 |
|
||||
| 미청산 mark | +1,121%에 포함 | **실현 PnL 별도** | 동일 |
|
||||
| 축 | 스크립트 |
|
||||
|----|----------|
|
||||
| GT | `02`, `03_*`, `05_chart_truth` |
|
||||
| Sim | `04_match_rules`, `04_simulation_report` |
|
||||
| Ops | `06_verify_live`, `06_execute_live` |
|
||||
|
||||
**+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 로드맵·체크리스트 최초 작성 |
|
||||
스크립트 목록: `scripts/README.md`, `docs/reference/ARCHITECTURE.md`
|
||||
|
||||
Reference in New Issue
Block a user