EAの過剰最適化について
目次
※画像が見えにくい場合はクリックしていただくと拡大されます。
過剰最適化とは?
さっそくですが、EAの開発工程で最適化をすることは避けて通れません。
中にはこのEAは最適化をしていないから過剰最適化ではない、という謳い文句のEAも見かけますが、通貨ペアや時間軸を選択すること、また利益確定の値や損切りの値の設定も最適化にあたります。
そのため、最適化はEAのロジックを組み立てるうえでも、EAの能力を最大限引き出すためにも必須の工程といえます。
最適化は上述のとおり決して悪いことではありません。
しかし、最適化を正しく行わないと過去の相場でしか勝てないEAとなってしまいバックテストの結果とリアルトレードの結果がかけ離れる事態が起きています。
これを過剰最適化(オーバーフィッテング、カーブフィッテング)といいます。
投資は自己責任という観点から開発者様は元より利用者様においても、そのEAが過剰最適化になっていないか?未来の相場で勝てるのか?を検証することが必要と言えるかと思います。
過剰最適化の事例
ご参考までに過剰最適化されているEAの検証結果を掲載いたします。
◆EAの特徴
・単ポジEA
・始値のみで稼働
・稼働時間を9:00~15:00に限定
・採用しているインジケーターは2つ
うち1つのインジケーターのパラメーターは固定
もう1つのインジケーターのパラメーターを最適化
※結果的にこのEAは過剰最適化になっていますが、開発段階においてはインジケーターの数を極力減らし、過剰最適化にならないように開発が進められたEAです。
◆検証方法
検証方法はアウトオブサンプルテストを採用しました。
※アウトオブサンプルテストとは、ヒストリカルデータを最適化する期間と最適化後のテスト期間に分け、疑似的に未来のデータ(リアルトレードの環境)を作り出しテストする検証方法です。
最適化期間:2004.01.01~2013.12.31
アウトオブサンプルテスト期間:2014.01.01~2022.12.31
◆最適化期間(2004.01.01~2013.12.31)で設定したパラメーターのバックテスト結果
取引回数:1,503回
純益:36,763円
最大ドローダウン:4,215円
PF:137
RF:8.7
勝率:67.1%
期待利得:24.5
綺麗な右肩上がりとは言えませんが、最適化期間のバックテスト結果はまずまずかと思います。
これが過剰最適化になっていなければ、アウトオブサンプルテスト期間でもほぼ同様の結果が得られるはずです。
それではさっそく、最適化期間で選定したパラメーターを変えずにアウトオブサンプルテストをしてみたいと思います。
◆アウトオブサンプルテスト期間(2014.01.01~2022.12.31)でバックテストした結果
結果はご覧のとおりでした。
冒頭でご説明したとおり、過剰最適化されたEAは最適化期間のバックテストとアウトオブサンプルテストの結果に大きな違いが見られます。
過剰最適化についてまとめ
EAは最適化期間のバックテストの結果では評価できません。
必ずアウトオブサンプルテストの結果で評価します。
最適化期間の結果がいくら良くても、アウトオブサンプルテストの結果が良くないとリアルトレードでも損失になってしまいます。
言い換えれば、アウトオブサンプルテストなどの検証を怠らなければリアルトレードの損失を未然に防ぐことができます。
また、検証をクリアしたEAはリアルトレードでも期待が持てるといえます。
過剰最適化と検証の大切さが少しでも伝われば幸いです。
本記事をここまでお読みくださりありがとうございました。