この記事では、カーブフィットについて解説します

システム開発する際の最大の敵は、カーブフィットです。

カーブフィットされたEAを信じて使うと、破産又は撤退する確率が高くなります。

 

この記事を読むと以下が理解できると思います。

・カーブフィットとは

・カーブフィットされたEAを信じて使うと、なぜ破産又は撤退する確率が高くなるのか

・スーパートレーダ達のカーブフィット対策

 

カーブフィットとは

カーブフィットとは、過去データに合うように、パラメータを調整する事です

システムを開発する際、少しでも利益が増えるような条件を探します。

言い換えると、少しでも将来の価格を予測する精度を高める方法を探します。

その方法を探すために、過去検証を行います。

問題は、答えが分かっている状態で、答えに合う条件を探す事です。

 

下図は、1つのパラメータを使って、価格を予測した結果です。

答えが分かっているので、パラメータを調整すれば、綺麗な近似線を作る事ができます。

パラメータを6つに増やすと、より綺麗に過去データに合わせることが出来ます。

これがカーブフィットです。

パラメータが1つの場合も、6つの場合も、過去データに合わせて調整しているので、両方ともカーブフィットです。

但し、6つで調整した方が、よりカーブフィットさせていると言えます。

 

上図は、簡易的にカーブフィットを示したものですが、

実際は、移動平均線やRSIなどを組み合わせ、過去データで勝てる条件を探します。

過去データが分かっているので、パラメータを増やし、調整しまくれば、勝てる条件が見つかってしまいます。

但し、それは過去データで勝てるだけで、将来勝てる可能性は低いと考えられます。

なぜかは、この記事後半のカーブフィット対策で理解できると思います。

 

カーブフィットされたEAを信じて使うと、なぜ破産又は撤退する確率が高くなるのか

カーブフィットされたEAを信じて使うと、仮に勝てるEAでも、破産又は撤退する可能性が高くなります。

なぜ、撤退する事になるのでしょうか?

それは、『資金管理の知識がないから』ではなく、『リスクを把握できていないから』です。

 

資金管理の最重要項目は、最悪のリスクを想定して運用することです。

多くの人は、そのことは理解されていると思います。

しかし、カーブフィットされたEAは、そのリスク自体が正しくありません。

過去検証では、最大ドローダウンが10%だったとしても、実際は50%や80%を経験するかもしれません。

計算の10倍のドローダウンを想定して運用できる人はいいですが、そんな人はほとんどいません。

利益を優先して、資金管理を行う為、せいぜい過去検証の2倍のドローダウンを想定するくらいだと思います。

そして、想定リスクを超えて、撤退することになります。

 

カーブフィットの問題点は、2つです。

1. 勝てないシステムを、勝てるシステムと勘違いしてしまうこと

2. 勝てるシステムだが、リスクが正確に把握できないこと

 

つまり、システムを開発する際、『爆益のEA』より、『精度の高いEA』の方が価値が高いと考えます。

その為に、カーブフィットの影響をいかに無くすかが、ポイントになります。

 

スーパートレーダ達のカーブフィット対策

私は(米国の厚い本を中心に)FX関連の書籍を50冊以上読みました。

その結果、スーパートレーダ言われる人たちのカーブフィット対策は驚くほど共通している事がわかりました。

 

以下に、良書に記載されているカーブフィット対策を整理しました。(書籍を参照)

 

収益ドライバ(仮説が先)

カーブフィットは、過去データに合うようにパラメータを調整する事です。

過去データと調整する前に、仮説を立てる事が大切です。

 

例えば、

収益ドライバ :梅雨の季節だから、今日は雨の可能性が高い

カーブフィット:旅行の日に限って雨が多いから、今日は雨の可能性が高い

梅雨の季節は梅雨前線が日本列島を覆うので、理屈(収益ドライバ)が明確です。

対して、実際に旅行の日の雨の確率が高くても、それは偶然です。

過去の結果だけで評価したのがカーブフィットです。

 

シンプルなルール(少数ルール)

ルールを複雑にする事の問題点は、何が収益に機能しているのか分からない点です。

複雑にしたルールの中に、収益に関係ないルールが一つでも含まれていたらカーブフィットに繋がります。

出来るだけ単純化して、収益ドライバのみでルールを構築する事が重要です。

 

小数パラメータ

パラメータを増やせば、増やすほど、カーブフィットの可能性は高くなります。

カーブフィットは、過去データに合わせる為に、最適化を行う事で生じます。

多くのパラメータで最適化を行うと、理論値からの乖離を生む結果になります。

 

例えば、トランプで黒を当てるゲームをします。

どんな方法を使っても、理論的な確率は1/2です。

 ① 過去検証で、黒が連続する可能性が高い事を確認した。

 ②過去検証で、スペード&7の次は黒が来る可能性が高い事を確認した。

