백테스트 (BTC)
web/src/pages/Backtest.tsx 페이지로 들어가는 BTC 백테스트 화면입니다. 단일 폼으로 전략·심볼·기간·자본금·수수료를 골라 실행한 뒤, 동일 페이지에 결과 메트릭과 equity curve를 표시합니다.
Equity (US/KR 주식) 백테스트는 Equity → Backtest 탭에서 다룹니다.
📸 BTC 백테스트 페이지 (추후 자동 캡처 예정)
페이지 구조
<Backtest> 컴포넌트는 두 부분으로 나뉩니다.
| 영역 | 컴포넌트 | 역할 |
|---|---|---|
| 상단 | BacktestForm | 입력 폼 (전략 / 심볼 / 기간 / 자본 / 수수료) |
| 하단 | BacktestResultView | 실행 결과 메트릭 + equity curve |
useMutation으로 runBacktest API를 호출하며, 성공 시 result state에 저장돼 즉시 렌더링됩니다.
자식 페이지
- 백테스트 실행 — 입력 필드와 검증 규칙
- 결과 해석 — 메트릭 의미 (Total Return, Sharpe, Max DD, …)
- Walk-forward 검증 — 기간 분할 신뢰도 검증
- 자산군별 프로파일 —
binance_spot/alpaca_zero/kis_default
API 연동
| Method | Path | 호출 위치 |
|---|---|---|
| POST | /api/backtest/run | BacktestForm Submit |
(BTC) 응답 예시:
{
"total_return": 0.235,
"sharpe_ratio": 1.42,
"max_drawdown": -0.18,
"win_rate": 0.58,
"profit_factor": 1.7,
"total_trades": 87,
"equity_curve": [
{ "timestamp": "2024-01-01T00:00:00Z", "equity": 10000 },
{ "timestamp": "2024-01-02T00:00:00Z", "equity": 10125 }
]
}
실패 시 폼 위에 빨간 배너로 "Backtest failed. Please check your parameters and try again."가 표시됩니다.
자주 묻는 질문
Q. BTC 외 다른 코인은 어디에서?
A. BacktestForm의 Symbol 필드에서 ETH/USDT, SOL/USDT 등 CCXT 심볼을 직접 입력 가능합니다.
Q. 백테스트 결과가 너무 비현실적입니다.
A. 수수료(commission_profile)와 슬리피지가 누락됐을 가능성이 큽니다. 자산군별 프로파일 참고.