【backtrader】トレード情報を表示する


Quickstart通りに進めていくことで特に問題もなくプロットするところまでたどり着けました。

 

https://www.backtrader.com/docu/_images/quickstart101.png

 

プログラムを動かすことで最終的にこんなグラフが描写されます。

 

プロットは、

cerebro.plot()

 を記述するだけです。

 

 このグラフを見るとどこでエントリーしたのか、そのトレードが利益になったのかどうかといったことは分かるのですが、これらの情報を統計データとして確認したい。

 

簡単に表示できると思ったのですが、ちょっと手こずりました。

 

トレード情報を表示する

まず、cerebroにTradeAnalyzerを追加します。

# Add a analyzer
cerebro.addanalyzer(bt.analyzers.TradeAnalyzer, _name='myTrade')

こんな感じでprintします。

# Run over everything
    results = cerebro.run(stdstats=False)
    reselt = results[0]


    print(reselt.analyzers.myTrade.print())
  • total
  • streak
  • pnl
  • won
  • lost
  • long
  • short
  • len

といった情報を一覧表示することができます。

pythonバックテストフレームワーク

pythonのバックテストフレームワークについて調べていた時にこんな記事を見つけました。 

 

 

この記事では6つのフレームワークが取り上げられています。

 

  • PyAlgoTrade
  • bt - Backtesting for Python
  • Backtrader
  • pysystemtrade
  • Zipline
  • QSTrader

 

以下、2017年9月時点での情報です。

PyAlgoTrade

公式ページ

PyAlgoTrade - Algorithmic Trading

python ver Python 2.7
サンプルコード SMA Crossover

 

bt - Backtesting for Python

公式ページ

http://pmorissette.github.io/bt/

python ver Python 2.7
サンプルコード SMA Crossover

 

Backtrader

公式ページ

backtrader - Backtesting / Trading

python ver Python 2.x/3.x
サンプルコード SMA Crossover

 

pysystemtrade

公式ページ

https://github.com/robcarver17/pysystemtrade

python ver Python 3.x
サンプルコード  

この本の著者によるpythonバックテストフレームワーク

 

Zipline

公式ページ

http://www.zipline.io/

python ver Python 2.7/3.4/3.5
サンプルコード Dual Moving Average Cross-Over

quantopianのスタンドアローンバージョン

 

QSTrader

公式ページ

https://www.quantstart.com/qstrader

python ver Python 2.x/3.x
サンプルコード SMA Crossover

 

使用するフレームワークを選ぶ

動かすまでが一苦労です。それぞれのフレームワークに合った環境構築ができていないと動かないのでノンプログラマーの私には大変でした。ドキュメントが比較的充実していて動作確認まで最初にたどり着けたBacktraderをこのブログでは扱っていきたいと思います。