①と②の両方とも、収益ドライバがないので、カーブフィットです。

しかし、①の方がましです。

①は過去検証の2パターンから、良い方を選ぶだけなので理論値(1/2)と差はないと考えられます。

②は過去検証の52パターン(=4×13)の最高の組み合わせを選びます。

過去検証では、理論値から飛びぬけて、よい結果になっている可能性があります。

 

パラメータを増やすと、カーブフィットの可能性が高く、システムの実力と大きく乖離させる結果となります。

 

フィルタレス

フィルタとは、ルールに制限値(〇〇の場合を除く)を設ける事です。

例えば、移動平均線のクロスを売買条件とし、但し、ボラティリティが〇〇以上はエントリしない。等です。

このフィルタを使う事で、過去検証で成績が悪い時期や条件をカットする事ができます。

それが、カーブフィットの原因になります。

フィルタは用いない方がいいです。

 

パラメータが低感度

パラメータが低感度というのは、パラメータを振っても安定しているという事です。

カーブフィットさせたシステムは、少しの変化に弱く、パラメータを少し変えるとパフォーマンスが悪化します。

カーブフィットを振るいにかけるため、パラメータを少し振ってを確かめる事が提案されています。

 

変数を±50%を変更して過大な変化がないことを確認する』(参考:トレーディングシステム入門

コンセプトが理解できて、変数を大きく動かして、堅牢である事を確かめる』(参考:マーケットの魔術師 システムトレーダ編

例えばパラメータを20~25%変化させて、その最適化カーブの下にある事が将来起こりうると考えるべき』(参考:タートル流投資の魔術

パラメータの振った範囲で70%で利益が出ていれば合格』(参考:世界一簡単なアルゴリズムトレードの構築方法

 

複数市場で機能

スーパートレーダの多くは先物を扱っており、市場という表現をしています。

FXに置き換えると、複数通貨ペアになります。

1つの通貨ペアのみに使えるシステムより、5つの通貨ペアで機能するシステムの方が堅牢と言えます。

 

過去に下落トレンドが長く続いた通貨ペアだけに機能するシステムは、もしかしたら下落トレンドに強いシステムな可能性があります。

その通貨ペアが今後も下落トレンドが続くとは限りません。

複数通貨ペアで機能する事が確認できれば、今後のトレンドの変化にも強いシステムの可能性が高くなります。

 

複数時間軸で機能

複数時間軸で機能する方が、堅牢な可能性が高いです。

理由は複数市場と同じです。

チャートはフラクタル構造をしていると言われており、5分足でも15分足でも1時間足でもチャートは同じような構造をしています。

確認するチャートの時間軸を拡大する事で、より多くの検証をすることが可能です。

より多くのチャートで確認できれば、より堅牢なシステムという事ができます。

 

十分な検証回数

十分な検証期間と検証回数が必要と言われています。

ただ、その必要とする期間や回数については、トレーダによってまちまちです。

検証に必要なトレード回数については、以下でまとめていますので、参考にしてみて下さい。

 

アウトオブサンプルテスト

アウトオブサンプルテストとは、データの一部を検証せずに残しておき、システムが確立した後に残しておいたデータで試す方法です。

アウトオブサンプルテストにより、カーブフィットの有無を確認する事ができます。

ただ、問題はアウトオブサンプルテストにどれくらいの期間のデータを残すかです。

 

アウトオブサンプルテストに残すほど、データ量に余裕はないとの意見もあります。

仮に1年分のデータを残していても、期間が短すぎて評価できません。

一方で、データを半分残すと、使えるデータは半分に減少し、検証回数が減ることによる弊害がでてきます。

 

私は、このアウトオブサンプルテストの代用として、複数通貨ペア/時間軸の検証を行っています。

1つの通貨ペア/時間軸でシステムを組み、複数通貨ペア/時間軸で機能する事を確認する事で代用ができていると考えています。

 

まとめ

この記事では、システムトレードの最大の敵、カーブフィットについて解説しました

 

・カーブフィットとは、過去データに合うように、パラメータを調整する事です

・カーブフィットされたEAを信じて使うと、リスクの見積もりを誤ってしまう為に、破産又は撤退する確率が高くなります。

・スーパートレーダ達のカーブフィット対策

 ・収益ドライバ

 ・シンプルなルール(少数ルール)

 ・少数パラメータ

 ・フィルタレス

 ・パラメータ低感度

 ・複数市場(通貨ペア)で機能

 ・複数時間軸で機能

 ・十分な検証回数

 ・アウトオブサンプルテスト

 

是非、参考にしてみて下さい。

 

次の記事

 

目次