Giao dịch tài chính với bt

Giao dịch Tài chính với Python

Chelsea Yang

Data Science Instructor

Gói bt

Một khung linh hoạt để định nghĩa và backtest chiến lược giao dịch

  • Chiến lược: phương pháp mua bán tài sản tài chính theo quy tắc định sẵn
  • Backtest chiến lược: đánh giá hiệu quả bằng cách thử trên dữ liệu lịch sử
import bt
Giao dịch Tài chính với Python

Quy trình bt

  • Bước 1: Lấy dữ liệu giá lịch sử
  • Bước 2: Định nghĩa chiến lược
  • Bước 3: Backtest chiến lược với dữ liệu
  • Bước 4: Đánh giá kết quả
Giao dịch Tài chính với Python

Lấy dữ liệu

# 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
Giao dịch Tài chính với Python

Định nghĩa chiến lược

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

[bt.algos.RunWeekly(), # Run weekly
bt.algos.SelectAll(), # Use all data
bt.algos.WeighEqually(), # Maintain equal weights
bt.algos.Rebalance()]) # Rebalance
Giao dịch Tài chính với Python

Backtest

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

# Run the backtest bt_res = bt.run(bt_test)
Giao dịch Tài chính với Python

Đánh giá kết quả

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

Biểu đồ kết quả backtest

# Get trade details
bt_res.get_transactions()

Hiển thị danh sách giao dịch

Giao dịch Tài chính với Python

Ayo berlatih!

Giao dịch Tài chính với Python

Preparing Video For Download...