페이퍼 트레이딩
페이퍼 트레이딩은 실시간 시장 데이터를 사용하면서 실제 자금 없이 가상으로 거래를 체결하는 시뮬레이션 모드입니다. 전략의 유효성을 실시간 환경에서 검증할 수 있어 라이브 트레이딩 전 필수적인 단계입니다.
페이퍼 트레이딩이란?
- 실시간 데이터: 거래소 WebSocket을 통해 실제 오더북과 체결 데이터를 수신합니다
- 가상 체결: 실제 주문을 거래소에 전송하지 않고, 시뮬레이터가 오더북 기반으로 체결을 가상 처리합니다
- 리스크 제로: 실제 자금이 사용되지 않으므로 전략 검증에 안전합니다
- 실전과 동일한 로직: 기회 탐지, 리스크 체크, 주문 실행 파이프라인이 라이브 모드와 동일하게 동작합니다
설정 방법
configs/default.yaml 파일에서 실행 모드를 paper로 설정합니다:
yaml
system:
execution_mode: paper # backtest | paper | live
log_level: INFO
timezone: UTC거래소 및 심볼 설정
모니터링할 거래소와 심볼을 설정합니다:
yaml
exchanges:
enabled:
- binance
- okx
- bybit
- upbit
- kucoin
symbols:
- BTC/USDT
- ETH/USDT가상 포트폴리오 초기 설정
페이퍼 트레이딩 시작 시 각 거래소별 가상 잔고가 설정됩니다. 기본적으로 활성화된 거래소에 균등하게 자금이 배분됩니다.
TIP
risk.max_total_exposure_usd 값을 기준으로 초기 포트폴리오가 구성됩니다. 기본값은 100,000 USD입니다.
실행 방법
CLI로 실행
bash
# 기본 실행
arbot
# 또는 모듈로 직접 실행
python -m arbot.main
# 설정 파일 지정
arbot --config configs/default.yamlDocker Compose로 실행
bash
docker compose up arbot결과 확인
PnL 트래커
거래 실행 결과는 PostgreSQL의 trades 테이블과 daily_performance 테이블에 기록됩니다. 실행 모드가 PAPER로 표시되어 라이브 거래와 구분됩니다.
주요 확인 항목:
- 총 PnL: 누적 손익
- 일일 PnL: 일별 손익 추이
- 승률 (Win Rate): 수익 거래 비율
- Sharpe Ratio: 위험 대비 수익률
포지션 현황
portfolio_snapshots 테이블에서 거래소별, 자산별 포지션을 확인할 수 있습니다.
Grafana 대시보드
Prometheus 메트릭을 통해 Grafana에서 실시간 모니터링이 가능합니다:
- 거래소 연결 상태
- 시그널 탐지 수
- 체결 레이턴시
- PnL 추이 차트
페이퍼 vs 라이브 차이점
| 항목 | 페이퍼 트레이딩 | 라이브 트레이딩 |
|---|---|---|
| 시장 데이터 | 실시간 (동일) | 실시간 (동일) |
| 주문 체결 | 가상 시뮬레이션 | 거래소 실제 체결 |
| 슬리피지 | 시뮬레이션 추정값 | 실제 발생 |
| 시장 영향 | 없음 | 주문 크기에 따라 발생 |
| 자금 필요 | 불필요 | API 키 + 실제 자금 |
| 거래 수수료 | 시뮬레이션 | 실제 차감 |
| 출금/이체 | 시뮬레이션 | 실제 처리 |
주의사항
시뮬레이션 한계
페이퍼 트레이딩 결과가 실전 성과를 보장하지 않습니다. 다음 한계를 인지하세요:
- 슬리피지 시뮬레이션 한계: 실제 시장에서는 주문 크기에 따라 가격이 밀리지만, 시뮬레이터는 오더북 스냅샷 기반으로 근사치만 계산합니다
- 시장 영향 미반영: 실제 대량 주문은 가격에 영향을 주지만, 페이퍼 모드에서는 이를 반영하지 않습니다
- 체결 지연 미반영: 실제 주문은 네트워크 레이턴시와 거래소 처리 시간이 소요되지만, 시뮬레이터는 즉시 체결로 처리합니다
- 부분 체결 제한: 실전에서 발생하는 부분 체결(Partial Fill) 시나리오가 완벽히 재현되지 않을 수 있습니다
- 레이턴시 경쟁: 다른 트레이더와의 속도 경쟁이 반영되지 않습니다
권장사항
최소 2주 이상 페이퍼 트레이딩을 실행하여 전략의 안정성을 확인한 후 라이브 모드로 전환하세요. 다양한 시장 상황(횡보, 상승, 하락, 급등/급락)을 경험하는 것이 중요합니다.