본문으로 건너뛰기

백테스트 실행

web/src/components/backtest/BacktestForm.tsx의 입력 필드와 그 검증 규칙을 정리합니다.

📸 백테스트 실행 폼 (추후 자동 캡처 예정)

입력 필드

필드타입기본비고
Strategyselectmomentum활성화된 전략만 표시 (Settings → Strategies)
SymboltextBTC/USDTCCXT 심볼 표기 (/ 구분)
Timeframeselect1h5m / 15m / 1h / 4h / 1d
Start datedate1년 전ISO 형식
End datedate오늘ISO 형식
Initial capitalnumber10000USDT
Commission profileselectbinance_spot프로파일 가이드
Slippage (bps)number51bp = 0.01%

검증 규칙

폼은 다음을 검사합니다.

규칙위반 시
start_date < end_date빨간 헬프 텍스트
initial_capital > 0동일
데이터 가용성서버에서 422 반환 시 배너로 표시

심볼 자동완성은 BTC 백테스트 폼에는 없습니다 (Equity 폼에만 존재).

Run backtest 버튼

POST /api/backtest/run 호출:

curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
http://localhost:8000/api/backtest/run \
-d '{
"strategy": "momentum",
"symbol": "BTC/USDT",
"timeframe": "1h",
"start_date": "2024-01-01",
"end_date": "2025-01-01",
"initial_capital": 10000,
"commission_profile": "binance_spot",
"slippage_bps": 5
}'

처리 시간: 데이터 양에 비례 (1년치 1h: 약 5–15초).

진행 표시

mutation.isPending 동안 버튼은 "Running..." 텍스트로 비활성화됩니다. 결과가 도착하면 BacktestResultView가 자동으로 마운트됩니다.

자주 묻는 질문

Q. 너무 오래 걸려요.
A. timeframe을 1d로 낮추거나 기간을 줄여보세요. 5m × 5년 조합은 가급적 피하세요.

Q. 데이터 없음 에러가 나옵니다.
A. 해당 심볼/기간의 OHLCV가 DB에 없습니다. Data & Models → Coverage에서 적재 상태를 확인하세요.

Q. 결과가 0건 거래로 나옵니다.
A. 전략 파라미터 기본값과 기간이 안 맞을 가능성이 큽니다. timeframe / strategy 조합을 다시 검토하세요.

관련 페이지