Skip to content

페이퍼 트레이딩

페이퍼 트레이딩은 실시간 시장 데이터를 사용하면서 실제 자금 없이 가상으로 거래를 체결하는 시뮬레이션 모드입니다. 전략의 유효성을 실시간 환경에서 검증할 수 있어 라이브 트레이딩 전 필수적인 단계입니다.

페이퍼 트레이딩이란?

  • 실시간 데이터: 거래소 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.yaml

Docker 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주 이상 페이퍼 트레이딩을 실행하여 전략의 안정성을 확인한 후 라이브 모드로 전환하세요. 다양한 시장 상황(횡보, 상승, 하락, 급등/급락)을 경험하는 것이 중요합니다.