btで行う金融トレード

Pythonで学ぶ金融トレーディング

Chelsea Yang

Data Science Instructor

bt パッケージ

売買戦略を定義しバックテストするための柔軟なフレームワーク

  • 戦略: 事前定義のルールに基づく資産の売買手法
  • 戦略のバックテスト: 過去データで有効性を検証する方法
import bt
Pythonで学ぶ金融トレーディング

bt のプロセス

  • 手順1: 過去価格データを取得
  • 手順2: 戦略を定義
  • 手順3: データでバックテスト
  • 手順4: 結果を評価
Pythonで学ぶ金融トレーディング

データ取得

# 過去価格をダウンロード
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で学ぶ金融トレーディング

戦略を定義

# 戦略を定義
bt_strategy = bt.Strategy('Trade_Weekly',

[bt.algos.RunWeekly(), # 週次で実行
bt.algos.SelectAll(), # 全データを使用
bt.algos.WeighEqually(), # 等ウェイトを維持
bt.algos.Rebalance()]) # リバランス
Pythonで学ぶ金融トレーディング

バックテスト

# バックテストを作成
bt_test = bt.Backtest(bt_strategy, bt_data)

# バックテストを実行 bt_res = bt.run(bt_test)
Pythonで学ぶ金融トレーディング

結果を評価する

# 結果をプロット
bt_res.plot(title="Backtest result")

バックテスト結果のプロット

# 取引の詳細を取得
bt_res.get_transactions()

取引一覧を表示

Pythonで学ぶ金融トレーディング

Let's practice!

Pythonで学ぶ金融トレーディング

Preparing Video For Download...