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:
179
README.md
179
README.md
@@ -1,124 +1,101 @@
|
||||
# DeepCoin — WLD MTF 분석·정답·운영
|
||||
# DeepCoin — WLD MTF · Ground Truth · Simulation · Operations
|
||||
|
||||
빗썸 KRW-WLD. **3, 5, 10, 15, 30, 60, 240, 1440분** 봉을 적재하고 (1분봉은 다운로드 제외, 모니터는 API 최신 1봉만),
|
||||
Ground Truth·기술적 분석·규칙 매칭·알림·**실거래(선택)**까지 단계별로 관리합니다.
|
||||
빗썸 KRW-WLD. 프로젝트는 **세 축**으로만 설계됩니다.
|
||||
|
||||
## 남은 작업 순서
|
||||
| 축 | 역할 | 미래 데이터 |
|
||||
|----|------|-------------|
|
||||
| **Ground Truth** | 벤치마크 타점·leg·배분 | 허용 (사후 라벨) |
|
||||
| **Simulation** | 규칙·인과 백테스트·Go/No-Go | 금지 |
|
||||
| **Operations** | 시뮬과 동일 규칙·hybrid 배분 실주문 | 금지 |
|
||||
|
||||
| 순서 | 단계 | 상태 | 실행 |
|
||||
|------|------|------|------|
|
||||
| 1 | 시뮬레이션 | 완료 (GO) | `python scripts/04_simulation_report.py` |
|
||||
| 2 | 문서화 | 완료 | [docs/reference/SIMULATION.md](docs/reference/SIMULATION.md) 등 |
|
||||
| 3 | 오픈(실거래 B-1) | **기동** | `python scripts/06_execute_live.py` (`LIVE=1`) |
|
||||
| (C) | dry-run·알림 | 선택 병행 | `05_run_monitor.py` |
|
||||
| 4 | 1~2주 검증 | 대기 | `docs/05_ops/live_verification_*.md` |
|
||||
| 5 | 지속 거래 | 대기 | 06 상시 + 월간 재시뮬 |
|
||||
설계 상세: [docs/reference/ARCHITECTURE.md](docs/reference/ARCHITECTURE.md)
|
||||
|
||||
운영 배분: **hybrid primary** (= 시뮬 `sim_causal_hybrid`). [LIVE_TRADING.md](docs/reference/LIVE_TRADING.md)
|
||||
|
||||
## 파이프라인 CLI
|
||||
|
||||
| 단계 | 목적 | 실행 |
|
||||
|------|------|------|
|
||||
| 00 동기화 | 운영 전 누락 봉 보완 (05/06 자동 포함) | `python scripts/00_sync_ops.py` |
|
||||
| 01 데이터 | 1년치 봉 적재 | `python scripts/01_download.py` |
|
||||
| 02 Ground Truth | 매수·매도 정답 타점 | `python scripts/02_ground_truth.py` |
|
||||
| 03 분석 | 8TF 기술 지표 enrich | `python scripts/03_analyze_enrich.py` |
|
||||
| 03b 분석 | GT 타점 MTF 스냅샷 | `python scripts/03_analyze_trades.py` |
|
||||
| 04 매칭 | GT 프로필 + leg_gt EV | `python scripts/04_match_rules.py` |
|
||||
| 04 시뮬 | Go/No-Go 리포트 | `python scripts/04_simulation_report.py` |
|
||||
| 05 알림 | 텔레그램 (주문 없음) | `python scripts/05_run_monitor.py` |
|
||||
| 06 실거래 | 빗썸 주문 (`LIVE_TRADING_ENABLED=1`) | `python scripts/06_execute_live.py` |
|
||||
|
||||
상세: [docs/reference/ROADMAP.md](docs/reference/ROADMAP.md)
|
||||
|
||||
## 디렉터리 구조
|
||||
|
||||
```text
|
||||
DeepCoin/
|
||||
├── .env, config.py
|
||||
├── scripts/ # ★ 단계별 CLI (유일한 진입점)
|
||||
├── deepcoin/
|
||||
│ ├── api/bithumb.py # 빗썸 API
|
||||
│ ├── data/ # 01 다운로드
|
||||
│ ├── ground_truth/ # 02 정답 타점
|
||||
│ ├── analysis/ # 03·03b 지표·스냅샷
|
||||
│ ├── matching/ # 04·시뮬
|
||||
│ └── ops/ # 05 알림·06 실거래
|
||||
├── data/ # coins.db, ground_truth/, ops/
|
||||
└── docs/
|
||||
├── reference/ # 가이드·기법 명세 (Git)
|
||||
└── 02~05, charts/ # 단계별 HTML·CSV (재생성)
|
||||
```
|
||||
|
||||
상세: [docs/reference/STRUCTURE.md](docs/reference/STRUCTURE.md) · [docs/README.md](docs/README.md)
|
||||
|
||||
## 환경 변수
|
||||
|
||||
| 파일 | 용도 |
|
||||
|------|------|
|
||||
| `.env` | 전역 설정·API 키 (Git 제외, 프로젝트 루트에 필수) |
|
||||
|
||||
`config.py`와 `scripts/_bootstrap.py`가 프로젝트 루트 `.env`를 `python-dotenv`로 자동 로드합니다. 새 환경에서는 팀에서 `.env`를 전달받거나 기존 로컬 파일을 복사하세요.
|
||||
|
||||
### Python 환경 (conda `ncue`)
|
||||
## 파이프라인 (권장 순서)
|
||||
|
||||
```bash
|
||||
conda activate ncue
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
conda activate ncue # 또는 xavis
|
||||
|
||||
Windows에서 스크립트 일괄 실행:
|
||||
|
||||
```powershell
|
||||
.\scripts\run.ps1 01_download.py
|
||||
.\scripts\run.ps1 06_execute_live.py --once
|
||||
```
|
||||
|
||||
## 빠른 시작
|
||||
|
||||
```bash
|
||||
conda activate ncue
|
||||
# 데이터
|
||||
python scripts/01_download.py
|
||||
|
||||
# Ground Truth
|
||||
python scripts/02_ground_truth.py
|
||||
python scripts/03_analyze_enrich.py
|
||||
python scripts/03_analyze_trades.py
|
||||
python scripts/03_gt_mtf_profile.py # GT 타점 3분~일봉 프로필 (04 입력)
|
||||
python scripts/04_match_rules.py
|
||||
python scripts/03_gt_mtf_profile.py
|
||||
python scripts/05_chart_truth.py
|
||||
|
||||
# Simulation
|
||||
python scripts/04_match_rules.py
|
||||
python scripts/04_simulation_report.py
|
||||
|
||||
# Operations (LIVE_TRADING_ENABLED=1)
|
||||
python scripts/06_verify_live.py
|
||||
python scripts/check_balance.py
|
||||
python scripts/06_execute_live.py --once
|
||||
python scripts/06_execute_live.py
|
||||
```
|
||||
|
||||
## 주요 설정 (`config.py` / `.env`)
|
||||
선택: `05_run_monitor.py` (알림만), `00_sync_ops.py` (운영 전 봉 동기화)
|
||||
|
||||
| 항목 | 설명 |
|
||||
## 디렉터리
|
||||
|
||||
```text
|
||||
DeepCoin/
|
||||
├── scripts/ # CLI 진입점 (GT / Sim / Ops)
|
||||
├── deepcoin/
|
||||
│ ├── data/ # 01
|
||||
│ ├── ground_truth/ # GT
|
||||
│ ├── analysis/ # GT 입력 (03)
|
||||
│ ├── matching/ # Sim (04)
|
||||
│ └── ops/ # Ops (05·06)
|
||||
├── data/ # coins.db, ground_truth/, ops/
|
||||
└── docs/
|
||||
├── reference/ # ARCHITECTURE, SIMULATION, OPERATIONS …
|
||||
└── 02~05/ # 재생성 산출물
|
||||
```
|
||||
|
||||
## 환경
|
||||
|
||||
| 파일 | 용도 |
|
||||
|------|------|
|
||||
| `BITHUMB_ACCESS_KEY` | 빗썸 API (다운로드·시세) |
|
||||
| `DB_PATH` | `data/coins.db` (`.env`로 변경 가능) |
|
||||
| `GROUND_TRUTH_FILE` | `data/ground_truth/ground_truth_trades.json` |
|
||||
| `CHART_LOOKBACK_DAYS` | 기본 365일 |
|
||||
| `DOWNLOAD_MONTHS` | 3분 이상 봉 12개월 |
|
||||
| `MONITOR_LOOP_SLEEP_SEC` | 05 모니터 루프 주기(초) |
|
||||
| `MONITOR_ALERT_KRW_AMOUNT` | 규칙 알림 참고 금액(원, 매수·잔고 미조회 시) |
|
||||
| `MONITOR_ALERT_COOLDOWN_MIN` | 동일 규칙 텔레그램 재알림 최소 간격(분, 기본 180) |
|
||||
| `MATCH_HOLDOUT_RATIO` | 홀드아웃(최근) 구간 비율 (기본 0.15) |
|
||||
| `MATCH_MONITOR_MAX_PER_SIDE` | 05·06 감시 규칙 수 (매수·매도 각, 기본 1) |
|
||||
| `LIVE_TRADING_ENABLED` | 1일 때만 06 실주문 (기본 0) |
|
||||
| `LIVE_ORDER_KRW` / `LIVE_DAILY_KRW_MAX` | 1회·일 주문 한도 |
|
||||
| `.env` | API 키·전역 설정 (Git 제외) |
|
||||
| `config.py` | `.env` 로드 |
|
||||
|
||||
`scripts/_bootstrap.py`가 루트 `.env`를 자동 로드합니다.
|
||||
|
||||
### 주요 변수
|
||||
|
||||
| 변수 | 기본 | 축 |
|
||||
|------|------|-----|
|
||||
| `CHART_LOOKBACK_DAYS` | 365 | GT·Sim |
|
||||
| `GT_INITIAL_CASH_KRW` | 400000 | GT·Sim·Ops 배분 |
|
||||
| `GENERAL_ANALYSIS_INTERVALS` | 3m~일봉+주·월 | Sim 스캔 |
|
||||
| `GT_SIGNAL_CAUSAL` | 1 | Sim·Ops (인과) |
|
||||
| `LIVE_TRADING_ENABLED` | 1 | Ops (`0`이면 06 기동 불가) |
|
||||
|
||||
전체: `.env.example`, [docs/05_ops/env.recommended.md](docs/05_ops/env.recommended.md)
|
||||
|
||||
## 산출물
|
||||
|
||||
| 경로 | 내용 |
|
||||
| 경로 | 축 |
|
||||
|------|-----|
|
||||
| `data/ground_truth/ground_truth_trades.json` | GT |
|
||||
| `docs/02_ground_truth/wld_ground_truth_chart.html` | GT 차트 (`05_chart_truth.py` 재생성) |
|
||||
| `docs/04_matching/matched_rules.json` | Sim |
|
||||
| `docs/04_matching/simulation_report.html` | Sim |
|
||||
| `data/ops/live_trades.jsonl` | Ops |
|
||||
|
||||
## 문서
|
||||
|
||||
| 문서 | 내용 |
|
||||
|------|------|
|
||||
| `data/coins.db` | 전 간격 OHLCV |
|
||||
| `data/ground_truth/ground_truth_trades.json` | 정답 타점 |
|
||||
| `docs/charts/wld_bb_chart.html` | 3분 BB 차트 |
|
||||
| `docs/02_ground_truth/wld_ground_truth_chart.html` | 정답 차트 |
|
||||
| `docs/03_analysis/latest/*_latest.csv` | 간격별 최근 봉 전 기법 |
|
||||
| `docs/03_analysis/general_analysis_trades.csv` | GT 타점 MTF 스냅샷 |
|
||||
| `docs/04_matching/matched_rules.json` | EV·holdout 통과 규칙 |
|
||||
| `docs/04_matching/simulation_report.html` | 1단계 Go/No-Go |
|
||||
| `data/ops/live_trades.jsonl` | 06 실거래 로그 |
|
||||
| [ARCHITECTURE.md](docs/reference/ARCHITECTURE.md) | 3축 설계 (필독) |
|
||||
| [GROUND_TRUTH.md](docs/reference/GROUND_TRUTH.md) | GT 타점 |
|
||||
| [SIMULATION.md](docs/reference/SIMULATION.md) | 시뮬·Go/No-Go |
|
||||
| [OPERATIONS.md](docs/reference/OPERATIONS.md) | 운영 루틴 |
|
||||
| [LIVE_TRADING.md](docs/reference/LIVE_TRADING.md) | 06 실거래 |
|
||||
|
||||
## 면책
|
||||
|
||||
실거래 손익은 사용자 책임입니다. `LIVE_TRADING_ENABLED=0`이면 06은 주문하지 않습니다.
|
||||
실거래 손익은 사용자 책임입니다. 본 저장소는 투자 자문이 아닙니다.
|
||||
|
||||
Reference in New Issue
Block a user