当ブログはアフィリエイト広告を利用しています

バックテスト

過剰最適化(カーブフィッティング)を防ぐ方法

2017年6月13日

バックテストをしていて気になるのが、「過剰最適化(カーブフィッティング)」です。

そこで、過剰最適化を防ぐ方法を考察します。

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

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

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

しかし、将来の値動きは、過去と関係があるとはいえ異なります。このため、過去の値動きにあまりにフィットしすぎてしまうと、将来の値動きに対応しきれません。

結果、実際に取引すると勝てなくて失敗!となるパターンです。

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

では、この過剰最適化を防ぐにはどうすれば良いでしょうか。

ゆったり為替は明確な回答を持ち合わせていませんが、2つ考えてみます。

パラメーター(変数)の種類を少なくする

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

そして、「5日」「9日」といった数字は、自分で自由に変更できます。

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

パラメーターが多い場合

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

では、今後もその10個のパラメーターの値は、相場にフィットし続けるでしょうか。

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

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

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

パラメーターが少ない場合

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

パラメーターが10個もあった場合に比べれば、期待してよいように思います。

というのは、10のパラメーターの間のバランスを維持し続けるのは難しいと予想できる一方、パラメーターが1つならば、成績のバランスをとるのが容易になると予想できるためです。

ただし、この考察には欠点があります。

「ゆったり為替が何百・何千パターンを検証し、明示的に傾向を把握したわけではない」ことです。予想にすぎません。ただし、経験から判断する限り、パラメーターの種類は少ない方が良いと思います。

一つのパラメーターに対して、数多くの数字を試してみる

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

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

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

パラメーターの値を変えても成績が大きく変化しない場合、今後も有効だと期待できると考えています。

相場は期待通りに動かないのが常です。そこで、ある特定の数値「だけ」で好成績という場合、実際にトレードするとガッカリすることになるでしょう。

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

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

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

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

【オープン】岡三オンライン証券【くりっく株365】

-バックテスト