462770-1バックテストをしていて気になるのが、「過剰最適化(カーブフィッティング)」です。そこで、過剰最適化を避ける方法を考察します。



過剰最適化(カーブフィッティング)とは


カーブフィッティングとは、バックテストにおいて、過去の値動きで最大限勝てるよう、パラメーター(変数)を調整しすぎてしまうことです。

この結果、バックテスト成績は極めて素晴らしいものになります。

しかし、将来の値動きは、過去と関係があるとはいえ異なります。このため、過去の値動きにあまりにフィットしすぎてしまうと、将来の値動きに対応しきれません。結果、実際に取引すると勝てなくて失敗!となるパターンです。


過剰最適化(カーブフィッティング)を回避するには


では、この過剰最適化を防ぐにはどうすれば良いでしょうか。ゆったり為替は明確な回答を持ち合わせていませんが、2つ考えてみます。


1 パラメーター(変数)を少なくする

パラメーターとは、ユーザーの意向で自由に変えられる数字のことです。例えば、移動平均線という場合、5日移動平均、9日移動平均など数多くの種類があります。そして、「5日」「9日」といった数字は、自分で自由に変更できます。

この自由に変更できる数字のことを、パラメーター(変数)と呼んでいます。

例えば、あるトレード手法があり、そのパラメーター数は10もあったとしましょう。その10個が相場にフィットするとき、極めて好成績というバックテスト結果でした。では、今後もその10個のパラメーターの値は有効でしょうか。

かなり難しいと予想できます。

過去の為替レートと将来の為替レートは一致しません。よって、10個のパラメーターのバランスが今後も有効であり続けると期待するのは、無理があるように思います。

どこかで修正が必要になると予想できます。

一方、別のトレード手法のパラメーターは1つだったとしましょう。同様に、バックテスト結果は良かったとします。今後のトレード結果も期待して良いでしょうか。

パラメーターが10個もあった場合に比べれば、期待してよいように思います。というのは、10のパラメーターの間のバランスをとるのは難しいと予想できる一方、パラメーターが1つならば、成績のバランスをとるのが容易になると予想できるためです。

ただし、この考察には欠点があります。「ゆったり為替が何百・何千パターンを検証し、明示的に傾向を分析したわけではない」ことです。予想にすぎません。


2 数多くのパラメーターを試してみる

一方、「数多くのパラメーターを試してみる」というのは、ゆったり為替が普段から実行している方法です。

例えば、「買ってから1%の含み益で利食い、1%の含み損で損切り」で好成績だというトレード手法があったとしましょう。この場合、以下の方法も試してみます。

(例)
「1%の含み益で利食い」を維持しつつ、含み損0.9%で損切りにしてバックテストを実行。同様に、0.8%、0.7%…なども確認。逆に、損切位置を固定して利食い位置を変えるパターンも検証。

パラメーターの値を変えても成績が大きく変化しない場合、今後も有効だと期待できると考えています。相場は期待通りに動かないのが常です。そこで、ある特定の数値「だけ」で好成績という場合、実際にトレードするとガッカリすることになるでしょう。

様々なパラメーターで有効ならば、相場が気まぐれに動いても、成績の下落を抑えられるのでは?と考えています。

ただ、これも、ゆったり為替が実行してきた検証数は何千という単位には(おそらく)及ばないので、確定的に書くことができません。予想になります。

歯切れの悪い記事となりましたが、参考にしていただければ幸いです。

→ 【重要】バックテスト成績が良くても、実戦で勝つのは難しい
→ あまりに太っ腹!エクセルを使ったバックテストツールを完全無料配布!