Skip to content

백테스트

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 전환 전 검증

검증 순서

  1. 백테스트로 전략 파라미터 최적화
  2. Paper Trading으로 실시간 성과 확인 (최소 1~2주)
  3. 성과가 만족스러우면 Live Trading으로 전환

MIT License