PowerBIをバックテストに活用する。なかなかいい。

前回の記事で少し触れたが、今年は自動売買を再開しようと考えている。
調子の上がってきている裁量売買も継続し、二刀流で行く。
今年に入り、既にいくつかの自動売買用のロジックを新たに開発した。

今回のロジック開発において、「PowerBI」を試してみた。
このツール、なかなかいいので紹介しようと思う。

PowerBIはマイクロソフト社が提供するBI(ビジネス・インテリジェンス)ツール。

BIツールとは、
ざっくり言えば、
大量のデータの「見える化」を得意としたツールの総称。

ビジネス・インテリジェンスと名が付いているように、
企業経営の意思決定支援が主な用途。
意思決定のためには、様々な角度からデータ分析ができた方が良い。
それも、迅速に。

Excelでもデータの見える化機能として、
色々なグラフ機能やピボットテーブル(クロス集計)機能があるが、
PowerBIを試してみたところ、
データの見える化においては、
PowerBIの方がはるかに使い易い。

そう、PowerBIとは、
またまた、ざっくり言えば、
グラフ機能やクロス集計機能を、Excelよりもかなり使い易くしたものだ。

ちなみに、PowerBIは無料!
(有料版もあるが、無料版の「Power BI Desktop」で十分)
BIツールの存在は、以前から知っていたが、高価なものと思っていた。
まさか、無料で使えるとは・・・

このPowerBIをバックテスト時に活用してみた。

今回このツールを活用したのは、バックテストの中でも、
売買ロジックに用いるパラメータ値の最適な組み合わせを探索する局面。

パラメータ値の最適な組み合わせを探索する局面では、
遺伝的アルゴリズム(GA)を用いていることを以前紹介した。
(こちらの記事『売買ロジックの最適なパラメータをどうやって見つけるか?』)

売買ロジックを考案し、
バックテストプログラムを書き、
パラメータ値の探索範囲と刻み幅を決め、
GAにかけると、
様々なパラメータ値の組み合わせ(パラメータセット)での成績を評価し、
壮大な生き残り戦が繰り広げられ、
最終的に、生き残ったパラメータセットが準最適解。

この過程で、膨大な数の「淘汰されたパラメータセット」が発生している。

今までは、最終的に残った1組、あるいは、
成績上位グループのパラメータセットに注目していたが、
淘汰されたものも含めて見える化すれば、
何か見えてくるものがあるのでは?
と考えた。

例えば、
パラメータ値の探索範囲が適切であったのか?
や、
淘汰されたパラメータセットも比較的成績が良ければ、
そのロジックが持つポテンシャルは高いと判断できるのではないか?
何分足を使えば良さそうか?の判断にも使えるのではないか?
など。

そう、今まで捨てていた大量のデータの見える化だ。

下図がPowerBIの画面例。

PowerBIの画面は、最初は白紙の状態。
CSVファイルなどからデータを取り込み、
グラフや表を追加・配置していく。
大きさや場所はマウス操作で自由に設定できる。
表示スペースが足りないときは、
ページ(Excelの「シート」のようなもの)を増やせばよい。
Excelでのグラフやピボットテーブル作成よりも、
PowerBIの方がはるかに操作が簡単だ。

さて、上図は、ミニ60分足でのバックテスト結果。
GAが吐き出したバックテスト結果のCSVファイルをPowerBIに取り込んだ。
そして、このデータには淘汰されたパラメータセットも含まれており、26,777件ある。

売買ロジックは、買い専用で、
2本の移動平均線(MA)のゴールデンクロス、
かつ、フィルター条件クリアで買い。
2本のMA、ならびに、フィルターのパラメータの他に、
手じまいに関するパラメータがあり、
これらの組み合わせがパラメータセットとなる。

上段は、年率損益、年率RAR、最大DDの分布状況のグラフ。
(項目の定義はこちらの記事を参考に『バックテストでの確認項目は何か?そして、重視している項目は何か?』)
年率損益、年率RARは山のピークが右側にあるほど良い。
0より右側にピークがあるので、ポテンシャルの高いロジックと言えそうだ。
逆に、最大DDは山のピークが左側にあるほど(0に近いほど)良い。

