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:
182
docs/reference/ARCHITECTURE.md
Normal file
182
docs/reference/ARCHITECTURE.md
Normal file
@@ -0,0 +1,182 @@
|
||||
# DeepCoin 아키텍처 — Ground Truth · Simulation · Operations
|
||||
|
||||
프로젝트는 **세 축만** 사용합니다. 예전 Phase A/B/C·dry-run·paper 모의 체결은 제거되었습니다.
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
subgraph data [공통 데이터]
|
||||
DL[01_download]
|
||||
DB[(coins.db)]
|
||||
DL --> DB
|
||||
end
|
||||
|
||||
subgraph gt [Ground Truth]
|
||||
GT02[02_ground_truth]
|
||||
GT03[03 분석·프로필]
|
||||
GT05[05_chart_truth]
|
||||
DB --> GT02
|
||||
GT02 --> GJSON[ground_truth_trades.json]
|
||||
GT03 --> GJSON
|
||||
GJSON --> GT05
|
||||
end
|
||||
|
||||
subgraph sim [Simulation]
|
||||
M04[04_match_rules]
|
||||
S04[04_simulation_report]
|
||||
GJSON --> M04
|
||||
DB --> M04
|
||||
M04 --> MR[matched_rules.json]
|
||||
MR --> S04
|
||||
S04 --> SR[simulation_report.*]
|
||||
end
|
||||
|
||||
subgraph ops [Operations]
|
||||
V06[06_verify_live]
|
||||
E06[06_execute_live]
|
||||
MR --> E06
|
||||
SR --> V06
|
||||
E06 --> BT[빗썸 API]
|
||||
end
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 1. Ground Truth (정답)
|
||||
|
||||
### Plan — 목적
|
||||
|
||||
- **벤치마크** 매수·매도 타점·leg·비중 (운영 목표 수익의 상한 참고).
|
||||
- **미래 데이터 허용**: ZigZag·피벗은 사후 라벨링 (`ground_truth.py`).
|
||||
- 시뮬·운영 규칙의 **교사 신호**가 아님 (oracle 직접 매매 금지).
|
||||
|
||||
### Do — 실행
|
||||
|
||||
| 순서 | 스크립트 | 산출 |
|
||||
|------|----------|------|
|
||||
| (선행) | `01_download.py` | `data/coins.db` (3m~일봉 + 주·월봉) |
|
||||
| 1 | `02_ground_truth.py` | `data/ground_truth/ground_truth_trades.json` |
|
||||
| 2 | `03_analyze_enrich.py` | `docs/03_analysis/latest/*` (10TF 지표) |
|
||||
| 3 | `03_analyze_trades.py` | `general_analysis_trades.csv` (GT 타점 스냅샷) |
|
||||
| 4 | `03_gt_mtf_profile.py` | `gt_mtf_profile.json` (규칙 후보 입력) |
|
||||
| 5 | `05_chart_truth.py` | `docs/02_ground_truth/wld_ground_truth_chart.html` |
|
||||
|
||||
패키지: `deepcoin/ground_truth/`, `deepcoin/analysis/`
|
||||
|
||||
### Check — 핵심 설정
|
||||
|
||||
| 변수 | 의미 |
|
||||
|------|------|
|
||||
| `CHART_LOOKBACK_DAYS` | GT·스캔 구간 (기본 365) |
|
||||
| `GT_INITIAL_CASH_KRW` | GT 포트폴리오 시뮬 초기 자금 (40만) |
|
||||
| `GT_*` | ZigZag·분할 매수·leg 티어 |
|
||||
|
||||
### Act — 갱신 시
|
||||
|
||||
GT 파라미터·구간 변경 후 **02 → 03* → 05** 순 재실행.
|
||||
|
||||
---
|
||||
|
||||
## 2. Simulation (시뮬레이션)
|
||||
|
||||
### Plan — 목적
|
||||
|
||||
- GT 프로필에서 **규칙 후보** 생성 → 전 구간 **발화 스캔** → EV·holdout 검증.
|
||||
- **과거 데이터만** 사용 (`GT_SIGNAL_CAUSAL=1`, `enrich_scan_frame_gt_signals(causal=True)`).
|
||||
- 초기 자금 **40만 원**, **현금 있을 때만 매수**, **보유 있을 때만 매도** (`gt_allocation` / `HybridSimPortfolio`).
|
||||
|
||||
### Do — 실행
|
||||
|
||||
| 순서 | 스크립트 | 산출 |
|
||||
|------|----------|------|
|
||||
| 1 | `04_match_rules.py` | `matched_rules.json`, `fire_outcomes.csv` |
|
||||
| 2 | `04_simulation_report.py` | `simulation_report.json/html`, Go/No-Go |
|
||||
| (선택) | `04_hybrid_dd_calibrate.py` | `hybrid_dd_calibration.json` |
|
||||
| (선택) | `04_causal_gt_calibrate.py` | `causal_gt_calibration.json` |
|
||||
|
||||
패키지: `deepcoin/matching/`
|
||||
|
||||
### Check — 운영 규칙·배분
|
||||
|
||||
| 항목 | 값 |
|
||||
|------|-----|
|
||||
| `monitor_rules` | `buy_compound_tight`, `sell_mtf_cross_all_tf` (주봉 w1 조건 포함 가능) |
|
||||
| **권장 primary** | `sim_causal_hybrid` (hybrid DD tier, `enhanced=False`) |
|
||||
| **배포 금지** | `sim_tier_enhanced` (conviction) |
|
||||
| Go/No-Go | holdout EV, MDD, fee stress — [SIMULATION.md](SIMULATION.md) |
|
||||
|
||||
### Act — 재검증
|
||||
|
||||
데이터·GT·`GENERAL_ANALYSIS_INTERVALS` 변경 시 **04_match → 04_simulation** 재실행.
|
||||
운영 전 **simulation_report.html** 에서 hybrid Go/No-Go 확인.
|
||||
|
||||
---
|
||||
|
||||
## 3. Operations (운영)
|
||||
|
||||
### Plan — 목적
|
||||
|
||||
- 시뮬과 **동일 규칙·동일 hybrid 배분**으로 빗썸 **실주문**.
|
||||
- `LIVE_TRADING_ENABLED=1` **필수**. dry-run·paper 없음.
|
||||
|
||||
### Do — 실행
|
||||
|
||||
| 순서 | 스크립트 | 역할 |
|
||||
|------|----------|------|
|
||||
| (선행) | `00_sync_ops.py` | 운영 전 봉 동기화 |
|
||||
| 1 | `06_verify_live.py` | 설정·규칙·한도·tier 점검 |
|
||||
| 2 | `check_balance.py` | 빗썸 KRW·보유 확인 |
|
||||
| 3 | `06_execute_live.py` | 실거래 루프 (`--once` 1회 테스트) |
|
||||
| (선택) | `05_run_monitor.py` | 알림만 (주문 없음) |
|
||||
|
||||
패키지: `deepcoin/ops/live_trader.py`, `hybrid_sim_execution.py`
|
||||
|
||||
### Check — 제약 (시뮬과 동일)
|
||||
|
||||
| 제약 | 구현 |
|
||||
|------|------|
|
||||
| 초기 자금 | `GT_INITIAL_CASH_KRW=400000` (배분 기준) |
|
||||
| 매수 | 가용 현금·수수료, `LIVE_DAILY_KRW_MAX`, EV/WF 통과 매수만 |
|
||||
| 매도 | 보유 수량, `plan_live_hit` → `sell_qty` |
|
||||
| 이력 | `LIVE_HYBRID_BOOTSTRAP_FIRES=1` → `fire_outcomes` monitor 발화 + 운영 체결분 |
|
||||
| 인과 | 발화 시점까지 OHLC·지표만 (`live_eval` + causal GT signals) |
|
||||
|
||||
### Act — Kill switch
|
||||
|
||||
1. `06_execute_live` 프로세스 중지
|
||||
2. 빗썸 앱 수동 청산
|
||||
3. 필요 시 `01`~`04` 재실행 후 규칙·시뮬 재승인
|
||||
|
||||
---
|
||||
|
||||
## 스크립트 번호 ↔ 축 (빠른 참조)
|
||||
|
||||
| 축 | 스크립트 |
|
||||
|----|----------|
|
||||
| **데이터** | `01_download`, `00_sync_ops` |
|
||||
| **GT** | `02`, `03_*`, `05_chart_truth` |
|
||||
| **Sim** | `04_match_rules`, `04_simulation_report`, `04_*_calibrate` |
|
||||
| **Ops** | `06_verify_live`, `06_execute_live`, `check_balance`, `05_run_monitor` |
|
||||
| **검증** | `verify_env.py`, `test_buy_sell_rehearsal.py` |
|
||||
|
||||
---
|
||||
|
||||
## 데이터·미래 사용 정책
|
||||
|
||||
| 축 | 미래 데이터 |
|
||||
|----|-------------|
|
||||
| Ground Truth | **허용** (라벨링·벤치마크) |
|
||||
| Simulation | **금지** (발화·스캔·배분 tier는 과거 leg·DD만) |
|
||||
| Operations | **금지** (Simulation과 동일 규칙·엔진) |
|
||||
|
||||
---
|
||||
|
||||
## 관련 문서
|
||||
|
||||
| 문서 | 내용 |
|
||||
|------|------|
|
||||
| [GROUND_TRUTH.md](GROUND_TRUTH.md) | GT 타점·배분 상세 |
|
||||
| [SIMULATION.md](SIMULATION.md) | Go/No-Go·portfolio_compare |
|
||||
| [LIVE_TRADING.md](LIVE_TRADING.md) | 06 실거래 |
|
||||
| [OPERATIONS.md](OPERATIONS.md) | 일상 루틴 |
|
||||
| [RISK.md](RISK.md) | 한도·Kill switch |
|
||||
| [DEPLOYMENT_CHECKLIST.md](../05_ops/DEPLOYMENT_CHECKLIST.md) | 기동 체크리스트 |
|
||||
@@ -1,7 +1,9 @@
|
||||
# 정답 타점 (Ground Truth)
|
||||
# Ground Truth (정답 타점)
|
||||
|
||||
설계: [ARCHITECTURE.md](ARCHITECTURE.md) — **Ground Truth** 축.
|
||||
|
||||
1년(기본 `CHART_LOOKBACK_DAYS=365`) 3분봉에서 **사후 최적 스윙** 매수·매도 라벨.
|
||||
실시간 전략이 아니라 규칙·시뮬 검증용 **벤치마크**입니다.
|
||||
**미래 데이터 허용** (ZigZag). Simulation·Operations에는 oracle을 직접 쓰지 않습니다.
|
||||
|
||||
JSON 필드 `model`에 타점·비중·자본 배분 규칙이 일반화되어 있습니다 (`deepcoin/ground_truth/gt_model.py`).
|
||||
|
||||
|
||||
@@ -1,107 +1,67 @@
|
||||
# 2~3단계 — dry-run·실거래 (hybrid primary)
|
||||
# 3단계 — 실거래 (hybrid primary)
|
||||
|
||||
## 운영 모델 (시뮬과 동일)
|
||||
|
||||
dry-run(Phase C)과 실거래(Phase B) 모두 **시뮬 `sim_primary` = `sim_causal_hybrid`** 와 같은 경로이다.
|
||||
실거래는 **시뮬 `sim_causal_hybrid`** 와 같은 배분 경로만 사용합니다. dry-run·모의 체결은 제거되었습니다.
|
||||
|
||||
| 구분 | 내용 |
|
||||
|------|------|
|
||||
| 신호 | `matched_rules.json` → `monitor_rules` 2개 |
|
||||
| 매수 규칙 | `buy_compound_tight` |
|
||||
| 매도 규칙 | `sell_mtf_cross_all_tf` |
|
||||
| 매도 규칙 | `sell_mtf_cross_all_tf` (주봉 w1 조건 포함) |
|
||||
| 배분 | hybrid DD tier + past-leg, **`enhanced=False`** |
|
||||
| 이력 | `LIVE_HYBRID_BOOTSTRAP_FIRES=1` → `fire_outcomes` monitor 발화 + 운영 체결분 |
|
||||
| 체결 엔진 | `plan_live_hit` = `replay_hybrid_signals` (= `build_monitor_hybrid_sized_trades`) |
|
||||
| 매수 필터 | 시뮬과 동일 — monitor 발화 전체 (`approved_buy_rules=None`) |
|
||||
| 금지 | `sim_tier_enhanced` (conviction), GT oracle 타점 |
|
||||
|
||||
코드: `deepcoin/ops/hybrid_sim_execution.py` (`build_monitor_hybrid_sized_trades`, `enhanced=False`) → `live_trader.py`
|
||||
코드: `deepcoin/ops/hybrid_sim_execution.py` → `live_trader.py` (`LIVE_TRADING_ENABLED=1` 필수)
|
||||
|
||||
## Phase C — dry-run (주문 없음, 3단계 전)
|
||||
|
||||
**정의:** 빗썸 **시장가 주문 없음**. 신호·tier·알림·로그만 검증.
|
||||
|
||||
| 항목 | 설정 |
|
||||
|------|------|
|
||||
| `LIVE_TRADING_ENABLED` | **0** |
|
||||
| 스크립트 | `05_run_monitor.py`, `06_verify_live_dryrun.py`, `06_execute_live.py --once` |
|
||||
| 기간 | 배포 체크리스트 기준 ~Phase C 종료(금요일 Go/No-Go) |
|
||||
## 기동 전 점검
|
||||
|
||||
```bash
|
||||
# .env: LIVE_TRADING_ENABLED=0, GT_SIGNAL_CAUSAL=1, SIM_PRIMARY_SIZING=auto
|
||||
python scripts/01_download.py # 1일 1회
|
||||
python scripts/06_verify_live_dryrun.py # 설정·tier·규칙 점검
|
||||
python scripts/05_run_monitor.py # 텔레그램 알림 (상시)
|
||||
python scripts/06_execute_live.py --once # dry_run 로그만 (선택)
|
||||
python scripts/06_verify_live.py # 설정·tier·규칙·한도
|
||||
python scripts/check_balance.py # 빗썸 KRW·보유 확인
|
||||
```
|
||||
|
||||
- 06은 발화 시 **모의 계좌**(`paper_portfolio.json`)만 갱신, **빗썸 API 주문 없음**
|
||||
- 체결 배분은 시뮬과 동일하게 `signal_history` 전체를 `replay_paper_portfolio`로 재생
|
||||
- 구버전 paper는 `paper_fires.jsonl`의 `would_trade=true`로 이력 복원 가능
|
||||
## 실거래 실행
|
||||
|
||||
상세: [DEPLOYMENT_CHECKLIST.md](../05_ops/DEPLOYMENT_CHECKLIST.md) §4 · [env.recommended.md](../05_ops/env.recommended.md) Phase C
|
||||
|
||||
## Phase B — 실거래 (3단계 오픈)
|
||||
|
||||
**정의:** 실제 KRW가 빗썸 주문으로 나간다. 05 알림만으로는 3단계가 아니다.
|
||||
|
||||
### 선행 조건
|
||||
|
||||
1. [SIMULATION.md](SIMULATION.md) — 시뮬 **GO** (완료)
|
||||
2. Phase C **GO** (5일 모니터·verify·알림 안정)
|
||||
3. [env.recommended.md](../05_ops/env.recommended.md) Phase B-1 `.env`
|
||||
4. [RISK.md](RISK.md), [OPERATIONS.md](OPERATIONS.md) 숙지
|
||||
|
||||
### 실행
|
||||
`.env` 에 `LIVE_TRADING_ENABLED=1` 확인 후:
|
||||
|
||||
```bash
|
||||
python scripts/06_verify_live_dryrun.py # B-1 당일 재확인
|
||||
|
||||
# LIVE_TRADING_ENABLED=1 확인 후
|
||||
python scripts/06_execute_live.py --once
|
||||
python scripts/06_execute_live.py # 상시
|
||||
python scripts/06_execute_live.py --once # 1회
|
||||
python scripts/06_execute_live.py # 상시 루프
|
||||
```
|
||||
|
||||
## 환경 변수
|
||||
## 환경 변수 (운영 예)
|
||||
|
||||
| 변수 | Phase C | Phase B-1 (예) | 설명 |
|
||||
|------|---------|----------------|------|
|
||||
| `LIVE_TRADING_ENABLED` | 0 | 1 | 1일 때만 실주문 |
|
||||
| `GT_SIGNAL_CAUSAL` | 1 | 1 | hybrid sizing |
|
||||
| `SIM_PRIMARY_SIZING` | auto | auto | primary=hybrid |
|
||||
| `GT_INITIAL_CASH_KRW` | **400000** | **400000** | 시뮬·paper·hybrid 배분 시작 자금 |
|
||||
| `LIVE_ORDER_KRW` | **40000** | **40000** | 초기×10% · fallback 참고 |
|
||||
| `MONITOR_ALERT_KRW_AMOUNT` | **40000** | **40000** | 알림 참고(초기×10%) |
|
||||
| `LIVE_DAILY_KRW_MAX` | **4000000** (초기×10) | **400000** | C: hybrid 여유 · B-1: 1일 1배 |
|
||||
| `LIVE_DAILY_LOSS_LIMIT_KRW` | **20000** | **40000** | C: 초기×5% · B-1: ×10% |
|
||||
| `LIVE_COOLDOWN_MIN` | **3** (1봉) | **3** | `MATCH_PRIMARY_INTERVAL`과 동일 |
|
||||
| `LIVE_MAX_TRADES_PER_DAY` | **999** (시뮬 정합) | 15 | C: 횟수 제한 없음 |
|
||||
| `MONITOR_LOOP_SLEEP_SEC` | 180 | 180 | 루프 3분 = 3분봉 주기 |
|
||||
| `MATCH_LIVE_CACHE_SEC` | **180** | **180** | live_eval 캐시 ≤ 루프 주기 |
|
||||
| `MONITOR_ALERT_COOLDOWN_MIN` | **3** (1봉) | **3** | 규칙당 알림 최소 간격 |
|
||||
| 변수 | 예 | 설명 |
|
||||
|------|-----|------|
|
||||
| `LIVE_TRADING_ENABLED` | 1 | 0이면 06 기동 불가 |
|
||||
| `GT_SIGNAL_CAUSAL` | 1 | hybrid sizing (과거만) |
|
||||
| `GT_INITIAL_CASH_KRW` | 400000 | 시뮬·배분 기준 |
|
||||
| `LIVE_DAILY_KRW_MAX` | 400000 | 일 주문 한도 |
|
||||
| `LIVE_DAILY_LOSS_LIMIT_KRW` | 40000 | 일 손실 한도 |
|
||||
| `LIVE_COOLDOWN_MIN` | 3 | 규칙당 쿨다운(분) |
|
||||
| `LIVE_MAX_TRADES_PER_DAY` | 15 | 일 최대 체결 수 |
|
||||
|
||||
Phase별 전체 블록: [env.recommended.md](../05_ops/env.recommended.md)
|
||||
전체: [env.recommended.md](../05_ops/env.recommended.md)
|
||||
|
||||
## 주문·배분 동작
|
||||
|
||||
- **공통:** 발화 이력 → `size_monitor_signals` / `replay_paper_portfolio` (시뮬 `sim_causal_hybrid`와 동일)
|
||||
- **매수:** EV/WF 통과 규칙만 → `_can_trade` (live: 일한도·3분 쿨다운 / dry-run: 쿨다운만) → planned `amount_krw` 시장가 매수
|
||||
- **매도:** 시뮬 분할 `sell_qty` (leg 마지막 매도는 잔량 전량) → 시장가 매도
|
||||
- **스킵:** 시뮬 배분 0, 보유 없음, 일한도, 미승인 규칙, 규칙 쿨다운(3분)
|
||||
- 발화 이력 → `plan_live_hit` / `replay_hybrid_signals` (인과, 현금·보유 제약)
|
||||
- **매수:** EV/WF 통과 규칙만, 가용 현금 범위, 일한도·쿨다운
|
||||
- **매도:** 보유 수량 필요, 시뮬 분할 `sell_qty` 기준 시장가 매도
|
||||
|
||||
## 로그
|
||||
|
||||
| 경로 | 내용 |
|
||||
|------|------|
|
||||
| `data/ops/live_trades.jsonl` | 06 실주문 (JSONL) |
|
||||
| `data/ops/paper_fires.jsonl` | Phase C 모의 체결 시도 |
|
||||
| `data/ops/paper_portfolio.json` | dry-run 모의 잔고·`signal_history` |
|
||||
| `data/ops/live_signal_history.json` | live 발화 이력 (시뮬 배분용) |
|
||||
| `docs/05_ops/live_verification_*.md` | Phase C/B 일별 기록 |
|
||||
| `data/ops/live_trades.jsonl` | 실주문 기록 |
|
||||
| `data/ops/live_signal_history.json` | 발화 이력 (배분 정합) |
|
||||
| `docs/05_ops/live_verification_*.md` | `06_verify_live.py` 점검 기록 |
|
||||
|
||||
## 4단계 연결
|
||||
## Kill switch
|
||||
|
||||
오픈 후 **1~2주** 실계좌 PnL·슬리피지·장애를 verification 문서에 기록 → B-2 한도 검토.
|
||||
|
||||
## 관련 문서
|
||||
|
||||
- [SIMULATION.md](SIMULATION.md) — Go/No-Go·`sim_primary`
|
||||
- [OPERATIONS.md](OPERATIONS.md) — 일상 루틴·장애
|
||||
- [RISK.md](RISK.md) — Kill switch·한도
|
||||
1. `06_execute_live` 프로세스 중지
|
||||
2. 빗썸 앱에서 수동 청산
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|------|------|------|
|
||||
| 1 | 시뮬레이션 | **완료** (GO) — [SIMULATION.md](SIMULATION.md) |
|
||||
| 2 | 문서화 | **본 문서군** — SIMULATION / LIVE / RISK / OPERATIONS |
|
||||
| 3 | 오픈 (실거래) | Phase C 후 B-1 — [LIVE_TRADING.md](LIVE_TRADING.md) |
|
||||
| 3 | 오픈 (실거래) | **운영 중** — [LIVE_TRADING.md](LIVE_TRADING.md) |
|
||||
| 4 | 실계좌 검증 | 1~2주 |
|
||||
| 5 | 지속 운영 | 06 상시 + 월간 재시뮬 |
|
||||
|
||||
@@ -28,23 +28,22 @@
|
||||
| 04 시뮬 | `04_simulation_report.py` | Go/No-Go 리포트 |
|
||||
| 05 | `05_run_monitor.py` | 알림 (주문 없음) |
|
||||
| 06 | `06_execute_live.py` | 알림+주문 (LIVE=1) |
|
||||
| 점검 | `06_verify_live_dryrun.py` | hybrid·한도·규칙 PASS |
|
||||
| 점검 | `06_verify_live.py` | hybrid·한도·규칙 PASS (`LIVE=1`) |
|
||||
| 환경 | `verify_env.py` | `.env`·경로 검증 |
|
||||
|
||||
구조: [STRUCTURE.md](STRUCTURE.md)
|
||||
|
||||
---
|
||||
|
||||
## Phase C — 지금~금요일 (dry-run, 주문 없음)
|
||||
## 실거래 운영 (LIVE=1)
|
||||
|
||||
### `.env` 핵심
|
||||
|
||||
```env
|
||||
LIVE_TRADING_ENABLED=0
|
||||
LIVE_TRADING_ENABLED=1
|
||||
GT_SIGNAL_CAUSAL=1
|
||||
SIM_PRIMARY_SIZING=auto
|
||||
MONITOR_LOOP_SLEEP_SEC=180
|
||||
MONITOR_ALERT_COOLDOWN_MIN=180
|
||||
```
|
||||
|
||||
전체: [env.recommended.md](../05_ops/env.recommended.md)
|
||||
@@ -54,28 +53,20 @@ MONITOR_ALERT_COOLDOWN_MIN=180
|
||||
| 순서 | 명령 | 빈도 |
|
||||
|------|------|------|
|
||||
| 1 | `python scripts/01_download.py` | 1일 1회 |
|
||||
| 2 | `python scripts/06_verify_live_dryrun.py` | 1일 1회 |
|
||||
| 3 | `python scripts/06_execute_live.py` | 상시 (`LIVE=0`, 발화→`paper_fires.jsonl`) |
|
||||
| 4 | 금요일 | `python scripts/07_phase_c_paper_report.py` (모의 forward % 참고) |
|
||||
| 2 | `python scripts/06_verify_live.py` | 기동 전·1일 1회 |
|
||||
| 3 | `python scripts/06_execute_live.py` | 상시 (빗썸 실주문) |
|
||||
|
||||
실계좌 수익률은 dry-run에서 나오지 않음. B-1 전 C Go 판정 후 `LIVE_TRADING_ENABLED=1`.
|
||||
선택: `python scripts/05_run_monitor.py` (알림만 병행)
|
||||
|
||||
### 일별 기록
|
||||
### 기동 절차
|
||||
|
||||
- 파일: `docs/05_ops/live_verification_20260601.md`
|
||||
- 금요일: [DEPLOYMENT_CHECKLIST.md](../05_ops/DEPLOYMENT_CHECKLIST.md) §4.4 C Go/No-Go
|
||||
|
||||
---
|
||||
|
||||
## Phase B-1 — 실거래 시작 (C GO 이후)
|
||||
|
||||
1. [env.recommended.md](../05_ops/env.recommended.md) Phase B-1 블록 적용
|
||||
1. [env.recommended.md](../05_ops/env.recommended.md) 적용
|
||||
2. `LIVE_TRADING_ENABLED=1` 확인
|
||||
3. `06_verify_live_dryrun.py` → PASS
|
||||
3. `06_verify_live.py` → PASS
|
||||
4. `06_execute_live.py --once` → `live_trades.jsonl` 확인
|
||||
5. `06_execute_live.py` 상시
|
||||
|
||||
체크리스트: [DEPLOYMENT_CHECKLIST.md](../05_ops/DEPLOYMENT_CHECKLIST.md) §5
|
||||
체크리스트: [DEPLOYMENT_CHECKLIST.md](../05_ops/DEPLOYMENT_CHECKLIST.md)
|
||||
|
||||
---
|
||||
|
||||
@@ -91,7 +82,7 @@ MONITOR_ALERT_COOLDOWN_MIN=180
|
||||
| 스크립트 | 내용 |
|
||||
|----------|------|
|
||||
| 05 | 규칙 발화·MTF 요약 (주문 없음) |
|
||||
| 06 | 발화 + 체결/dry-run 결과 (`LIVE=1` 시 체결) |
|
||||
| 06 | 발화 + 실주문 체결 (`LIVE=1` 필수) |
|
||||
|
||||
중복 완화: `MONITOR_ALERT_COOLDOWN_MIN`, `LIVE_COOLDOWN_MIN`
|
||||
|
||||
@@ -102,7 +93,7 @@ MONITOR_ALERT_COOLDOWN_MIN=180
|
||||
| 증상 | 조치 |
|
||||
|------|------|
|
||||
| 주문 실패 | `live_trades.jsonl`, API 키·잔고 → `LIVE_TRADING_ENABLED=0` |
|
||||
| 알림만, 주문 없음 | C: 정상. B: `LIVE_TRADING_ENABLED` 확인 |
|
||||
| 알림만, 주문 없음 | `LIVE_TRADING_ENABLED=1` 및 06 프로세스 확인 |
|
||||
| verify FAIL | `.env`, `matched_rules` 2개, `GT_SIGNAL_CAUSAL=1` |
|
||||
| hybrid 금액 0 | 현금·EV/WF·tier 스킵 로그 확인 |
|
||||
| 과다 알림 | 쿨다운 증가 |
|
||||
@@ -124,10 +115,9 @@ MONITOR_ALERT_COOLDOWN_MIN=180
|
||||
|
||||
## 오픈 당일 체크리스트 (3단계)
|
||||
|
||||
- [ ] Phase C **GO**
|
||||
- [ ] 시뮬·hybrid Go/No-Go **GO**
|
||||
- [ ] Phase B-1 `.env`
|
||||
- [ ] `06_verify_live_dryrun.py` PASS
|
||||
- [ ] 시뮬·hybrid Go/No-Go **GO** (참고)
|
||||
- [ ] 운영 `.env`
|
||||
- [ ] `06_verify_live.py` PASS
|
||||
- [ ] `LIVE_TRADING_ENABLED=1` 의도 확인
|
||||
- [ ] `--once` 후 `live_trades.jsonl`
|
||||
- [ ] [RISK.md](RISK.md) Kill switch 숙지
|
||||
|
||||
@@ -1,62 +1,51 @@
|
||||
# 리스크 — dry-run·실거래
|
||||
# 리스크 — Simulation · Operations
|
||||
|
||||
설계: [ARCHITECTURE.md](ARCHITECTURE.md)
|
||||
|
||||
## 모델 리스크 (배포 경로)
|
||||
|
||||
| 경로 | 리스크 수준 | 조치 |
|
||||
|------|-------------|------|
|
||||
| **hybrid primary** (`sim_causal_hybrid`) | 배포 허용 | Phase C 검증 후 B-1 소액 |
|
||||
| GT oracle (+4,291%) | **운영 금지** | 벤치마크만 참고 (미래 정보) |
|
||||
| conviction (`sim_tier_enhanced`) | **코드·env 모두 금지** | `enhanced=False` 고정 |
|
||||
| sim 고수익 ≠ 실현 | **구조적 갭** | `LIVE_DAILY_KRW_MAX`·슬리피지·부분 체결 |
|
||||
| **hybrid primary** (`sim_causal_hybrid`) | 배포 허용 | `06_verify_live` 후 소액 시작 |
|
||||
| GT oracle | **운영 금지** | 벤치마크만 (미래 허용) |
|
||||
| conviction (`sim_tier_enhanced`) | **금지** | `enhanced=False` 고정 |
|
||||
| sim 고수익 ≠ 실현 | **구조적 갭** | 일한도·슬리피지·부분 체결 |
|
||||
|
||||
시뮬 Option C **GO**는 과거 데이터·가정 하의 결과이며, 실계좌 수익을 보장하지 않는다.
|
||||
시뮬 Go/No-Go는 과거 데이터 가정이며 실계좌 수익을 보장하지 않습니다.
|
||||
|
||||
## 자금·한도
|
||||
## 자금·한도 (Operations)
|
||||
|
||||
### 원칙
|
||||
| 원칙 | 내용 |
|
||||
|------|------|
|
||||
| 초기 기준 | `GT_INITIAL_CASH_KRW=400000` |
|
||||
| 일 매수 | `LIVE_DAILY_KRW_MAX` — hybrid 1회액 초과 시 스킵 |
|
||||
| 일 손실 | `LIVE_DAILY_LOSS_LIMIT_KRW` 초과 시 당일 중단 |
|
||||
| 매수 | EV/WF 통과 규칙 + 가용 현금 |
|
||||
| 매도 | 보유 수량 필요 |
|
||||
|
||||
- 파일럿만 허용: Phase B-1은 **소액** (`LIVE_ORDER_KRW`, `LIVE_DAILY_KRW_MAX` 보수적)
|
||||
- hybrid 1회 planned 매수가 `LIVE_DAILY_KRW_MAX`를 넘으면 **주문 스킵** (시뮬은 제한 없음)
|
||||
- 일 손실 한도 초과 시 **당일 추가 주문 중단**
|
||||
|
||||
### Phase별 한도 예 (`.env` 조정 필수)
|
||||
|
||||
| Phase | `LIVE_TRADING_ENABLED` | 일한도 예 | 비고 |
|
||||
|-------|------------------------|-----------|------|
|
||||
| C (dry-run) | 0 | 30만 (dry-run 참고) | 주문 없음 |
|
||||
| B-1 | 1 | 40만 | sim 대비 보수 (초기=GT_INITIAL_CASH_KRW) |
|
||||
| B-2 | 1 | 500만+ | B-1 검증 후만 |
|
||||
|
||||
본인 자금·위험 성향에 맞게 **반드시** 낮춰 시작한다.
|
||||
한도는 [env.recommended.md](../05_ops/env.recommended.md) 기준으로 시작하고, 검증 후에만 상향합니다.
|
||||
|
||||
## 시장·기술 리스크
|
||||
|
||||
| 리스크 | 영향 | 완화 |
|
||||
|--------|------|------|
|
||||
| API 장애·레이트리밋 | 시세·주문 실패 | 재시도·`LIVE_TRADING_ENABLED=0` |
|
||||
| 슬리피지·호가 | sim 대비 수익 하락 | B-1 소액·verification 기록 |
|
||||
| DB·봉 지연 | 규칙 오판 | `01_download` 일 1회 |
|
||||
| 과다 발화 | 수수료·알림 피로 | 쿨다운·규칙 수(`MATCH_MONITOR_MAX_PER_SIDE`) |
|
||||
| 단일 종목(WLD) | 집중 리스크 | 포지션·일한도 상한 |
|
||||
| 리스크 | 완화 |
|
||||
|--------|------|
|
||||
| API 장애 | 재시도·06 중지 |
|
||||
| 슬리피지 | 소액·`live_trades.jsonl` 기록 |
|
||||
| 봉 지연 | `01_download` / `00_sync_ops` |
|
||||
| 단일 종목(WLD) | 일한도·포지션 상한 |
|
||||
|
||||
## Kill switch
|
||||
|
||||
| 방법 | 동작 |
|
||||
|------|------|
|
||||
| `.env` | `LIVE_TRADING_ENABLED=0` 후 05/06 프로세스 재시작 |
|
||||
| 프로세스 | `06_execute_live.py` 중지 (05만 남기면 알림만) |
|
||||
| 빗썸 | 앱/웹 수동 청산 |
|
||||
1. `06_execute_live` 프로세스 중지
|
||||
2. 빗썸 수동 청산
|
||||
|
||||
긴급 시 **주문 프로세스 중지 → LIVE_TRADING_ENABLED=0** 순서를 권장한다.
|
||||
|
||||
## 검증·재평가
|
||||
## 재평가
|
||||
|
||||
| 주기 | 작업 |
|
||||
|------|------|
|
||||
| Phase C (~5일) | 발화·알림·verify PASS — [DEPLOYMENT_CHECKLIST](../05_ops/DEPLOYMENT_CHECKLIST.md) |
|
||||
| B-1 (1~2주) | `live_verification_*.md` PnL·MDD·슬리피지 |
|
||||
| 월 1회 | `04_simulation_report.py` Go 재확인 |
|
||||
| 주 1회 | `06_verify_live.py` |
|
||||
| 월 1회 | `04_simulation_report.py` |
|
||||
|
||||
## 면책
|
||||
|
||||
실거래·dry-run 관찰 손익은 전적으로 운영자 책임이다. 본 저장소는 투자 자문이 아니다.
|
||||
실거래 손익은 운영자 책임입니다. 본 저장소는 투자 자문이 아닙니다.
|
||||
|
||||
@@ -1,42 +1,33 @@
|
||||
# DeepCoin 로드맵 (WLD)
|
||||
# DeepCoin 로드맵
|
||||
|
||||
## 완료 (기반)
|
||||
설계: [ARCHITECTURE.md](ARCHITECTURE.md) — **GT → Simulation → Operations** 만 사용합니다.
|
||||
|
||||
| 단계 | 내용 | 실행 |
|
||||
|------|------|------|
|
||||
| 01~03c | DB, GT, enrich, GT MTF 스냅샷, 전 TF 프로필 | `01`~`03_gt_mtf_profile.py` |
|
||||
| 04 | GT 프로필 + leg_gt EV + holdout | `04_match_rules.py` |
|
||||
| 05 (기능) | 텔레그램 알림 스크립트 | `05_run_monitor.py` |
|
||||
| **1** | **시뮬레이션** walk-forward·Go/No-Go | `04_simulation_report.py` — **GO** |
|
||||
| **2** | **문서화** | [SIMULATION.md](SIMULATION.md), [LIVE_TRADING.md](LIVE_TRADING.md), [RISK.md](RISK.md), [OPERATIONS.md](OPERATIONS.md) |
|
||||
## 축별 상태
|
||||
|
||||
## 남은 작업 (합의 순서)
|
||||
| 축 | 상태 | 다음 액션 |
|
||||
|----|------|-----------|
|
||||
| **Ground Truth** | 1년 GT·10TF 프로필 | 구간·파라미터 변경 시 `02`~`03` 재실행 |
|
||||
| **Simulation** | hybrid Go/No-Go (MDD 참고) | 월 1회 `04_simulation_report` |
|
||||
| **Operations** | LIVE=1, dry-run 제거 | `06_verify_live` → `06_execute_live` |
|
||||
|
||||
| 순서 | 단계 | 내용 | 실행 |
|
||||
|------|------|------|------|
|
||||
| **3** | 오픈 (B-1) | 실거래 소액 · hybrid | `06_execute_live.py` — **기동** (`LIVE_TRADING_ENABLED=1`) |
|
||||
| **(병행)** | Phase C 알림 | 선택 | `05_run_monitor.py` |
|
||||
| **4** | 검증 | 실계좌 1~2주 | `docs/05_ops/live_verification_*.md` |
|
||||
| **5** | 지속 | 실거래·월간 재시뮬 | 06 상시 |
|
||||
|
||||
운영 모델: **sim_primary = hybrid** (`sim_causal_hybrid`). [LIVE_TRADING.md](LIVE_TRADING.md)
|
||||
|
||||
## 가이드 맵
|
||||
|
||||
| 문서 | 용도 |
|
||||
|------|------|
|
||||
| [SIMULATION.md](SIMULATION.md) | 1단계 결과·Go/No-Go·portfolio_compare |
|
||||
| [LIVE_TRADING.md](LIVE_TRADING.md) | Phase C dry-run · Phase B live |
|
||||
| [RISK.md](RISK.md) | 한도·Kill switch·sim vs 실현 갭 |
|
||||
| [OPERATIONS.md](OPERATIONS.md) | 일상 루틴·장애·체크리스트 |
|
||||
| [DEPLOYMENT_CHECKLIST.md](../05_ops/DEPLOYMENT_CHECKLIST.md) | C→B 일정·Go 기준 |
|
||||
| [env.recommended.md](../05_ops/env.recommended.md) | Phase별 `.env` |
|
||||
|
||||
## 디렉터리
|
||||
## 권장 워크플로
|
||||
|
||||
```text
|
||||
scripts/01~06_*.py
|
||||
data/coins.db, ground_truth/, ops/live_trades.jsonl
|
||||
docs/04_matching/simulation_report.*
|
||||
docs/reference/
|
||||
01 download
|
||||
→ 02 GT (+ 03 분석·프로필, 05 차트)
|
||||
→ 04 match + 04 simulation (인과, 40만 원)
|
||||
→ 06 verify + 06 execute (동일 monitor_rules)
|
||||
```
|
||||
|
||||
운영 배분: **sim_causal_hybrid** = **06 live** (`hybrid_sim_execution`)
|
||||
|
||||
## 문서 맵
|
||||
|
||||
| 문서 | 축 |
|
||||
|------|-----|
|
||||
| [GROUND_TRUTH.md](GROUND_TRUTH.md) | GT |
|
||||
| [SIMULATION.md](SIMULATION.md) | Simulation |
|
||||
| [LIVE_TRADING.md](LIVE_TRADING.md) | Operations |
|
||||
| [OPERATIONS.md](OPERATIONS.md) | Operations |
|
||||
| [RISK.md](RISK.md) | Operations |
|
||||
| [DEPLOYMENT_CHECKLIST.md](../05_ops/DEPLOYMENT_CHECKLIST.md) | 기동 체크 |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 1단계 — 시뮬레이션
|
||||
# Simulation (시뮬레이션)
|
||||
|
||||
**상태 (2026-06-01):** `04_simulation_report.py` 실행 완료 · 규칙·hybrid·Option C 2차 **GO**
|
||||
설계: [ARCHITECTURE.md](ARCHITECTURE.md). Ground Truth **이후**, Operations **이전** 단계입니다.
|
||||
|
||||
## 목적
|
||||
|
||||
@@ -26,7 +26,7 @@ python scripts/04_simulation_report.py
|
||||
| 경로 | `portfolio_compare` 키 | 전기간 PnL (최근 실행) | 운영 |
|
||||
|------|------------------------|------------------------|------|
|
||||
| GT oracle (사후 ZigZag) | `ground_truth_chrono` | +4,291% | **미사용** (미래 허용 벤치마크) |
|
||||
| **권장 primary** | `sim_primary` = `sim_causal_hybrid` | **+1,147%** | **dry-run·live 배분** |
|
||||
| **권장 primary** | `sim_primary` = `sim_causal_hybrid` | (리포트 참고) | **Operations 배분** |
|
||||
| causal tier only | `sim_sized` | +75% | 미사용 |
|
||||
| 인과 GT leg 엔진 | `sim_causal_gt` | +15% | 미사용 |
|
||||
| conviction tier | `sim_tier_enhanced` | -51% | **금지** |
|
||||
@@ -108,5 +108,4 @@ python scripts/04_simulation_report.py
|
||||
|
||||
## 다음 단계
|
||||
|
||||
- **2단계 문서화:** 본 문서 + [LIVE_TRADING.md](LIVE_TRADING.md), [RISK.md](RISK.md), [OPERATIONS.md](OPERATIONS.md)
|
||||
- **3단계 이전:** [DEPLOYMENT_CHECKLIST.md](../05_ops/DEPLOYMENT_CHECKLIST.md) Phase C (dry-run)
|
||||
- **Operations:** [LIVE_TRADING.md](LIVE_TRADING.md), [OPERATIONS.md](OPERATIONS.md), [DEPLOYMENT_CHECKLIST.md](../05_ops/DEPLOYMENT_CHECKLIST.md)
|
||||
|
||||
@@ -1,52 +1,44 @@
|
||||
# DeepCoin 프로젝트 구조
|
||||
|
||||
단계별 PM 기준으로 디렉터리·진입점을 정리합니다. **실행은 `scripts/`만 사용**합니다.
|
||||
실행은 **`scripts/`** 만 사용합니다. 설계는 **Ground Truth · Simulation · Operations** 세 축입니다.
|
||||
[ARCHITECTURE.md](ARCHITECTURE.md)
|
||||
|
||||
**문서·산출물은 `docs/` 한 곳**에서 관리합니다.
|
||||
## 축별 매핑
|
||||
|
||||
- `docs/reference/` — 사람이 읽는 가이드·명세 (Git 추적)
|
||||
- `docs/02_*` ~ `docs/charts/` — 스크립트가 만든 HTML·CSV (로컬 재생성)
|
||||
| 축 | 패키지 | 스크립트 | 산출물 |
|
||||
|----|--------|----------|--------|
|
||||
| **데이터** | `deepcoin/data/` | `01_download`, `00_sync_ops` | `data/coins.db` |
|
||||
| **Ground Truth** | `ground_truth/`, `analysis/` | `02`, `03_*`, `05_chart_truth` | `ground_truth_trades.json`, `docs/02_ground_truth/` |
|
||||
| **Simulation** | `matching/` | `04_match_rules`, `04_simulation_report` | `docs/04_matching/` |
|
||||
| **Operations** | `ops/` | `06_verify_live`, `06_execute_live` | `data/ops/live_trades.jsonl` |
|
||||
|
||||
## 단계 ↔ 실행 ↔ 산출물
|
||||
|
||||
| 단계 | 목적 | 스크립트 | 패키지 | 산출물 |
|
||||
|------|------|----------|--------|--------|
|
||||
| 01 | 1년치 봉 적재 | `scripts/01_download.py` | `deepcoin/data/` | `data/coins.db` |
|
||||
| 02 | Ground Truth 타점 | `scripts/02_ground_truth.py` | `deepcoin/ground_truth/` | `data/ground_truth/*.json`, `docs/02_ground_truth/` |
|
||||
| 03 | 8TF 지표 enrich | `scripts/03_analyze_enrich.py` | `deepcoin/analysis/` | `docs/03_analysis/latest/` |
|
||||
| 03b | GT 타점 MTF 스냅샷 | `scripts/03_analyze_trades.py` | `deepcoin/analysis/` | `docs/03_analysis/general_analysis_trades.csv` |
|
||||
| 04 | GT 근접 규칙 선택 | `scripts/04_match_rules.py` | `deepcoin/matching/` | `docs/04_matching/` (예정) |
|
||||
| 05 | 차트·1분 모니터 | `scripts/05_chart_*.py`, `05_run_monitor.py` | `deepcoin/ops/` | `docs/charts/`, `docs/05_ops/` |
|
||||
보조: `05_run_monitor` (알림), `verify_env`, `test_buy_sell_rehearsal`
|
||||
|
||||
## 디렉터리 트리
|
||||
|
||||
```text
|
||||
DeepCoin/
|
||||
├── .env, config.py
|
||||
├── scripts/ # 단계별 CLI
|
||||
├── deepcoin/ # 로직 패키지
|
||||
├── data/ # DB, GT JSON, ops 상태
|
||||
├── deepcoin/
|
||||
│ ├── api/
|
||||
│ ├── data/
|
||||
│ ├── ground_truth/
|
||||
│ ├── analysis/
|
||||
│ ├── matching/
|
||||
│ └── ops/
|
||||
├── scripts/
|
||||
├── data/
|
||||
└── docs/
|
||||
├── README.md
|
||||
├── reference/ # 가이드 (Git)
|
||||
│ ├── ROADMAP.md
|
||||
│ ├── STRUCTURE.md
|
||||
│ ├── GROUND_TRUTH.md
|
||||
│ └── trade_anaysis.html
|
||||
├── 02_ground_truth/ # 산출물
|
||||
├── reference/ # ARCHITECTURE, GROUND_TRUTH, SIMULATION …
|
||||
├── 02_ground_truth/
|
||||
├── 03_analysis/
|
||||
├── 04_matching/
|
||||
├── 05_ops/
|
||||
└── charts/
|
||||
└── 05_ops/
|
||||
```
|
||||
|
||||
## `deepcoin/analysis/` 모듈 역할
|
||||
## `docs/` 규칙
|
||||
|
||||
| 파일 | 역할 |
|
||||
|------|------|
|
||||
| `general_analysis_enrich_runner.py` | 03 enrich |
|
||||
| `general_analysis_runner.py` | 03b GT 스냅샷 |
|
||||
| `general_analysis_pipeline.py` | 타점별 MTF 조립 |
|
||||
| `general_analysis_*` (기타) | 지표·패턴·리포트 |
|
||||
- `docs/reference/` — 가이드 (Git)
|
||||
- `docs/02_*` ~ `docs/05_ops/` — 스크립트 재생성 산출물
|
||||
|
||||
구 `reports/` 폴더는 `docs/`로 통합되었습니다. 코드의 `REPORTS_*` 이름은 `paths.py`에서 `docs/*`로 연결되는 별칭입니다.
|
||||
코드의 `REPORTS_*` 별칭은 `deepcoin/paths.py`에서 `docs/*`로 연결됩니다.
|
||||
|
||||
@@ -1,394 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ko">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<title>MTF 기술적 분석 기법 목록 (trade_anaysis)</title>
|
||||
<style>
|
||||
body { font-family: "Malgun Gothic", Arial, sans-serif; margin: 28px 36px; background: #f5f5f5; color: #1e293b; line-height: 1.55; }
|
||||
h1 { font-size: 1.45rem; border-bottom: 2px solid #64748b; padding-bottom: 8px; }
|
||||
h2 { font-size: 1.15rem; margin-top: 32px; color: #334155; }
|
||||
h3 { font-size: 1rem; margin-top: 20px; color: #475569; }
|
||||
p.meta { color: #64748b; font-size: 0.9rem; }
|
||||
.box { background: #fff; border: 1px solid #cbd5e1; border-radius: 8px; padding: 16px 20px; margin: 16px 0; }
|
||||
table { width: 100%; border-collapse: collapse; font-size: 0.88rem; background: #fff; margin: 12px 0 20px; }
|
||||
th, td { border: 1px solid #e2e8f0; padding: 8px 10px; text-align: left; vertical-align: top; }
|
||||
th { background: #e2e8f0; font-weight: 600; white-space: nowrap; }
|
||||
tr:nth-child(even) td { background: #f8fafc; }
|
||||
.tag { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 0.78rem; margin-right: 4px; }
|
||||
.done { background: #dcfce7; color: #166534; }
|
||||
.partial { background: #fef9c3; color: #854d0e; }
|
||||
.todo { background: #f1f5f9; color: #475569; }
|
||||
ul.compact { margin: 6px 0; padding-left: 20px; }
|
||||
ul.compact li { margin: 4px 0; }
|
||||
code { background: #f1f5f9; padding: 1px 5px; border-radius: 3px; font-size: 0.85em; }
|
||||
.matrix td, .matrix th { text-align: center; font-size: 0.82rem; }
|
||||
.yes { color: #15803d; font-weight: 600; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>MTF 기술적 분석 기법 목록 및 구현 상태</h1>
|
||||
<p class="meta">
|
||||
목적: 3분~일봉 OHLCV 유입 시 <strong>모든 기법을 봉 단위로 검증</strong> (매수·매도 타점과 무관) ·
|
||||
간격: <strong>3, 5, 10, 15, 30, 60, 240분 + 일봉(1440)</strong> ·
|
||||
데이터: <code>data/coins.db</code> (WLD) ·
|
||||
문서: <code>docs/reference/trade_anaysis.html</code>
|
||||
</p>
|
||||
|
||||
<div class="box">
|
||||
<h3>구현 상태 범례</h3>
|
||||
<ul class="compact">
|
||||
<li><span class="tag done">완료</span> — <code>general_analysis_enrich_bars(df, interval)</code> CSV 컬럼 또는 기존 Plotly 차트.</li>
|
||||
<li><span class="tag partial">부분</span> — <strong>Plotly/HTML UI만</strong> 없음. 수치·플래그는 CSV에 존재.</li>
|
||||
<li><span class="tag todo">미구현</span> — 전용 UI·리포트 페이지 없음 (아래 2건).</li>
|
||||
<li><span class="tag partial">구현완료·전량재실행</span> — 코드·CLI는 준비됨. 산출 CSV가 GT 전체를 반영하려면 <code>--limit</code> 없이 재실행.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="box">
|
||||
<h3>실행 및 산출물</h3>
|
||||
<ul class="compact">
|
||||
<li><strong>03 enrich (권장)</strong>: <code>python scripts/03_analyze_enrich.py</code>
|
||||
· 모듈: <code>deepcoin/analysis/general_analysis_enrich_runner.py</code></li>
|
||||
<li><strong>산출</strong>: <code>docs/03_analysis/latest/m3_latest.csv</code> … <code>d1_latest.csv</code>
|
||||
(간격당 약 <strong>247컬럼</strong>, 최근 N봉 — <code>GA_DEFAULT_TAIL_EXPORT</code> 기본 <strong>200</strong>, <code>--tail-export</code>로 변경)</li>
|
||||
<li><strong>점검</strong>: <code>docs/03_analysis/general_analysis_capability.html</code></li>
|
||||
<li><strong>03b GT 타점 MTF</strong>: <code>python scripts/03_analyze_trades.py</code>
|
||||
→ <code>docs/03_analysis/general_analysis_trades.csv</code>
|
||||
· 리포트: <code>docs/03_analysis/general_analysis_report.html</code></li>
|
||||
<li><strong>주의</strong>: <code>--limit N</code>은 테스트용. 전체 GT(약 450타점) 반영 시 <code>--limit</code> 없이 실행.</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="box">
|
||||
<h3>분석 시점 정의</h3>
|
||||
<ul class="compact">
|
||||
<li>봉 분석: 각 간격의 <strong>완성봉 시계열</strong>에 지표·패턴 컬럼 부여 (전 봉 + lookback 롤링).</li>
|
||||
<li>타점 분석(선택): <code>dt</code> 직전 완성봉만 사용 (<code>merge_asof</code> backward).</li>
|
||||
<li>3분봉 lookback 롤링은 성능상 최근 6000봉 구간만 패턴·VP·파동·하모닉 갱신 (<code>CONTEXT_TAIL_ROWS</code>).</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<h2>1. DB 보유 간격</h2>
|
||||
<table class="matrix">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>간격</th><th>3분</th><th>5분</th><th>10분</th><th>15분</th>
|
||||
<th>30분</th><th>60분</th><th>240분</th><th>일봉</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>enrich 대상</th>
|
||||
<td class="yes">O</td><td class="yes">O</td><td class="yes">O</td><td class="yes">O</td>
|
||||
<td class="yes">O</td><td class="yes">O</td><td class="yes">O</td><td class="yes">O</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>DB 적재</th>
|
||||
<td class="yes">O</td><td class="yes">O</td><td class="yes">O</td><td class="yes">O</td>
|
||||
<td class="yes">O</td><td class="yes">O</td><td class="yes">O</td><td class="yes">O</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>대략 기간</th>
|
||||
<td>~12개월</td><td>~12개월</td><td>~12개월</td><td>~12개월</td>
|
||||
<td>~12개월</td><td>~12개월</td><td>~12개월</td><td>~12개월</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>비고</th>
|
||||
<td colspan="8">1분봉은 DB 6개월만 있어 본 문서 범위 제외.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>2. 파이프라인</h2>
|
||||
<div class="box">
|
||||
<ol>
|
||||
<li><strong>입력</strong>: <code>mtf_bb.load_frames_from_db()</code> — 8개 간격 OHLCV</li>
|
||||
<li><strong>enrich</strong>: <span class="tag done">완료</span> <code>general_analysis_enrich_bars(raw, interval, full_context=True)</code></li>
|
||||
<li><strong>모듈 순서</strong>: <code>candle_features</code> → <code>indicators</code> → <code>candles</code> → <code>chart</code> → <code>context</code>(patterns/wave/volume/harmonic)</li>
|
||||
<li><strong>MTF 합성</strong>: <span class="tag done">완료</span> <code>general_analysis_mtf_vote_latest()</code>, <code>ga_align_*</code></li>
|
||||
<li><strong>시각화</strong>: <span class="tag partial">부분</span> <code>scripts/05_chart_*.py</code> 3분 6패널 · 8TF 타일·타점 미니차트 UI <span class="tag todo">미구현</span></li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
<h2>3. 차트 분석 (Chart Analysis)</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>방법</th><th>설명</th><th>구현</th><th>주요 컬럼 / 모듈</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>캔들차트 (Candlestick)</td>
|
||||
<td>OHLC + BB·일목 오버레이</td>
|
||||
<td><span class="tag done">완료</span></td>
|
||||
<td><code>scripts/05_chart_*.py</code>, <code>ga_chart_type_candle</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>선차트 (Line)</td>
|
||||
<td>종가·MA·MACD 등 시계열</td>
|
||||
<td><span class="tag done">완료</span> <span class="tag partial">UI</span></td>
|
||||
<td><code>ga_chart_line_slope</code>, <code>ga_chart_line_slope_1</code> · Plotly 전용 선차트 없음</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>바차트 (Bar / OHLC Bar)</td>
|
||||
<td>봉 범위·거래량 스파이크</td>
|
||||
<td><span class="tag done">완료</span> <span class="tag partial">UI</span></td>
|
||||
<td><code>ga_chart_bar_range_pct</code>, <code>ga_chart_vol_spike</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Heikin-Ashi</td>
|
||||
<td>노이즈 완화 캔들</td>
|
||||
<td><span class="tag done">완료</span></td>
|
||||
<td><code>ga_ha_*</code>, <code>ga_chart_ha_trend</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Renko</td>
|
||||
<td>ATR 브릭 방향</td>
|
||||
<td><span class="tag done">완료</span></td>
|
||||
<td><code>ga_chart_renko_dir</code>, <code>ga_chart_renko_up</code>, <code>ga_chart_renko_brick_up_ratio</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Point & Figure</td>
|
||||
<td>박스 크기 기준 X/O 열</td>
|
||||
<td><span class="tag done">완료</span></td>
|
||||
<td><code>ga_chart_pnf_col</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>멀티 패널 (6패널)</td>
|
||||
<td>BB·이격·Stoch·RSI·MACD</td>
|
||||
<td><span class="tag done">완료</span></td>
|
||||
<td><code>scripts/05_chart_*.py</code> 3분</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>MTF 타일 (Small Multiples)</td>
|
||||
<td>8TF 나란히 Plotly</td>
|
||||
<td><span class="tag todo">미구현</span></td>
|
||||
<td>CSV 8TF 컬럼으로 대체 · <code>docs/03_analysis/latest/*_latest.csv</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>4. 패턴 분석 (Pattern Analysis)</h2>
|
||||
<p>lookback 윈도우(<code>LOOKBACK_BARS</code>) 마지막 봉 기준. 롤링 적용: <code>general_analysis_apply_context_features</code>.</p>
|
||||
|
||||
<h3>4.1 반전 패턴</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>패턴</th><th>구현</th><th>컬럼</th><th>권장 TF</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>헤드앤숄더 / 역H&S</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_head_shoulders</code>, <code>ga_pattern_inv_head_shoulders</code></td><td>60분~일봉</td></tr>
|
||||
<tr><td>쌍봉 / 쌍바닥</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_double_top</code>, <code>ga_pattern_double_bottom</code></td><td>30분~일봉</td></tr>
|
||||
<tr><td>트리플 탑/바닼</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_triple_top</code>, <code>ga_pattern_triple_bottom</code></td><td>60분~일봉</td></tr>
|
||||
<tr><td>V자 반등 / 스파이크</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_v_bottom</code>, <code>ga_pattern_spike_top</code></td><td>5~60분</td></tr>
|
||||
<tr><td>둥근 천장/바닼</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_rounding_top</code>, <code>ga_pattern_rounding_bottom</code></td><td>일봉</td></tr>
|
||||
<tr><td>플래티어 (Rectangle)</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_rectangle</code></td><td>15분~240분</td></tr>
|
||||
<tr><td>갭 / 아일랜드</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_gap_up/down</code>, <code>ga_pattern_island_top/bottom</code></td><td>60분~일봉</td></tr>
|
||||
<tr><td>키리스톤 / 역키리스톤</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_keystone_bull</code>, <code>ga_pattern_keystone_bear</code></td><td>30분~일봉</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>4.2 지속 패턴</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>패턴</th><th>구현</th><th>컬럼</th><th>권장 TF</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>삼각수렴 (대칭/상승/하락)</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_triangle_sym/asc/desc</code></td><td>15분~240분</td></tr>
|
||||
<tr><td>깃발 / 페넌트</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_flag_bull</code>, <code>ga_pattern_flag_bear</code></td><td>5~60분</td></tr>
|
||||
<tr><td>웨지</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_wedge_rising</code>, <code>ga_pattern_wedge_falling</code></td><td>15분~60분</td></tr>
|
||||
<tr><td>채널</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_channel_up</code>, <code>ga_pattern_channel_down</code></td><td>전 TF</td></tr>
|
||||
<tr><td>박스권 + BB 스퀴즈</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_rectangle</code>, <code>ga_bb_squeeze</code></td><td>5~60분</td></tr>
|
||||
<tr><td>컵앤핸들</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_cup_handle</code></td><td>일봉</td></tr>
|
||||
<tr><td>측정된 움직임</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_measured_move</code></td><td>30분~일봉</td></tr>
|
||||
<tr><td>패턴 요약 라벨</td><td><span class="tag done">완료</span></td><td><code>ga_pattern_label</code></td><td>전 TF</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>4.3 캔들 패턴</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>패턴</th><th>구현</th><th>컬럼</th><th>권장 TF</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>해머 / 유성 / 도지</td><td><span class="tag done">완료</span></td><td><code>ga_hammer</code>, <code>ga_shooting_star</code>, <code>ga_doji</code> + <code>candle_features</code></td><td>3~60분</td></tr>
|
||||
<tr><td>장악형</td><td><span class="tag done">완료</span></td><td><code>ga_bullish_engulfing</code>, <code>ga_bearish_engulfing</code></td><td>5~60분</td></tr>
|
||||
<tr><td>샛별형</td><td><span class="tag done">완료</span></td><td><code>ga_morning_star</code>, <code>ga_evening_star</code></td><td>15분~일봉</td></tr>
|
||||
<tr><td>삼병 / 삼까마귀</td><td><span class="tag done">완료</span></td><td><code>ga_three_white_soldiers</code>, <code>ga_three_black_crows</code></td><td>15분~60분</td></tr>
|
||||
<tr><td>피보나치 되돌림 근접</td><td><span class="tag done">완료</span></td><td><code>ga_fib_near_level</code></td><td>30분~일봉</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>5. 기술적 지표 (Technical Indicators)</h2>
|
||||
<p>전 봉 시계열 컬럼. 레거시: <code>RSI</code>, <code>bb_pos</code>, <code>macd_*</code>, <code>stoch_*</code> 등.</p>
|
||||
|
||||
<h3>5.1 추세</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>지표</th><th>구현</th><th>컬럼</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>SMA / EMA / 골든·데드크로스</td><td><span class="tag done">완료</span></td><td><code>ga_sma_*</code>, <code>ga_golden_cross</code>, <code>ga_death_cross</code></td></tr>
|
||||
<tr><td>MACD</td><td><span class="tag done">완료</span></td><td><code>macd_line</code>, <code>macd_signal</code>, <code>macd_hist</code></td></tr>
|
||||
<tr><td>이격도</td><td><span class="tag done">완료</span></td><td><code>indicators</code> DI 5/20/60</td></tr>
|
||||
<tr><td>ADX (+DI/-DI)</td><td><span class="tag done">완료</span></td><td><code>ga_adx_14</code>, <code>ga_plus_di</code>, <code>ga_minus_di</code></td></tr>
|
||||
<tr><td>Parabolic SAR</td><td><span class="tag done">완료</span></td><td><code>ga_psar</code>, <code>ga_psar_bull</code>, <code>ga_psar_flip_bull/bear</code></td></tr>
|
||||
<tr><td>Ichimoku</td><td><span class="tag done">완료</span></td><td><code>indicators</code> + <code>ga_ichi_trend</code></td></tr>
|
||||
<tr><td>Linear Regression</td><td><span class="tag done">완료</span></td><td><code>ga_linreg_slope_20</code>, <code>ga_linreg_r2_20</code></td></tr>
|
||||
<tr><td>VWAP</td><td><span class="tag done">완료</span></td><td><code>ga_vwap</code>, <code>ga_close_vs_vwap_pct</code> (누적 VWAP)</td></tr>
|
||||
<tr><td>Supertrend</td><td><span class="tag done">완료</span></td><td><code>ga_supertrend_bull</code></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>5.2 모멘텀</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>지표</th><th>구현</th><th>컬럼</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>RSI</td><td><span class="tag done">완료</span></td><td><code>RSI</code>, <code>ga_rsi_delta_1</code></td></tr>
|
||||
<tr><td>스토캐스틱</td><td><span class="tag done">완료</span></td><td><code>stoch_k</code>, <code>stoch_d</code>, <code>ga_stoch_k_delta_1</code></td></tr>
|
||||
<tr><td>CCI</td><td><span class="tag done">완료</span></td><td><code>ga_cci_20</code>, <code>ga_cci_oversold/overbought</code></td></tr>
|
||||
<tr><td>Williams %R</td><td><span class="tag done">완료</span></td><td><code>ga_williams_r</code>, <code>ga_williams_oversold/overbought</code></td></tr>
|
||||
<tr><td>ROC</td><td><span class="tag done">완료</span></td><td><code>ga_roc_10</code></td></tr>
|
||||
<tr><td>MFI</td><td><span class="tag done">완료</span></td><td><code>ga_mfi_14</code></td></tr>
|
||||
<tr><td>Awesome Oscillator</td><td><span class="tag done">완료</span></td><td><code>ga_ao</code>, <code>ga_ao_bull</code>, <code>ga_ao_bear</code></td></tr>
|
||||
<tr><td>RSI / MACD / Stoch 다이버전스</td><td><span class="tag done">완료</span></td><td><code>ga_rsi_*_div</code>, <code>ga_macd_*_div</code>, <code>ga_stoch_*_div</code></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>5.3 변동성</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>지표</th><th>구현</th><th>컬럼</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>볼린저 밴드</td><td><span class="tag done">완료</span></td><td><code>bb_pos</code>, <code>ga_bb_width_pct</code>, zone (<code>candle_features</code>)</td></tr>
|
||||
<tr><td>ATR</td><td><span class="tag done">완료</span></td><td><code>ga_atr_14</code>, <code>ga_atr_pct</code></td></tr>
|
||||
<tr><td>Keltner Channel</td><td><span class="tag done">완료</span></td><td><code>ga_keltner_mid/upper/lower</code>, <code>ga_keltner_pos</code></td></tr>
|
||||
<tr><td>Donchian Channel</td><td><span class="tag done">완료</span></td><td><code>ga_donchian_pos</code></td></tr>
|
||||
<tr><td>Historical Volatility</td><td><span class="tag done">완료</span></td><td><code>ga_hv_20</code>, <code>ga_hv_percentile</code></td></tr>
|
||||
<tr><td>BB Squeeze</td><td><span class="tag done">완료</span></td><td><code>ga_bb_squeeze</code></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>5.4 거래량</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>지표</th><th>구현</th><th>컬럼</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>OBV + 다이버전스</td><td><span class="tag done">완료</span></td><td><code>ga_obv</code>, <code>ga_obv_slope_10</code>, <code>ga_obv_*_div</code></td></tr>
|
||||
<tr><td>Volume MA ratio</td><td><span class="tag done">완료</span></td><td><code>ga_vol_ratio</code>, <code>ga_vol_ma20</code></td></tr>
|
||||
<tr><td>VWAP deviation</td><td><span class="tag done">완료</span></td><td><code>ga_close_vs_vwap_pct</code></td></tr>
|
||||
<tr><td>Accumulation/Distribution</td><td><span class="tag done">완료</span></td><td><code>ga_ad_line</code>, <code>ga_ad_slope_10</code></td></tr>
|
||||
<tr><td>Chaikin Money Flow</td><td><span class="tag done">완료</span></td><td><code>ga_cmf_20</code></td></tr>
|
||||
<tr><td>Volume Profile</td><td><span class="tag done">완료</span></td><td><code>ga_vp_poc</code>, <code>ga_vp_vah</code>, <code>ga_vp_val</code>, <code>ga_vp_in_value_area</code></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>6. 파동·시장 구조</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>이론</th><th>구현</th><th>컬럼</th><th>비고</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>다우 이론 (HH/HL/LH/LL)</td><td><span class="tag done">완료</span></td><td><code>ga_struct_*</code></td><td>피벗 기반</td></tr>
|
||||
<tr><td>시장 구조 (BOS/CHoCH)</td><td><span class="tag done">완료</span></td><td><code>ga_struct_bos_*</code>, <code>ga_struct_choch</code></td><td></td></tr>
|
||||
<tr><td>엘리어트 파동</td><td><span class="tag done">완료</span></td><td><code>ga_elliott_wave_count</code>, <code>ga_elliott_phase</code></td><td>라이트(스윙 수·단계)</td></tr>
|
||||
<tr><td>Wyckoff</td><td><span class="tag done">완료</span></td><td><code>ga_wyckoff_phase</code>, <code>ga_wyckoff_spring</code>, <code>ga_wyckoff_utad</code></td><td>accumulation/distribution + spring/UTAD</td></tr>
|
||||
<tr><td>일목 (구름)</td><td><span class="tag done">완료</span></td><td><code>ga_ichi_trend</code></td><td></td></tr>
|
||||
<tr><td>피보나치</td><td><span class="tag done">완료</span></td><td><code>ga_fib_near_level</code></td><td>0/382/500/618/100/1618</td></tr>
|
||||
<tr><td>하모닉 (Gartley/Bat)</td><td><span class="tag done">완료</span></td><td><code>ga_harmonic_gartley</code>, <code>ga_harmonic_bat</code>, <code>ga_harmonic_label</code></td><td>5피벗 비율</td></tr>
|
||||
<tr><td>앤더류 피치포크</td><td><span class="tag done">완료</span></td><td><code>ga_pitchfork_bias</code>, <code>ga_pitchfork_dist_pct</code></td><td>3피벗 중앙선</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>7. MTF 합성</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>방법</th><th>구현</th><th>컬럼 / 함수</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>TF 가중 투표</td><td><span class="tag done">완료</span></td><td><code>general_analysis_mtf_vote_latest()</code> → <code>ga_vote_timing_buy/sell</code>, <code>ga_vote_trend_score</code></td></tr>
|
||||
<tr><td>정렬 점수 (RSI)</td><td><span class="tag done">완료</span></td><td><code>ga_align_timing_buy_score</code>, <code>ga_align_timing_sell_score</code></td></tr>
|
||||
<tr><td>상위 TF 추세 필터</td><td><span class="tag done">완료</span></td><td><code>ga_align_trend_score</code>, TF별 <code>ga_struct_trend</code></td></tr>
|
||||
<tr><td>MTF 충돌 태그</td><td><span class="tag done">완료</span></td><td><code>ga_align_mtf_conflict</code></td></tr>
|
||||
<tr><td>봉 간 Δ (T vs T-1)</td><td><span class="tag done">완료</span></td><td><code>ga_rsi_delta_1</code>, <code>ga_macd_hist_delta_1</code>, <code>ga_stoch_k_delta_1</code></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>8. 구현 단계 (현황)</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>단계</th><th>내용</th><th>산출물</th><th>구현</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>P0</td><td>8TF 봉 enrich + latest CSV</td><td><code>docs/03_analysis/latest/*_latest.csv</code></td><td><span class="tag done">완료</span></td></tr>
|
||||
<tr><td>P1</td><td>기법 점검 HTML</td><td><code>docs/03_analysis/general_analysis_capability.html</code></td><td><span class="tag done">완료</span></td></tr>
|
||||
<tr><td>P2</td><td>전 지표·거래량·변동성</td><td><code>general_analysis_indicators.py</code></td><td><span class="tag done">완료</span></td></tr>
|
||||
<tr><td>P3</td><td>전 패턴·캔들</td><td><code>general_analysis_patterns.py</code>, <code>candles.py</code></td><td><span class="tag done">완료</span></td></tr>
|
||||
<tr><td>P4</td><td>파동·VP·하모닉·MTF</td><td><code>wave</code>, <code>volume</code>, <code>harmonic</code>, <code>align</code></td><td><span class="tag done">완료</span></td></tr>
|
||||
<tr><td>P5</td><td>GT 타점 wide CSV (03b)</td><td><code>docs/03_analysis/general_analysis_trades.csv</code></td><td><span class="tag partial">구현완료·전량재실행</span></td></tr>
|
||||
<tr><td>P6</td><td>8TF Plotly 타일 · 타점 미니차트</td><td><code>trade_detail.html</code></td><td><span class="tag todo">미구현</span></td></tr>
|
||||
<tr><td>—</td><td>04 규칙 매칭 · 05 1분 운영</td><td><code>scripts/04_match_rules.py</code>, <code>05_run_monitor.py</code></td><td><span class="tag todo">로드맵 예정</span></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>9. 코드베이스 매핑</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>모듈</th><th>역할</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td><code>general_analysis_enrich_runner.py</code></td><td>8TF enrich 로직 · CLI: <code>scripts/03_analyze_enrich.py</code></td></tr>
|
||||
<tr><td><code>general_analysis_pipeline.py</code></td><td><code>enrich_bars</code>, <code>snapshot_at_bar</code></td></tr>
|
||||
<tr><td><code>general_analysis_indicators.py</code></td><td>추세·모멘텀·변동성·거래량·SAR·Keltner·AO·HV·Δ</td></tr>
|
||||
<tr><td><code>general_analysis_candles.py</code></td><td>Heikin-Ashi, 단일·복수 봉 패턴</td></tr>
|
||||
<tr><td><code>general_analysis_chart.py</code></td><td>Renko, P&F, 선·바 파생</td></tr>
|
||||
<tr><td><code>general_analysis_patterns.py</code></td><td>반전·지속 패턴 + 롤링 적용</td></tr>
|
||||
<tr><td><code>general_analysis_wave.py</code></td><td>구조·엘리어트·Wyckoff·피보나치·피치포크</td></tr>
|
||||
<tr><td><code>general_analysis_volume.py</code></td><td>Volume Profile POC/VAH/VAL</td></tr>
|
||||
<tr><td><code>general_analysis_harmonic.py</code></td><td>Gartley, Bat</td></tr>
|
||||
<tr><td><code>general_analysis_context.py</code></td><td>lookback 롤링 일괄 (patterns/wave/vp/harmonic)</td></tr>
|
||||
<tr><td><code>general_analysis_align.py</code></td><td><code>ga_align_*</code>, <code>ga_vote_*</code></td></tr>
|
||||
<tr><td><code>general_analysis_runner.py</code></td><td>GT 타점 wide CSV · CLI: <code>scripts/03_analyze_trades.py</code></td></tr>
|
||||
<tr><td><code>indicators.py</code> / <code>candle_features.py</code></td><td>BB, 일목, RSI, MACD, Stoch, 이격도, zone</td></tr>
|
||||
<tr><td><code>scripts/05_chart_*.py</code></td><td>3분 6패널 · ground truth 차트</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>10. 구현 집계</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>구분</th><th>완료</th><th>부분 (UI만)</th><th>미구현</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr><td>차트 분석 (§3)</td><td>7</td><td>2 (선·바 Plotly)</td><td>1 (MTF 타일)</td></tr>
|
||||
<tr><td>반전 패턴 (§4.1)</td><td>8</td><td>0</td><td>0</td></tr>
|
||||
<tr><td>지속 패턴 (§4.2)</td><td>8</td><td>0</td><td>0</td></tr>
|
||||
<tr><td>캔들 패턴 (§4.3)</td><td>5</td><td>0</td><td>0</td></tr>
|
||||
<tr><td>추세 지표 (§5.1)</td><td>9</td><td>0</td><td>0</td></tr>
|
||||
<tr><td>모멘텀 (§5.2)</td><td>8</td><td>0</td><td>0</td></tr>
|
||||
<tr><td>변동성 (§5.3)</td><td>6</td><td>0</td><td>0</td></tr>
|
||||
<tr><td>거래량 (§5.4)</td><td>6</td><td>0</td><td>0</td></tr>
|
||||
<tr><td>파동·구조 (§6)</td><td>8</td><td>0</td><td>0</td></tr>
|
||||
<tr><td>MTF 합성 (§7)</td><td>5</td><td>0</td><td>0</td></tr>
|
||||
<tr><td><strong>합계</strong></td><td><strong>70</strong></td><td><strong>2</strong></td><td><strong>1</strong></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="meta">「부분」= CSV 수치는 있으나 전용 Plotly UI 없음. P5 「구현완료·전량재실행」= 코드·CLI 준비됨, GT 450건 전체 wide CSV는 <code>03_analyze_trades.py</code>를 <code>--limit</code> 없이 실행해 갱신.</p>
|
||||
|
||||
<p class="meta" style="margin-top: 40px;">
|
||||
문서 버전: 2026-05-30 (프로젝트 구조·CLI 동기화) · DeepCoin / WLD ·
|
||||
<code>docs/reference/trade_anaysis.html</code> ·
|
||||
DB: <code>data/coins.db</code> · GT: <code>data/ground_truth/ground_truth_trades.json</code> ·
|
||||
enrich: <code>python scripts/03_analyze_enrich.py</code> ·
|
||||
타점: <code>python scripts/03_analyze_trades.py</code> ·
|
||||
약 247컬럼/TF · tail 기본 200봉 ·
|
||||
UI 미구현: MTF 타일 Plotly, <code>trade_detail.html</code> ·
|
||||
다음: 04 매칭, 05 운영 — <code>docs/reference/ROADMAP.md</code>
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user