過剰最適化

オーバーフィッティングやカーブフィッティングとも言われる、過剰最適化を検証します。

バックテストの成績を向上させるために幾つもの条件を設定することでシステムが過剰に最適化され、その結果、実際の運用では散々な成績に終わることがよくあります。そのため、過剰最適化は良くないとされています。

では、本当に過剰最適化は良くないのでしょうか? 過剰最適化を極端に行ったシステムが実は機能するとかは無いのでしょうか?

過剰最適化

画像のバックテストは、225先物1枚を15分足で売買を繰り返した場合のシステムです。2000年から2008年までの225先物に極めて過剰に最適化しました。
209970とは、10円で10000円になりますから、2000年から2008年までで、2億997万円の利益を上げたことになります。P/Fも4.56と、通常はありえない数値になっています。実際の運用で、この半分の利益も出るなら相当素晴らしいシステムと言えます。

このシステムを作成後、フォワードテストとして、2009年1月~5月までの四本値を追加しました。損益:870 取引回数:252、とスリッページを考慮したら機能していない結果です。当時、この検証をもってやはり過剰最適化は機能しない、と判断しました。

その後、225先物は取引時間が何度か変更になりました。
下記の画像は、2012/6/20までの15分足で日中の四本値を使ったフォワードテストの結果です。(2011年以降の日数・平均取引回数の表示は取引時間延長の影響でこのシステム上で不正確になっています。)

過剰最適化

意外なことに損益はプラスです。売買回数とスリッページを考慮したら、実際の運用ではマイナスになりますが、少なくともシステム上の損益はプラスを維持しています。勝率が41%~44%であっても損益がプラスなのは、利は伸ばして勝つ、ということを意味しているでしょう。
フォワードテストで損益がプラスを維持しているのはただの偶然かもしれません。しかし、この極めて過剰に最適化されたシステムに、実際の運用でも勝つことが出来るルールが含まれているのかもしれません。このシステムで利用しているルールの内、フォワードテストでも利になっているルールが、実際の運用でも機能する可能性があります。

当たり前と思われていることでも実際に自分で検証してみることで、システムの新しいアイディアを思いついたり、実際は当たり前では無かったことが判ったりします。