中段の左端は、短期MA(MA_S)と長期MA(MA_L)のクロス集計表。
なお、
短期MAの探索範囲は、6~30で3刻み、
長期MAの探索範囲は、12~60で6刻み、
短期MA≧長期MAは除外、
でテストしている。
色の濃いところが成績の良い組み合わせ。
ちなみに、この色付けは4回のクリックで設定できる。
21-54の組み合わせを中心に、その近傍の色が濃いことが確認できる。
色の濃いところが隣接しているのは、いい傾向だ。
こういうことを簡単にビジュアルに確認できるのが良い。
次回は、この付近を重点的に(刻み幅を小さくとり)探索すれば良いことが読み取れる。

PowerBIの機能で秀逸なのが、グラフや表でデータの絞り込みが連動すること。
例えば、21-54のセルをクリックすると、他のグラフや表も連動し、
短期MA=21、長期MA=54に絞り込まれ、ハイライト表示される。
21-54の優位性が他のグラフでも確認できる。
下図。

この連動機能は、表のセルを選択したときに限らず、
グラフのデータ(棒グラフの棒など)を選択しても同様。
また、複数選択も可能(グラフが異なっていても良い)。
めちゃくちゃ便利な機能だ。

中段右側3つのグラフは、
利食い(TP)、ロスカット(LC)、トレール(TL)のパラメータ値と成績との関係。
棒が高いほど良い。
なお、TPとTLが0のケースは、「設定なし」を意味する。
(他の手じまいルールが適用される)

中段の表やグラフでは、年率RARの平均値を成績としている。
年率RARの平均値の代わりに、
データの出現回数(カウント)を表示させて検討するのも良い。
簡単に表示を切り替えることができる。
GAを使った探索では、
優秀な遺伝子(ここではパラメータの値)ほど出現回数が多くなる傾向にある。
パラメータ値の出現回数も1つの指標となる。

下段の表は、詳細データから主要項目を表示させたもの。
表の中の項目「P1」~「P9」は、フィルターや手じまいに関するパラメータ。
「回数」から右側が成績に関する項目。

この表は年率RARで降順ソートしているので、
1行目が最も年率RARの高い(成績の良い)パラメータセットとなる。
移動平均線の組み合わせで言えば、21-54が最も良い組み合わせ。
(先ほどと同じだ)
2行目、3行目・・・しばらく下スクロールしても、この組み合わせが続く。
ということは、
移動平均線の設定値が成績に及ぼす影響が大きいのではないか?
と予想がつく。

実は、PowerBIには「主要なインフルエンサ」という視覚化ツールがあり、
各パラメータが成績にどのような影響を及ぼすのかを教えてくれる機能がある。
こんな感じ。

これによれば、
・短期MA
・P6
・長期MA
の重要度が大きいとのことだ。
確かに、同感。
肌感覚で分かっていたが、改めて表示してみると、なんとも心強い。
ちなみに、P6はフィルターに関するパラメータ。
これの重要度が大きいということは、
フィルターがしっかり機能していると言える。

なお、フィルターやTP、LC、TL以外の手じまいのパラメータ値と成績との関係は「ページ2」で、その詳細を確認している。
(紹介は省略する)

同じロジックでミニ30分足のテスト結果も表示してみる。
データ件数は26,853件。
下図。

先ほどの60分足とじっくり見比べると、60分足の方が良いように見える。
ただ、30分足の方は、中段左の表より、
短期MAの探索範囲をもう少し広げたほうが良いことが読み取れる。
探索範囲を広げて再テストした結果、
30分足の方が良い、ということになるかも知れない。

ここまで紹介した図はほんの一例。
この他にもいろんな角度からバックテスト結果を確認している。

ちなみに、
60分足と30分足でのテスト結果を紹介したが、
実際には、これらは本採用していない。
このロジックでは、ティック足チャートを使った方が、はるかにパフォーマンスが良い。
ティック足チャートの優位性もPowerBIを使ってビジュアルに確認した。
(注。ロジックによっては、ティック足よりも分足の方が良い場合もある。)

PowerBIはバックテスト結果の確認において、非常に優れもののツールだ。
難を言えば、メモリーを食うところ。
先ほどの60分足と30分足のデータ両方取り込んでグラフ表示させた状態で、
1GB程度メモリーを使用している。
元データのCSVファイルは両方で16MB程度のテキストファイル。
PowerBIは、メモリーの潤沢なマシンで使った方が良い。

<広告>

TOP