次のような条件で、Angel Heartのバックテスト最適化を行いました。 そこそこのハイスペックなマシンで実施しても、数時間以上かかる検証ですので、よろしければ参考にしてみてください。
最適化項目
項目 | 開始値 | 最大値 |
---|---|---|
Stop Loss | 70 | 100 |
TakeProfit1= | 30 | 50 |
TakeProfit1P= | 30 | 70 |
TakeProfit2P= | 40 | 90 |
TakeProfit3P= | 50 | 100 |
TrailingStopPoint= | 10 | 15 |
TrailingStartPoint_1P= | 10 | 30 |
TrailingStartPoint_2P= | 20 | 40 |
TrailingStartPoint_3P= | 30 | 50 |
最適化結果の検証
Google Spreadsheetに貼り付けて分析をすすめていきます。
まずは、最大ドローダウン(金額)をY軸、総利益のをX軸にして、散布図を作成します。
さて、この図を見ると、大きく3つのグループに分けられそうです。
Group1は、利益もドローダウンも小さく、守りの設定です。 Group2は、リスクの程度がぐんと高まり、やや伸びます。 Group3は、Group2に比べてややドローダウンが伸びて、利益がぐんと伸びそうです。
どうやら、Group3が良さそうな雰囲気です。
さて、どのような設定が影響しているのでしょうか?
それを調べるのに便利なのが「相関係数」という考え方です。
2つのデータ間の関連性の強さを調べる方法で、エクセルやGoogle Spreadsheetで簡単に出せます。(関数は、correl(データ1, データ2))です。
数値Aがあがるとき、同時にBも同じように上がれば、相関係数は高くなります。 数値Aがあがるとき、逆にBが反対方向に下がれば、相関係数は低くなります。
数値は、-1~+1の間で推移します。 0に近いところでは、2つの数値の関連性が全くなくて、「無相関」となります。
最適化テストをするときは、あまり沢山の組み合わせを使いませんので、±0.3もあれば、かなり高い相関関係がある、と思ってよいです。
さて、検証したデータ別に相関関係を見てみます。
項目 | 開始値 | 最大値 | 相関係数 | 言えること |
---|---|---|---|---|
Stop Loss | 70 | 100 | 0.36 | 大きいほうがよい |
TakeProfit1= | 30 | 50 | 0.10 | 小さくてもよい |
TakeProfit1P= | 30 | 70 | -0.07 | 小さくてもよい |
TakeProfit2P= | 40 | 90 | 0.24 | 大きいほうがよい |
TakeProfit3P= | 50 | 100 | 0.10 | 小さくてもよい |
TrailingStopPoint= | 10 | 15 | 0.57 | 大きいほうがよい |
TrailingStartPoint_1P= | 10 | 30 | 0.27 | 大きいほうがよい |
TrailingStartPoint_2P= | 20 | 40 | 0.24 | 大きいほうがよい |
TrailingStartPoint_3P= | 30 | 50 | 0.17 | まぁ、どっちでもよい |
ストップロスの値
さて、ここで難しいのは、SLを大きくすると、1発の損失が大きくなることです。
ただ、この表から、あまりに小さいのはよくない、ということも言えます。
70はダメ、80も微妙、そうすると、90か100あたりか、、となります。
個人的には、90も100ももはや、もはや、どっちでもよいかな、という感じです笑 相関関係も大きそうですし、それなら、100にしようかな、となります。
トレーリングストップ
いつも一番悩むのは、トレーリングストップの値です。
これを小さくすると、プラスで着地できる可能性が高くなります。コツコツ確実に、積み上げるなら、TSは小さい方がよいです。 ただ、上記の通り、トレーリングストップが小さいと利益も小さくなります。
私は、性格的には、なるべくプラスで終わりたい、、という感じなので、「なるべく小さなTS値で、大きな利益を狙いたい」という考え方です。
Spreadsheetを純利益でソートして、TS値の4つの値の合計が小さいパターンを探していくと・・・
ありました! こんな設定です。
StopLoss | 100 |
---|---|
TakeProfit1= | 40 |
TakeProfit1P= | 50 |
TakeProfit2P= | 90 |
TakeProfit3P= | 70 |
TrailingStopPoint= | 15 |
TrailingStartPoint_1P= | 20 |
TrailingStartPoint_2P= | 20 |
TrailingStartPoint_3P= | 40 |
こんな設定です。
はじめのグラフの中では、Group3の中で、この辺にプロットされます。
場所的には、悪くないんじゃないでしょうか。
私の場合は、「リスクを抑えながら利益を最大化する」、という方針なので、この辺なら十分に素晴らしい期待利益です。
「リスクを抑える」というのをDDがとにかく低くて、利益が大きい、という考えで選ぶこともできますが、私の場合は、ある程度、トレーリングストップにかかりやすい数値を目指しました。
ここまで数値を特定できると、今度は、固定できる数値は固定して、悩ましいところ、TPの設定値などに絞って、より細かく最適化していくとよりベターな設定値を作れると思います。
私は、まぁ、、こんなもんでいきます。時間がない・・・。
Angel Heartが無料でもらえる口座開設キャンペーン
アヴァトレード・ジャパン株式会社Angel Heart USDJPYタイアップキャンペーン