276 lines
11 KiB
Markdown
276 lines
11 KiB
Markdown
# Plan: ICT Crypto Trading Bot
|
|
|
|
> **Feature**: ict-crypto-bot
|
|
> **Created**: 2026-03-17
|
|
> **Phase**: Plan
|
|
> **Level**: Dynamic
|
|
|
|
---
|
|
|
|
## 1. Overview
|
|
|
|
ICT(Inner Circle Trader) Smart Money Concepts 기반의 크립토 자동매매 봇을 개발한다.
|
|
기관 트레이더의 행동 패턴을 알고리즘으로 구현하여, Order Block / Fair Value Gap / Market Structure Shift 등의 신호를 자동 탐지하고 매수/매도를 실행하는 시스템.
|
|
|
|
---
|
|
|
|
## 2. Problem Statement
|
|
|
|
| 문제 | 설명 |
|
|
|------|------|
|
|
| 24/7 시장 모니터링 불가 | 크립토 시장은 24시간 운영, 사람이 지속 감시 불가 |
|
|
| 감정적 매매 | 공포/탐욕에 의한 비합리적 의사결정 |
|
|
| 기관 움직임 포착 어려움 | ICT 신호를 실시간 수동 분석하는 것은 비현실적 |
|
|
| 진입/청산 타이밍 | 밀리초 단위의 정확한 실행 필요 |
|
|
|
|
---
|
|
|
|
## 3. Goals & Success Criteria
|
|
|
|
### 3.1 Primary Goals
|
|
|
|
1. **ICT 전략 자동화**: Order Block, FVG, BOS/CHOCH, Liquidity Sweep 자동 탐지
|
|
2. **자동 매수/매도**: 신호 발생 시 설정된 규칙에 따라 자동 주문 실행
|
|
3. **리스크 관리**: 포지션 사이징, Stop-Loss, Take-Profit 자동 관리
|
|
4. **백테스트**: 과거 데이터로 전략 검증 후 실전 투입
|
|
|
|
### 3.2 Success Criteria
|
|
|
|
| 지표 | 목표 |
|
|
|------|------|
|
|
| 백테스트 승률 | >= 60% |
|
|
| 리스크/리워드 비율 | >= 1:2 |
|
|
| 최대 낙폭 (Max Drawdown) | <= 15% |
|
|
| 시스템 가동률 | >= 99% (24/7) |
|
|
| 주문 실행 지연 | <= 500ms |
|
|
|
|
---
|
|
|
|
## 4. Core Features
|
|
|
|
### 4.1 ICT 지표 엔진
|
|
|
|
| 지표 | 설명 | 활용 |
|
|
|------|------|------|
|
|
| **Order Block (OB)** | 기관 주문 집중 캔들 존 탐지 | 매수/매도 진입 포인트 |
|
|
| **Fair Value Gap (FVG)** | 급격한 가격 이동 후 갭 탐지 | 가격 회귀 매매 신호 |
|
|
| **Break of Structure (BOS)** | 기존 고점/저점 돌파 감지 | 추세 지속 확인 |
|
|
| **Change of Character (CHOCH)** | 시장 성격 변화 감지 | 추세 반전 신호 |
|
|
| **Liquidity Sweep** | 스탑로스 사냥 후 반전 패턴 | 가짜 돌파 필터링 |
|
|
| **Market Structure Shift** | 고점/저점 패턴 변화 | 매수↔매도 전환 판단 |
|
|
|
|
### 4.2 매매 실행 시스템
|
|
|
|
- **멀티 거래소 지원**: Binance, Bybit, OKX (CCXT 통합)
|
|
- **주문 유형**: Market, Limit, Stop-Limit
|
|
- **포지션 관리**: 분할 진입/청산, 트레일링 스탑
|
|
- **실시간 데이터**: WebSocket 기반 실시간 캔들/호가 수신
|
|
|
|
### 4.3 리스크 관리 모듈
|
|
|
|
- 계좌 대비 포지션 사이징 (1~5% per trade)
|
|
- 자동 Stop-Loss / Take-Profit 설정
|
|
- 일일 최대 손실 한도 (Daily Max Loss)
|
|
- 동시 포지션 수 제한
|
|
- Drawdown 기반 자동 정지
|
|
|
|
### 4.4 백테스트 & 시뮬레이션
|
|
|
|
- 과거 OHLCV 데이터 기반 전략 검증
|
|
- 수수료/슬리피지 반영
|
|
- 성과 리포트 (승률, PnL, Sharpe Ratio, Max Drawdown)
|
|
- Paper Trading (모의 거래) 모드
|
|
|
|
### 4.5 모니터링 & 알림
|
|
|
|
- 실시간 대시보드 (포지션, PnL, 신호)
|
|
- Telegram/Discord 알림 (매매 체결, 신호 발생, 에러)
|
|
- 로그 시스템 (모든 매매 기록 저장)
|
|
|
|
---
|
|
|
|
## 5. Technical Stack
|
|
|
|
| 구성요소 | 기술 | 선택 이유 |
|
|
|----------|------|-----------|
|
|
| **언어** | Python 3.11+ | 풍부한 금융 라이브러리 생태계 |
|
|
| **ICT 지표** | smart-money-concepts (pip) | ICT 전략 구현 검증된 오픈소스 |
|
|
| **거래소 API** | CCXT / CCXT Pro | 100+ 거래소 통합, WebSocket 지원 |
|
|
| **데이터 처리** | Pandas, NumPy | 시계열 데이터 분석 |
|
|
| **백테스트** | Freqtrade / Backtrader | 내장 백테스트 + 라이브 트레이딩 |
|
|
| **스케줄링** | APScheduler | 주기적 분석 실행 |
|
|
| **DB** | SQLite → PostgreSQL | 매매 기록, 성과 데이터 저장 |
|
|
| **알림** | python-telegram-bot | 실시간 매매 알림 |
|
|
| **모니터링** | Streamlit | 빠른 대시보드 구축 |
|
|
|
|
---
|
|
|
|
## 6. Architecture Overview
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────┐
|
|
│ ICT Crypto Bot │
|
|
├─────────────────────────────────────────────────────────┤
|
|
│ │
|
|
│ ┌──────────┐ ┌──────────────┐ ┌────────────────┐ │
|
|
│ │ Data Feed │──▶│ ICT Indicator│──▶│ Signal Engine │ │
|
|
│ │ (CCXT Pro)│ │ Engine │ │ (Buy/Sell) │ │
|
|
│ └──────────┘ └──────────────┘ └───────┬────────┘ │
|
|
│ │ │
|
|
│ ┌──────────┐ ┌──────────────┐ ┌───────▼────────┐ │
|
|
│ │ Risk Mgmt│◀──│ Position Mgr │◀──│ Order Executor │ │
|
|
│ │ Module │──▶│ │──▶│ (CCXT) │ │
|
|
│ └──────────┘ └──────────────┘ └────────────────┘ │
|
|
│ │
|
|
│ ┌──────────┐ ┌──────────────┐ ┌────────────────┐ │
|
|
│ │ Backtest │ │ Dashboard │ │ Notification │ │
|
|
│ │ Engine │ │ (Streamlit) │ │ (Telegram) │ │
|
|
│ └──────────┘ └──────────────┘ └────────────────┘ │
|
|
│ │
|
|
│ ┌──────────────────────────────────────────────────┐ │
|
|
│ │ Database (SQLite/PostgreSQL) │ │
|
|
│ └──────────────────────────────────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 7. Trading Strategy Detail
|
|
|
|
### 7.1 Entry Rules (매수 진입 조건)
|
|
|
|
**Bullish Entry (롱)**:
|
|
1. Market Structure: Higher Highs & Higher Lows 확인
|
|
2. Liquidity Sweep: 이전 저점 스윕 후 반등
|
|
3. Order Block: Bullish OB 존에 가격 진입
|
|
4. FVG: Bullish FVG에서 가격 회귀
|
|
5. BOS: 상방 구조 돌파 확인
|
|
6. **3개 이상 조건 충족 시 매수 신호 발생**
|
|
|
|
**Bearish Entry (숏)**:
|
|
1. Market Structure: Lower Highs & Lower Lows 확인
|
|
2. Liquidity Sweep: 이전 고점 스윕 후 하락
|
|
3. Order Block: Bearish OB 존에 가격 진입
|
|
4. FVG: Bearish FVG에서 가격 회귀
|
|
5. CHOCH: 하방 성격 변화 확인
|
|
6. **3개 이상 조건 충족 시 매도 신호 발생**
|
|
|
|
### 7.2 Exit Rules (청산 조건)
|
|
|
|
| 조건 | 설명 |
|
|
|------|------|
|
|
| Take-Profit | 반대편 OB 또는 FVG 도달 |
|
|
| Stop-Loss | OB 너머 또는 최근 스윙 고/저점 |
|
|
| Trailing Stop | 수익 구간 진입 후 동적 추적 |
|
|
| Time Exit | 일정 시간 경과 후 무반응 시 청산 |
|
|
| CHOCH Exit | 보유 방향 반대로 CHOCH 발생 시 즉시 청산 |
|
|
|
|
### 7.3 Timeframe Strategy
|
|
|
|
| Timeframe | 용도 |
|
|
|-----------|------|
|
|
| **4H / 1D** | 전체 시장 방향 (HTF Bias) |
|
|
| **1H** | 구조 분석 + OB/FVG 탐지 |
|
|
| **15M / 5M** | 정밀 진입 타이밍 |
|
|
|
|
---
|
|
|
|
## 8. Target Markets
|
|
|
|
### Phase 1 (MVP)
|
|
- **BTC/USDT** - 유동성 최고, 가장 안정적
|
|
- **ETH/USDT** - 두 번째 유동성
|
|
|
|
### Phase 2 (확장)
|
|
- SOL/USDT, BNB/USDT
|
|
- 주요 알트코인 (시총 Top 20)
|
|
|
|
### Phase 3 (고급)
|
|
- 밈코인 스나이핑 (선택적)
|
|
- 크로스 거래소 차익거래
|
|
|
|
---
|
|
|
|
## 9. Risk Assessment
|
|
|
|
| 리스크 | 영향도 | 대응 |
|
|
|--------|--------|------|
|
|
| 거래소 API 장애 | 높음 | 멀티 거래소 페일오버 |
|
|
| 급격한 변동성 | 높음 | 일일 최대 손실 한도 + 자동 정지 |
|
|
| 슬리피지 | 중간 | Limit 주문 우선, 슬리피지 한도 설정 |
|
|
| 전략 과최적화 | 중간 | Walk-forward 분석, Out-of-sample 검증 |
|
|
| API Key 유출 | 높음 | 환경변수 관리, IP 화이트리스트 |
|
|
| 거래소 규제 변경 | 중간 | 멀티 거래소 지원, 규제 모니터링 |
|
|
|
|
---
|
|
|
|
## 10. Implementation Phases
|
|
|
|
### Phase 1: Foundation (1~2주)
|
|
- [ ] 프로젝트 구조 설정
|
|
- [ ] CCXT 거래소 연동 (Binance)
|
|
- [ ] OHLCV 데이터 수집 모듈
|
|
- [ ] smart-money-concepts 통합
|
|
|
|
### Phase 2: Strategy Engine (2~3주)
|
|
- [ ] ICT 지표 엔진 구현 (OB, FVG, BOS, CHOCH, Liquidity)
|
|
- [ ] 멀티 타임프레임 분석
|
|
- [ ] 신호 생성 로직 (Entry/Exit Rules)
|
|
- [ ] 백테스트 엔진 구축
|
|
|
|
### Phase 3: Execution (1~2주)
|
|
- [ ] 주문 실행 모듈 (Market/Limit/Stop)
|
|
- [ ] 포지션 관리자
|
|
- [ ] 리스크 관리 모듈
|
|
- [ ] Paper Trading 모드
|
|
|
|
### Phase 4: Monitoring (1주)
|
|
- [ ] Telegram 알림 시스템
|
|
- [ ] Streamlit 대시보드
|
|
- [ ] 매매 기록 DB 저장
|
|
- [ ] 성과 리포트 생성
|
|
|
|
### Phase 5: Live Trading (지속)
|
|
- [ ] 샌드박스 실전 테스트
|
|
- [ ] 소액 실전 투입
|
|
- [ ] 성과 모니터링 & 전략 튜닝
|
|
- [ ] 추가 거래소/페어 확장
|
|
|
|
---
|
|
|
|
## 11. Open Source References
|
|
|
|
| Repository | 용도 |
|
|
|------------|------|
|
|
| [smart-money-concepts](https://github.com/joshyattridge/smart-money-concepts) | ICT 지표 라이브러리 |
|
|
| [smc_quant](https://github.com/starckyang/smc_quant) | SMC 기반 ETH 트레이딩 참조 |
|
|
| [Asian-Turtle-Soup-Bot](https://github.com/martin254/Asian-Turtle-Soup-Trading-Bot) | ICT Turtle Soup 전략 참조 |
|
|
| [CCXT](https://github.com/ccxt/ccxt) | 거래소 API 통합 |
|
|
| [Freqtrade](https://github.com/freqtrade/freqtrade) | 봇 프레임워크 참조 |
|
|
| [ICT-Risk-Management](https://github.com/LesterALeong/ICT-Risk-Management) | 리스크 관리 참조 |
|
|
|
|
---
|
|
|
|
## 12. Constraints & Assumptions
|
|
|
|
### Constraints
|
|
- 초기 운영 자본: $500~$1,000 (소액 시작)
|
|
- 거래소: Binance 우선 (API 안정성)
|
|
- 레버리지: 최대 3x (보수적)
|
|
- 동시 포지션: 최대 3개
|
|
|
|
### Assumptions
|
|
- ICT 전략은 크립토 시장에서도 유효하다고 가정
|
|
- 거래소 API는 안정적으로 동작한다고 가정
|
|
- 네트워크 지연은 500ms 이내라고 가정
|
|
|
|
---
|
|
|
|
## 13. Out of Scope (v1.0)
|
|
|
|
- 고빈도 트레이딩 (HFT)
|
|
- MEV / Sandwich Attack
|
|
- DEX 온체인 트레이딩
|
|
- 소셜 시그널 기반 매매
|
|
- AI/ML 기반 예측 모델 (v2.0에서 검토)
|