bt로 금융 트레이딩

Python으로 배우는 금융 트레이딩

Chelsea Yang

Data Science Instructor

bt 패키지

트레이딩 전략 정의와 백테스트를 위한 유연한 프레임워크

  • 전략: 미리 정의한 규칙에 따라 금융자산을 매수·매도하는 방법
  • 전략 백테스트: 과거 데이터로 전략의 효과를 검증하는 방법
import bt
Python으로 배우는 금융 트레이딩

bt 프로세스

  • 1단계: 과거 가격 데이터 수집
  • 2단계: 전략 정의
  • 3단계: 데이터로 전략 백테스트
  • 4단계: 결과 평가
Python으로 배우는 금융 트레이딩

데이터 수집

# Download historical prices
bt_data = bt.get('goog, amzn, tsla', 
                 start='2020-6-1', end='2020-12-1')

print(bt_data.head())
                   goog         amzn        tsla
Date                                            
2020-06-01  1431.819946  2471.040039  179.619995
2020-06-02  1439.219971  2472.409912  176.311996
2020-06-03  1436.380005  2478.399902  176.591995
2020-06-04  1412.180054  2460.600098  172.876007
2020-06-05  1438.390015  2483.000000  177.132004
Python으로 배우는 금융 트레이딩

전략 정의

# Define the strategy
bt_strategy = bt.Strategy('Trade_Weekly',

[bt.algos.RunWeekly(), # 매주 실행
bt.algos.SelectAll(), # 전체 데이터 사용
bt.algos.WeighEqually(), # 동일 가중 유지
bt.algos.Rebalance()]) # 리밸런싱
Python으로 배우는 금융 트레이딩

백테스트

# Create a backtest
bt_test = bt.Backtest(bt_strategy, bt_data)

# Run the backtest bt_res = bt.run(bt_test)
Python으로 배우는 금융 트레이딩

결과 평가

# Plot the result
bt_res.plot(title="Backtest result")

백테스트 결과 플롯

# Get trade details
bt_res.get_transactions()

거래 내역 표시

Python으로 배우는 금융 트레이딩

연습해 봅시다!

Python으로 배우는 금융 트레이딩

Preparing Video For Download...