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:
@@ -1,6 +1,6 @@
|
||||
# DeepCoin 배포 체크리스트 (C → B)
|
||||
|
||||
- **목표:** 초기 ₩1,000,000 → **+1,000% 이상** (인과적 hybrid primary 경로)
|
||||
- **목표:** 초기 ₩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 (토)
|
||||
|
||||
@@ -111,12 +111,15 @@ Phase B-2 (검증 후) sim에 근접한 한도 · +1000% 경로 추격 (리스
|
||||
`.env`에 아래를 적용하세요. 전체 예시는 `docs/05_ops/env.recommended.md` 참고.
|
||||
|
||||
```env
|
||||
# === Phase C: 알림만 (금~금) ===
|
||||
# === Phase C: dry-run (금~금, 시뮬 정합) ===
|
||||
LIVE_TRADING_ENABLED=0
|
||||
GT_SIGNAL_CAUSAL=1
|
||||
SIM_PRIMARY_SIZING=auto
|
||||
MONITOR_ALERT_COOLDOWN_MIN=180
|
||||
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 매일 실행
|
||||
@@ -171,17 +174,17 @@ GT_SIGNAL_CAUSAL=1
|
||||
SIM_PRIMARY_SIZING=auto
|
||||
|
||||
# hybrid tier: large 구간 일부 체결 가능, sim보다 보수적
|
||||
LIVE_ORDER_KRW=100000
|
||||
LIVE_DAILY_KRW_MAX=1000000
|
||||
LIVE_ORDER_KRW=40000
|
||||
LIVE_DAILY_KRW_MAX=400000
|
||||
LIVE_MAX_TRADES_PER_DAY=15
|
||||
LIVE_COOLDOWN_MIN=180
|
||||
LIVE_DAILY_LOSS_LIMIT_KRW=100000
|
||||
LIVE_COOLDOWN_MIN=3
|
||||
LIVE_DAILY_LOSS_LIMIT_KRW=40000
|
||||
LIVE_SLIPPAGE_PCT=0.05
|
||||
```
|
||||
|
||||
| 변수 | B-1 값 | 의미 |
|
||||
|------|--------|------|
|
||||
| `LIVE_DAILY_KRW_MAX` | **1,000,000** | 일 100만 (sim full tier보다 낮음) |
|
||||
| `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 거래 빈도 대비 여유 |
|
||||
|
||||
|
||||
@@ -28,6 +28,15 @@ 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
|
||||
@@ -47,22 +56,36 @@ SIM_TIER_CONVICTION_DD_PCT=10.0
|
||||
# === Phase C ===
|
||||
LIVE_TRADING_ENABLED=0
|
||||
|
||||
# 05 알림
|
||||
MONITOR_ALERT_COOLDOWN_MIN=180
|
||||
MONITOR_ALERT_KRW_AMOUNT=100000
|
||||
# 05 알림 · 06 루프 — 3분봉 1주기(180초)
|
||||
MONITOR_ALERT_COOLDOWN_MIN=3
|
||||
MONITOR_ALERT_KRW_AMOUNT=40000
|
||||
MONITOR_LOOP_SLEEP_SEC=180
|
||||
|
||||
# 06 dry-run용 (C에서도 06 --once 가능, 주문 없음)
|
||||
LIVE_ORDER_KRW=100000
|
||||
LIVE_DAILY_KRW_MAX=300000
|
||||
LIVE_COOLDOWN_MIN=180
|
||||
LIVE_MAX_TRADES_PER_DAY=10
|
||||
LIVE_DAILY_LOSS_LIMIT_KRW=50000
|
||||
# 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
|
||||
@@ -82,25 +105,25 @@ python scripts/06_execute_live.py --once
|
||||
# === Phase B-1 ===
|
||||
LIVE_TRADING_ENABLED=1
|
||||
|
||||
LIVE_ORDER_KRW=100000
|
||||
LIVE_DAILY_KRW_MAX=1000000
|
||||
LIVE_ORDER_KRW=40000
|
||||
LIVE_DAILY_KRW_MAX=400000
|
||||
LIVE_MAX_TRADES_PER_DAY=15
|
||||
LIVE_COOLDOWN_MIN=180
|
||||
LIVE_DAILY_LOSS_LIMIT_KRW=100000
|
||||
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=180
|
||||
MONITOR_ALERT_COOLDOWN_MIN=3
|
||||
MONITOR_LOOP_SLEEP_SEC=180
|
||||
```
|
||||
|
||||
| 항목 | 값 | 설명 |
|
||||
|------|-----|------|
|
||||
| 초기 자금 | ₩1,000,000 | 빗썸 가용 KRW |
|
||||
| 일 매수 한도 | ₩1,000,000 | large tier 일부 가능, sim(무한)보다 보수 |
|
||||
| 일 손실 중단 | ₩100,000 | -10% 일손실 시 당일 추가 주문 중단 |
|
||||
| 1회 참고 | ₩100,000 | 매도 시 참고; **매수는 hybrid tier가 산출** |
|
||||
| 초기 자금 | ₩400,000 | 빗썸 가용 KRW (`GT_INITIAL_CASH_KRW`) |
|
||||
| 일 매수 한도 | ₩400,000 | 초기 1배 — large tier 1회분 |
|
||||
| 일 손실 중단 | ₩40,000 | 초기 10% |
|
||||
| 1회 참고 | ₩40,000 | 알림·fallback; **매수는 hybrid tier** |
|
||||
|
||||
### B-1 오픈 당일
|
||||
|
||||
@@ -120,11 +143,11 @@ python scripts/06_execute_live.py
|
||||
# === Phase B-2 ===
|
||||
LIVE_TRADING_ENABLED=1
|
||||
|
||||
LIVE_ORDER_KRW=100000
|
||||
LIVE_DAILY_KRW_MAX=5000000
|
||||
LIVE_ORDER_KRW=40000
|
||||
LIVE_DAILY_KRW_MAX=2000000
|
||||
LIVE_MAX_TRADES_PER_DAY=30
|
||||
LIVE_COOLDOWN_MIN=120
|
||||
LIVE_DAILY_LOSS_LIMIT_KRW=300000
|
||||
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
|
||||
@@ -132,7 +155,7 @@ LIVE_BUY_PCT_SMALL=0.05
|
||||
|
||||
| sim 대비 | B-1 | B-2 |
|
||||
|----------|-----|-----|
|
||||
| 일한도 | 100만 | 500만 |
|
||||
| 일한도 | 40만 | 200만 |
|
||||
| large tier 1회 ~100% | 종종 스킵 | 대부분 가능 |
|
||||
| +1000% 가능성 | 낮음 | sim에 근접 (보장 없음) |
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Live Phase A — dry-run 검증
|
||||
|
||||
- 일시: 2026-06-01 23:17:30
|
||||
- 일시: 2026-06-01 23:36:56
|
||||
- 결과: **PASS**
|
||||
|
||||
## Plan (목적)
|
||||
@@ -25,53 +25,10 @@ python scripts/06_execute_live.py --once
|
||||
|
||||
## Act (다음 단계)
|
||||
|
||||
1. ~~`LIVE_TRADING_ENABLED=1`~~ **적용 완료 (Phase B-1, 2026-06-01)**
|
||||
2. `06_execute_live.py` 상시 루프 기동 (180초 주기)
|
||||
1. `05_run_monitor.py` 1~2일 병행 (알림만)
|
||||
2. `.env` 파일럿 한도 확정 후 `LIVE_TRADING_ENABLED=1`
|
||||
3. 1~2주 실계좌 PnL·슬리피지 기록 (본 문서 갱신)
|
||||
|
||||
## Phase C dry-run (지금 ~ 금요일 저녁)
|
||||
|
||||
| 항목 | 값 |
|
||||
|------|-----|
|
||||
| `LIVE_TRADING_ENABLED` | **0** (실주문 없음) |
|
||||
| 실행 | `python scripts/06_execute_live.py` (180초 주기) |
|
||||
| 발화 로그 | `data/ops/paper_fires.jsonl` |
|
||||
| 금요일 집계 | `python scripts/07_phase_c_paper_report.py` |
|
||||
|
||||
### 수익률 확인 (중요)
|
||||
|
||||
| 종류 | 가능? |
|
||||
|------|-------|
|
||||
| **실계좌 수익률** | **불가** (주문 없음) |
|
||||
| **모의 forward %** | **가능** (07 스크립트, 발화 후 N봉 가격 기준 **참고용**) |
|
||||
| **시뮬 hybrid +1,147%** | 과거 1년 백테스트, 이번 주 결과와 **별개** |
|
||||
|
||||
금요일 C Go 후 토요일~ **B-1**: `.env`에서 `LIVE_TRADING_ENABLED=1`, `LIVE_DAILY_KRW_MAX=1000000`
|
||||
|
||||
### 일별 기록
|
||||
|
||||
| 날짜 | download | verify | 06 dry | buy 발화 | sell 발화 | 메모 |
|
||||
|------|----------|--------|--------|----------|-----------|------|
|
||||
| 6/1 | | PASS | | | | |
|
||||
| 6/2 | | | | | | |
|
||||
| 6/3 | | | | | | |
|
||||
| 6/4 | | | | | | |
|
||||
| 6/5 | | | | | | **C Go → B-1** |
|
||||
|
||||
---
|
||||
|
||||
## Phase B-1 (금요일 이후 예정)
|
||||
|
||||
| 항목 | 값 |
|
||||
|------|-----|
|
||||
| `LIVE_TRADING_ENABLED` | 1 |
|
||||
| `LIVE_DAILY_KRW_MAX` | 1,000,000 |
|
||||
| `LIVE_DAILY_LOSS_LIMIT_KRW` | 100,000 |
|
||||
| `06 --once` | live=ON, 발화 없음 |
|
||||
| 배분 | hybrid primary (`enhanced=False`) |
|
||||
|
||||
**선행 조치:** `coin` 환경에 `pip install python-dotenv` (`.env` 미적용 방지). `scripts/_bootstrap.py`·`config.py`는 `load_project_env(override=True)`.
|
||||
|
||||
## Kill switch
|
||||
|
||||
- `LIVE_TRADING_ENABLED=0` + 06 프로세스 중지
|
||||
|
||||
35
docs/05_ops/live_verification_20260602.md
Normal file
35
docs/05_ops/live_verification_20260602.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Live Phase A — dry-run 검증
|
||||
|
||||
- 일시: 2026-06-02 22:17:49
|
||||
- 결과: **PASS**
|
||||
|
||||
## Plan (목적)
|
||||
|
||||
- hybrid primary(`enhanced=False`) live_trader 경로가 시뮬과 정합인지 확인
|
||||
- conviction tier(`enhanced=True`) 미사용 확인
|
||||
- 실거래 한도가 hybrid tier와 어떻게 상호작용하는지 기록
|
||||
|
||||
## Do (실행)
|
||||
|
||||
```bash
|
||||
python scripts/06_verify_live_dryrun.py
|
||||
python scripts/06_execute_live.py --once
|
||||
```
|
||||
|
||||
## Check (점검 결과)
|
||||
|
||||
- GT_SIGNAL_CAUSAL=True
|
||||
- LIVE_TRADING_ENABLED=False
|
||||
- monitor_rules: buy_compound_tight, sell_mtf_cross_all_tf
|
||||
- hybrid DD: {'dd_large_pct': 5.0, 'dd_medium_pct': 2.0}
|
||||
|
||||
## Act (다음 단계)
|
||||
|
||||
1. `05_run_monitor.py` 1~2일 병행 (알림만)
|
||||
2. `.env` 파일럿 한도 확정 후 `LIVE_TRADING_ENABLED=1`
|
||||
3. 1~2주 실계좌 PnL·슬리피지 기록 (본 문서 갱신)
|
||||
|
||||
## Kill switch
|
||||
|
||||
- `LIVE_TRADING_ENABLED=0` + 06 프로세스 중지
|
||||
- 빗썸 앱 수동 청산
|
||||
39
docs/05_ops/live_verification_20260603.md
Normal file
39
docs/05_ops/live_verification_20260603.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Live Phase A — dry-run 검증
|
||||
|
||||
- 일시: 2026-06-03 08:50:59
|
||||
- 결과: **WARN**
|
||||
|
||||
## Plan (목적)
|
||||
|
||||
- 06 dry-run/live 체결이 `hybrid_sim_execution`(sim_causal_hybrid)과 정합인지 확인
|
||||
- conviction tier(`enhanced=True`) 미사용 확인
|
||||
- 실거래 한도가 hybrid tier와 어떻게 상호작용하는지 기록
|
||||
|
||||
## Do (실행)
|
||||
|
||||
```bash
|
||||
python scripts/06_verify_live_dryrun.py
|
||||
python scripts/06_execute_live.py --once
|
||||
```
|
||||
|
||||
## Check (점검 결과)
|
||||
|
||||
- GT_SIGNAL_CAUSAL=True
|
||||
- LIVE_TRADING_ENABLED=False
|
||||
- monitor_rules: buy_compound_tight, sell_mtf_cross_all_tf
|
||||
- hybrid DD: {'dd_large_pct': 5.0, 'dd_medium_pct': 2.0}
|
||||
|
||||
### 이슈
|
||||
|
||||
- paper_portfolio.json 과 sim replay 불일치 — signal_history 갱신 후 06 --once 1회 권장
|
||||
|
||||
## Act (다음 단계)
|
||||
|
||||
1. `05_run_monitor.py` 1~2일 병행 (알림만)
|
||||
2. `.env` 파일럿 한도 확정 후 `LIVE_TRADING_ENABLED=1`
|
||||
3. 1~2주 실계좌 PnL·슬리피지 기록 (본 문서 갱신)
|
||||
|
||||
## Kill switch
|
||||
|
||||
- `LIVE_TRADING_ENABLED=0` + 06 프로세스 중지
|
||||
- 빗썸 앱 수동 청산
|
||||
Reference in New Issue
Block a user