【backtrader】トレード情報を表示する
Quickstart通りに進めていくことで特に問題もなくプロットするところまでたどり着けました。
プログラムを動かすことで最終的にこんなグラフが描写されます。
プロットは、
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
公式ページ | |
python ver | Python 2.7 |
サンプルコード | SMA Crossover |
bt - Backtesting for Python
公式ページ | |
python ver | Python 2.7 |
サンプルコード | SMA Crossover |
Backtrader
公式ページ | |
python ver | Python 2.x/3.x |
サンプルコード | SMA Crossover |
pysystemtrade
公式ページ | |
python ver | Python 3.x |
サンプルコード |
Zipline
公式ページ | |
python ver | Python 2.7/3.4/3.5 |
サンプルコード | Dual Moving Average Cross-Over |
quantopianのスタンドアローンバージョン
QSTrader
公式ページ | |
python ver | Python 2.x/3.x |
サンプルコード | SMA Crossover |
使用するフレームワークを選ぶ
動かすまでが一苦労です。それぞれのフレームワークに合った環境構築ができていないと動かないのでノンプログラマーの私には大変でした。ドキュメントが比較的充実していて動作確認まで最初にたどり着けたBacktraderをこのブログでは扱っていきたいと思います。