バックテスト

Quant Analyzerでバックテストの結果を徹底分析

Quant Analyzerは曜日ごとの損益や時間ごとの損益を可視化することで、自分のシステムの弱いところをあぶり出してくれます。

これをもとにフィルターを追加などすれば、さらに良いシステムの開発につながるでしょう。

前回ご紹介した”Moving Average”のバックテストデータを使って実際に考えるポイントをおさえていきましょう。

まだQuant Analyzerをインストールされていない方はこちらのインストール解説記事をご覧ください。

Trade analysis

レポートをインポートした状態で、①の”Trade analysis”をクリックしてください。
そうすると、様々なグラフが②のウインドウに表示されます。

ここの表示は③をクリックすることで、金額ベースからpipsベース、%ベースにクリックのたびに変更することができます。

私のおすすめはpipsベースで分析を行うことです。
複利でロット数を変更するシステムを採用していると、金額が増えていくほどその重みをつけて評価されてしまうので、金額ベースでは全期間を均等に評価することができないためです。

このpipsベースだけでもQuant Analyzerを導入する価値が十分あると考えられます。

様々なグラフが表示されていますが、全てのグラフが表示されているわけではありません。

赤枠をクリックすると自分の好みのグラフを表示させることができます。

それではどのようなグラフを見ることができ、どういった改善につなげられるのかご紹介します。

Profit and Loss

P/L by hour, day, weekday, monthのグラフです。

ご覧の通りそれぞれの日付毎、時間帯毎、曜日毎、月毎のトータル損益がどのようになっているか表示されています。

例えば時間を見てみると日中の成績に比べて夜間の成績が芳しくないようです。
時間のフィルターをかけて、エントリーを日中のみできるようにするべきかもしれないといったことが分かってきます。

また、他の曜日に比べて金曜日のエントリーが弱いように見えます。
トータルでは利益を出しているので、金曜日のエントリーを削るとトータルの損益は減るかも知れませんが、ドローダウンが抑えられる可能性があります。

月毎の損益では夏に苦戦している様子が見受けられます。
ただし、なんの仮説も立てずに損している部分を削れば、バックテストの見栄えはよくなりますが、過去の値動きにオーバーフィッティングしただけの実戦では何の役にも立たないシステムが出来上がってしまうので注意してください。

Trade duration

次はP/L by trade duration, PL Growth by duration, Trades by durationです。

それぞれ、ポジションの保持時間が横軸に対して、損益を棒グラフであらわしたものと、トレード毎に散布図をプロットしたもの、トータルのトレード数を表したものになっています。

まずは、P/L by trade durationを見てください。
今回分析している”Moving Average”は損切りは早めに行い、利確は利益を伸ばしてから行っている様子から、損小利大の逆コツコツドカンタイプであることが分かります。

もしこれが逆に短時間では利益が乗って、長時間保持すると損失が膨らんでいるようなら、時間による決済を行うのも良い手になることが考えられますね。

また、散布図では個別のプロットが見られます。気になるデータや外れ値があれば、プロットににカーソルをあわせるとデータを見ることができます。

トレード数ではどの期間のトレードが多いか確認できます。横軸が一定の間隔ではないことに注意してください。

Trades

Trades by hour, day, weekday, monthは各期間のトレード数を表しています。

どの期間でもほぼ満遍なくトレードしていることが確認できます。

意図せずトレード数がとても少なかったり、多かったりする期間があれば、システムの不備を疑ったほうがよいかもしれません。

Wins/Losses

Wins/Losses by hour, day, weekday, monthは各期間の勝敗数を表しています。
これも特に大きな偏りはないので、問題ないでしょう。

損小利大とはいえ、こんなに敗数が勝数よりも多いと、トレード中に不安になってしまうかも知れませんね。

Wins/Losses Profit

Wins/Losses Profit by hour, day, weekday, monthは各期間の損益をそれぞれ表しています。

グラフを活かすために

私のおすすめは、P/L by hour, P/L by weekday, P/L by trade duration, P/L Growth by duratioの4つです。

上の2つは時間と曜日のフィルターをかけるか大きな判断材料になり、システムのロジックの根幹に関わります。

また、P/L Time はシステムに時間の経過による決済をつけるかの判断材料になります。

P/L Growth by durationで大きな外れ値が出た場合は必ずもとのデータを確認してください。
ヒストリカルデータにおかしなデータが混じっていたり、システムのロジックの不備を見つけるのに役立ちます。

Quant AnalyzerではOverviewで様々な統計値を見ることができましたが、Trade analysisではその統計値を様々な期間に分類して視覚的に分析することができます。

今回は種類ごとにそれぞれご紹介しましたが、それぞれ同じ期間の異なるパラメータを見比べることで、新しい分析の視点を加えられるでしょう。

月毎のデータもご紹介しましたが、10年ほどのバックテストではそれぞれサンプル数が10しか集まっていないことになりますので、データを参考にシステムの稼働、停止を考えるときはご注意ください。

-バックテスト