0~3단계 산출물을 docs/0_ground_truth~3_causal로 정리하고, sim 초기 40만원·총평가 구간별 매수 상한을 적용한다. MTF 상관 분석, composite+MTF, 워크포워드 인과 sim과 2·3단계 리포트를 추가·재생성한다. Co-authored-by: Cursor <cursoragent@cursor.com>
179 lines
7.4 KiB
Markdown
179 lines
7.4 KiB
Markdown
# DeepCoin
|
||
|
||
빗썸 KRW 마켓 암호화폐 캔들 데이터 수집 및 선물 매매 전략 파이프라인.
|
||
|
||
## 주요 기능
|
||
|
||
- 빗썸 Public API(v1) 기반 분·일·주·월봉 캔들 수집
|
||
- SQLite(`coins.db`) 저장 — 테이블명 `{SYMBOL}_{인터벌코드}` (예: `BTC_60`, `BTC_10080`)
|
||
- 2017-01-01~ 역방향 페이지네이션 수집 (기본 3447일)
|
||
- Ground Truth 기반 선물 롱·숏 벤치마크 및 인과 전략 시뮬레이션
|
||
|
||
## 요구사항
|
||
|
||
- Python 3.10+
|
||
- Conda 환경 `ncue` 또는 `xavis`
|
||
|
||
## 설치
|
||
|
||
```bash
|
||
cd DeepCoin
|
||
conda activate ncue
|
||
pip install -r requirements.txt
|
||
cp .env.example .env # API 키 등 입력
|
||
```
|
||
|
||
## 환경 변수
|
||
|
||
| 변수 | 설명 | 기본값 |
|
||
|------|------|--------|
|
||
| `SYMBOL` | 코인 심볼 | `BTC` |
|
||
| `COIN_NAME` | 코인 이름 | `비트코인` |
|
||
| `DB_PATH` | SQLite 경로 | `coins.db` |
|
||
| `DOWNLOAD_DAYS` | 수집·차트 일수 (2017~) | `3447` |
|
||
| `DOWNLOAD_INTERVALS` | 인터벌 코드 목록 | `3,5,10,15,30,60,240,1440,10080,43200` |
|
||
| `BITHUMB_API_CANDLE_COUNT` | 요청당 캔들 수 (최대 200) | `200` |
|
||
| `API_REQUEST_SLEEP_SEC` | API 호출 간격(초) | `0.35` |
|
||
|
||
인터벌 코드: 분봉은 분 단위 숫자, 일봉=`1440`, 주봉=`10080`, 월봉=`43200`
|
||
|
||
캔들 조회는 Public API이므로 API 키 없이도 동작합니다.
|
||
|
||
---
|
||
|
||
## 파이프라인 (0~4단계)
|
||
|
||
| 단계 | 목적 | 산출물 (v3 기준) | 스크립트 |
|
||
|------|------|------------------|----------|
|
||
| **사전** | 캔들 데이터 수집 | `coins.db` | `01_download.py` |
|
||
| **0단계** | GT 매수/매도 **기본 데이터**(타점) 생성 | `docs/0_ground_truth/{spot,futures}/` | `02_ground_truth.py`, `02_ground_truth_futures.py` |
|
||
| **1단계** | 0단계 데이터로 **최근 3년 sim** | `docs/1_simulation/{spot,futures}/` | `02_ground_truth_sim.py`, `02_ground_truth_futures_sim.py` |
|
||
| **2단계** | 인과 기법 **GT 정합·MTF 분석** | `docs/2_analysis/spot/` | `03_run_techniques.py`, `03_run_signal_type_align.py`, `03_run_mtf_analysis.py` |
|
||
| **3단계** | 인과 전략 sim → **1단계와 비교** | `docs/3_causal/futures/` | `04_run_causal_futures.py` |
|
||
| **4단계** | 시뮬 코드 기반 **실거래** | (예정) | (예정) |
|
||
|
||
### 실행 순서
|
||
|
||
0단계(GT 타점)를 먼저 만든 뒤, 1단계 sim을 돌립니다.
|
||
|
||
```bash
|
||
# 사전: 데이터 수집
|
||
python scripts/01_download.py
|
||
|
||
# 0단계: Ground Truth 타점 생성 (v1/v2/v3)
|
||
python scripts/02_ground_truth.py
|
||
|
||
# 0단계: 선물 GT 타점 차트 (롱·숏 4색, 타점만)
|
||
python scripts/02_ground_truth_futures.py
|
||
|
||
# 1단계: GT 기반 sim (최근 3년 · 40만원)
|
||
python scripts/02_ground_truth_sim.py --tier all
|
||
python scripts/02_ground_truth_futures_sim.py --tier v3
|
||
|
||
# 2단계: 인과 기법 GT 정합 비교
|
||
python scripts/03_run_techniques.py
|
||
|
||
# 2단계: v3 신호 유형별 정합 (B/B*/B^/Bd/S/Sd)
|
||
python scripts/03_run_signal_type_align.py
|
||
|
||
# 2단계: GT v3 · 멀티 TF 피처 상관 분석
|
||
python scripts/03_run_mtf_analysis.py
|
||
|
||
# 3단계: 인과 전략 sim + 1단계 sim 비교
|
||
python scripts/04_run_causal_futures.py
|
||
python scripts/04_run_causal_futures.py --mtf
|
||
python scripts/04_run_causal_futures.py --walkforward
|
||
```
|
||
|
||
### 0단계 — GT 타점 (`docs/0_ground_truth/`)
|
||
|
||
- `spot/ground_truth_chart_v3.html` — 현물 GT 매수/매도 타점
|
||
- `futures/ground_truth_chart_v3.html` — 선물 L↑/L↓/S↓/S↑ 4색 마커
|
||
|
||
### 1단계 — GT sim (`docs/1_simulation/`)
|
||
|
||
`docs/1_simulation/futures/ground_truth_chart_sim_v3.html` (비교 기준)
|
||
|
||
- 0단계 GT 타점 그대로 최근 3년 선물/현물 sim
|
||
- sim 초기 자본 **40만 원**, 매수(L↑·S↓)는 총평가 구간별 현금 비율 상한: 1억↑ 10% · 10억↑ 5% · 100억↑ 1%
|
||
|
||
### 2단계 — 인과 기법 (`docs/2_analysis/spot/`)
|
||
|
||
- `comparison_report.html` — 기법별 GT 정합 recall·score
|
||
- `signal_type_report.html` — B/B*/B^/Bd/S/Sd 유형별 recall
|
||
- `mtf_correlation_report.html` — GT v3 × 10 TF 피처 (Cohen's d)
|
||
|
||
`src/deepcoin/techniques/` — 9종 인과 기법 (미래 데이터 미사용).
|
||
|
||
| ID | 기법 | 유형 | 설명 |
|
||
|----|------|------|------|
|
||
| `zigzag_causal` | 인과 ZigZag | swing | GT ZigZag 5%의 인과 버전 |
|
||
| `minor_swing` | 소형 스윙 하이브리드 | hybrid | ZigZag 2.5% + 국소 극값 |
|
||
| `local_extrema` | 국소 극값 | swing | 눌림목·반등 고점 |
|
||
| `bb_reversal` | 볼린저 역추세 | indicator | BB 하단 매수·상단 매도 |
|
||
| `ma_cross` | EMA 크로스 | indicator | EMA(20/60) 골든·데드 크로스 |
|
||
| `rsi_swing` | RSI 스윙 | indicator | RSI 과매도·과매수 복귀 |
|
||
| `macd_cross` | MACD 크로스 | indicator | MACD 시그널선 크로스 |
|
||
| `donchian` | 돈치안 채널 | swing | 채널 상·하단 돌파 |
|
||
| `composite_v3` | v3 통합 스코어링 | composite | 4종 신호 가중 투표 + EMA(60) 필터 |
|
||
|
||
### 3단계 — 인과 sim (`docs/3_causal/futures/`)
|
||
|
||
- `causal_chart_sim_v3.html` — composite_v3 인과 sim
|
||
- `causal_mtf_chart_sim_v3.html` — composite + MTF 필터
|
||
- `walkforward_mtf_chart_sim_v3.html` — bar-by-bar 워크포워드 MTF
|
||
- `causal_futures_report.html` — 1단계 sim 대비 composite_v3
|
||
- `causal_mtf_futures_report.html` — 1단계 sim 대비 composite+MTF
|
||
- `walkforward_mtf_report.html` — 1단계 sim 대비 워크포워드
|
||
|
||
---
|
||
|
||
## 디렉터리 구조
|
||
|
||
```text
|
||
DeepCoin/
|
||
├── src/deepcoin/
|
||
│ ├── data/ # 캔들 수집·로드
|
||
│ ├── ground_truth/ # 1단계 GT 생성·차트·선물 sim 엔진
|
||
│ ├── techniques/ # 1단계 기법 커먼
|
||
│ ├── evaluation/ # 2단계 GT 정합 평가
|
||
│ └── strategy/ # 3단계 인과 전략
|
||
├── scripts/
|
||
│ ├── 01_download.py # 사전
|
||
│ ├── 02_ground_truth.py # 0단계 GT
|
||
│ ├── 02_ground_truth_futures.py # 0단계 선물 GT 차트
|
||
│ ├── 02_ground_truth_sim.py # 1단계 현물 sim
|
||
│ ├── 02_ground_truth_futures_sim.py # 1단계 선물 sim
|
||
│ ├── 03_run_techniques.py # 2단계
|
||
│ ├── 03_run_signal_type_align.py # 2단계
|
||
│ └── 04_run_causal_futures.py # 3단계
|
||
├── data/
|
||
│ ├── ground_truth/spot/ # GT JSON v1~v3
|
||
│ ├── techniques/ # 2단계 기법 실행 결과
|
||
│ └── causal/ # 3단계 인과 신호 JSON
|
||
├── docs/
|
||
│ ├── 0_ground_truth/ # 0단계 GT 타점 차트
|
||
│ │ ├── spot/
|
||
│ │ └── futures/
|
||
│ ├── 1_simulation/ # 1단계 GT sim 차트
|
||
│ │ ├── spot/
|
||
│ │ └── futures/
|
||
│ ├── 2_analysis/ # 2단계 정합·MTF 리포트
|
||
│ │ ├── spot/
|
||
│ │ └── futures/
|
||
│ └── 3_causal/ # 3단계 인과 sim·리포트
|
||
│ ├── spot/
|
||
│ └── futures/
|
||
└── coins.db
|
||
```
|
||
|
||
## 변경 이력
|
||
|
||
- 2026-06-10: docs를 단계별 폴더(`0_ground_truth`~`3_causal`)로 재구성, 단계 정의 정렬 (0=GT 타점, 1=sim)
|
||
- 2026-06-09: 파이프라인 번호를 0~4단계 체계로 통일 (0=벤치마크, 1=GT+기법, 2=인과분석, 3=시뮬, 4=실거래)
|
||
- 2026-06-09: 3단계 인과 선물 전략 (composite_v3 + ATR) + 0단계 벤치마크 비교
|
||
- 2026-06-09: v3 신호 유형별 GT 정합 리포트 + composite_v3 통합 기법
|
||
- 2026-06-09: 선물 GT 차트 futures/gt/ 정리, 마커 UI 개선
|
||
- 2026-06-08: Ground Truth v1/v2/v3 + 매매 기법 8종
|
||
- 2026-06-07: 캔들 수집 모듈 초기 구현
|