백테스트
MoneyMax의 이벤트 기반 백테스트 엔진으로 전략을 과거 데이터에서 검증할 수 있습니다.
백테스트 실행
bash
# 특정 전략 백테스트
python scripts/run_backtest.py
# 파라미터 튜닝 (그리드 서치)
python scripts/tune_crypto.py # 크립토 전략
python scripts/tune_stocks.py # 주식 전략백테스트 엔진 구조
BacktestEngine
├── 과거 OHLCV 데이터 로드 (DataLoader)
├── 바(bar) 단위 시뮬레이션
│ ├── 기술 지표 계산
│ ├── 전략 평가 → 시그널
│ ├── 리스크 체크
│ ├── PaperTrader로 주문 시뮬레이션
│ └── 포지션 추적
└── 성과 리포트 생성 (BacktestReport)성과 지표
백테스트 리포트에 포함되는 지표:
| 지표 | 설명 |
|---|---|
| Total Return | 총 수익률 |
| Annualized Return | 연환산 수익률 |
| Sharpe Ratio | 위험 대비 수익 (1.0 이상 양호) |
| Max Drawdown (MDD) | 최대 낙폭 |
| Win Rate | 승률 (이익 거래 / 전체 거래) |
| Profit Factor | 총 이익 / 총 손실 |
| Trade Count | 총 거래 횟수 |
| Avg Hold Duration | 평균 보유 기간 |
파라미터 튜닝
그리드 서치를 통해 최적 파라미터 조합을 찾습니다:
bash
python scripts/tune_crypto.py튜닝 대상 파라미터 예시:
- RSI 과매도/과매수 임계값
- EMA 기간
- ADX 임계값
- 최소 신뢰도
- 지표별 가중치
결과는 Sharpe Ratio 기준으로 정렬되어 최적 파라미터 조합을 제안합니다.
Streamlit 대시보드
시각적 백테스트 분석을 위한 Streamlit 대시보드도 제공됩니다:
bash
# 대시보드 의존성 설치
pip install -e ".[dashboard]"
# 대시보드 실행
streamlit run scripts/run_dashboard.py대시보드 기능:
- 전략별 백테스트 결과 비교
- 수익률 곡선, 드로다운 차트
- 거래 히스토리 테이블
- Walk-Forward 분석
- 레짐(Regime) 분석
백테스트 vs Paper Trading
| 백테스트 | Paper Trading | |
|---|---|---|
| 데이터 | 과거 데이터 | 실시간 데이터 |
| 속도 | 수초~수분 | 실시간 |
| 슬리피지 | 없음 | 없음 |
| 용도 | 전략 검증, 파라미터 최적화 | 실시간 시뮬레이션, Live 전환 전 검증 |
검증 순서
- 백테스트로 전략 파라미터 최적화
- Paper Trading으로 실시간 성과 확인 (최소 1~2주)
- 성과가 만족스러우면 Live Trading으로 전환