sixqueens’s blog

コンピュータ、読書、語学学習、ゲーム、資産運用等に関する雑記を書きます。

Backtraderを用いて高速PDCAサイクルを回す為のTips

Backtrader のコードに 2 点の変更を加えた。

  1. backtrader_plotly の導入
  2. cerebro.optstrategy の採用

 

backtrader_plotly の導入

backtrader の plot 機能を使うことで、ストラテジーに従ってどこでアセットの購入を行い、どこで売却を行ったのかが記録された画像の出力が可能となる。

この画像は matplotlib で出力される静的な画像であることから、細かい部分が見づらいという課題が残る。

 

この課題に対して、backtrader_plotly の導入を行うことで、動的に拡大/縮小/範囲選択が出来るようにした。

 

 

以下は backtrader_plotly による出力サンプルだが、日足の情報や売買履歴の目視確認やコードのバグの修正が容易となった。

 

 

cerebro.optstrategy の採用

backtrader のストラテジーの実行を行う際に、optstrategy という関数がある。

これにパラメータの候補を渡すことで、各パラメータの組み合わせに応じたストラテジーが実行され、結果の比較を行うことが出来る。

 

短期の移動平均が、中期の移動平均を上回った時を買いとするストラテジーの採用を検討する際に、短期と中期として採用すべき期間にどの値を設定すればよいのか、といった疑問を持つだろう。

これに対する一つの回答が、短期には 3,4,5, … ,9,10 を、中期には 15,20, ... 45,50 をパラメータの候補として与え、短期と中期のパラメータの組み合わせ毎にストラテジーを実行し、この結果の比較を行うという方法となる。

 

scikit-learn のような機械学習のライブラリを使う方法もあるが、簡易的に試すだけであれば optstrategy で十分だと思う。

 

実行されたストラテジー毎に、以下の例のようなレポートも出力される為、自分の嗜好にあったストラテジーの模索が容易となった。

 

 

 

ストラテジーの立案、ストラテジーの実行、結果のレポートの確認、ストラテジーの改善の PDCA サイクルを回す為には、結果の可視化に力を入れるべきだと思う。