カーブフィッティングとは、システムを過去の相場にぴったり合うように過剰に最適化することです。過去の相場に合うようにシステムを作るので、バックテストの成績は優秀になります。しかし、実際の取引で使うと過去と未来は同じではありませんので、大抵の場合、バックテスト通りに行きません。
例えば、ドル円が115円から120円の間を往復しているだけの期間があったとします。115円で買って、120円で決済してドテンで売り、115円になったら決済してドテンで買いというルールのシステムを作った場合、この期間だけでは物凄く優秀な成績のシステムが出来ます。
勿論、このシステムはこの横ばいの期間が終われば、役に立たないシステムになります。流石にここまで極端なカーブフィッティングをしている人はいないと思いますが、似たようなことをしている人はたくさんいると思います。
例えば、移動平均の期間をより利益を上げる期間に変更する、MACDのパラメーターを色々と変えてみる、単体のルールではダマシによく引っかかるからフィルター(売買ルールの限定条件)を追加してみる、RSIの買いの条件を40%以下から20%以下にしてみる等です。
ある程度、テクニカル指標を使っている人ならば思い当たる節があると思います。このように少しでもバックテストで利益を上げようとパラメーターを最適化して行って、行き過ぎるとカーブフィッティングになります。
カーブフィッティングされたシステムは、過去の相場にぴったり合うように作られているので、未来の相場では役に立たないことが多いです。「システムはシンプルな方が良い」とよく言われますが、あまり複雑になるとカーブフィッティングする可能性が高いので、このように言われる一因になっています。
しかし、過去の相場に合わすべきではないと言うとバックテストの存在意義がなくなります。実際には最適化とカーブフィッティングの境界線は曖昧です。その境界は経験で見極めるしかありません。出来るだけカーブフィッティングを避けるために、下記のような方法があります。
・長い期間で検証して、いくつもの短い期間のバックテストで試してみる。
・システムの売買ルールを出来るだけシンプルにする。
・フィルターをあまり使用しない。 ・明確な理由無しに、特定の通貨、特定の時間足でしか役に立たないシステムを作らない。
カーブフィッティングは、特定の期間ではそのシステムを優秀にしますが、最終的にはそのシステムを駄目にします。皆さんもシステムを作るときはカーブフィッティングに気をつけて下さい。
Yahoo!カテゴリ登録サイト