MT4やハイレバレッジが使える海外FXでは、EAを使うシステムトレードが人気です。
システムトレードを行う上で、知っておきたいのがカーブフィッティング(curve fitting)。
信頼できると思っていたシステムトレードでも、カーブフィッティングによって機能しなくなるシステムも少なくありません。
今回は、カーブフィッティングの意味や注意するべき点を解説します。
Contents
カーブフィッティング(曲線線当てはめ)とは?
カーブフィッティングは、システムの過剰最適化を意味します。
“曲線当てはめ”や“最良線当てはめ”もカーブフィッティングと同じ意味です。
科学やシステム業界で広く使用されてきたワードで、データを基準に曲線を定義することから“カーブ”という単語が使われています。
ルールを頻繁に追加することや、取引の条件を限定し、統計のパフォーマンスや結果を良く見せることで、実際のトレード以上の都合の良い状態を作り出してしまうのです。
過去の相場がベースになっているバックテストだと、カーブフィッティングのパフォーマンスは抜群になります。
しかし、カーブフィッティングは現実の相場にはマッチしないことも多く、バックテストで勝つことができても、現実の相場を元にして行われるフォワードテストで勝てないケースも増えます。
曲線当てはめを理解し、正しい手法で取引することが大事です。
EAを使ったシステムトレードでカーブフィッティングが起こる原因
eaを使用したシステムトレードでカーブフィッティングが起こるのは、システムの性能を良く見せようとするためです。
システムトレードに使用するeaを構築する際、eaの有効性をチェックするためにバックテストをします。
過去の相場を元にバックテストするため、eaの勝率を100%に設定することもできるのです。
50%の勝率のeaと100%の勝率のeaなら、どちらを使いたいですか?
100%の勝率のeaですよね。
開発者も利用者が多ければ多いほど潤うため、パフォーマンスを向上させようとしてカーブフィッティングになります。
カーブフィッティングの傾向が見られるEA
カーブフィッティングが見られるeaの特徴として、
- トレード回数が少ない
- バックテストの期間が短い
- 損切り幅が大きい
などがあります。
ここでは、それぞれの特徴について解説します。
トレード回数が少ない
トレード回数が少ないeaは、カーブフィッティングになりやすい特徴があります。
トレード回数に応じてパラメータを調整するため、元となるデータが少ないとeaが最適化されやすいからです。
トレード回数が多いeaほど、カーブフィッティングは防ぎやすくなります。
バックテストの期間が短い
カーブフィッティングを防ぐためには、バックテストが長く検証されているeaがおすすめです。
バックテストの回数が短いと、勝率が高くても「たまたま短い期間で大きな利益が出ただけ」ということも考えられます。
また、長い検証の中で繰り返しバックテストが行なわれているeaなら、過去から現在にかけてeaがどのように変化しているのか把握できるので、結果の正確性も高くなります。
損切り幅が大きい
eaの損切り幅を大きく設定し、利確幅を小さく設定すると勝率は上がるので、バックテストの結果だけ見ると、成績が良いeaに見えます。
しかし、トータルの損益では損失が増えやすくなるので注意が必要です。
カーブフィッティングを防ぐためには、損切り幅を小さくし、利確幅を大きくする必要があります。
eaの係数や設定で注意すること
eaのバックテストの結果が良くても、パラメータやRSIの係数を頻繁に変更すると売買ルールを複雑にしてカーブフィッティングの可能性を高めてしまいます。
係数をそのときの相場に応じて変更することも大切ですが、手を加えすぎてしまうと自動売買の意味が無くなります。
カーブフィッティングを防ぐためにも、係数の調整は頻繁に行なわず、売買ルールはできるだけシンプルにしましょう。
バックテストの検証について
カーブフィッティングはバックテストの結果が重要になるため、バックテストそのものの信頼性が重要になります。
バックテストはMT4ツールから行なうこともできますが、フリーソフトやエクセルなどを使って行うことも可能です。
フリーソフトやエクセルのバックテストツールは、ネットで無料配布されているものでも十分に使えます。
また、エクセルを使用するメリットは、カスタマイズしてバックテスト内容をどんどん増やせることです。
検証の対象となる要素が多いほど、バックテストの正確性も高くなります。
バックテストの信頼性が高くなると、カーブフィッティングの防止にもつながるでしょう。
プログラムによるカーブフィッティング手法
カーブフィッティングはデータによく当てはまる曲線ですが、得られたバックテストの結果をもとにモデル曲線をフィッティングさせることで、カーブフィッティングの状態を調べることができます。
カーブフィッティングを調べる手法としては、
- pythonとMT4、MT5の連携
Pythonはプログラミング言語の1つで、ウェブサイト構築や組み込みアプリ、ディープランニングなどに使用されています。
MT4やMT5とpythonを連携させることで、カーブフィッティングを求めることが可能です。
- matlabとMT4、MT5の連携
Matlabhは、数値解析ソフトウェアであり、その中で取り扱っているプログラミング言語でもあります。
MT4やMT5と連携させ、データを解析してカーブフィッティングを調べることが可能です。
カーブフィッティングについては、高度なデータ解析やプログラミングツールが一つになっているigorを使って行う方法があります。
これらの手法は、いずれの方法も開発者やプログラミング知識を持っている人向けです。
簡単にカーブフィッティングを調べる方法なら、フォワードテストをおすすめします。
フォワードテストによる検証方法
カーブフィッティングの検証方法として有効なのが、フォワードテストです。
フォワードテストは、バックテストを行ったEAが未来の為替に対し、どんな風に機能するのかどうかを確認する方法になります。
たとえば、2010年から2015年にかけてバックデータを持っているEAがあるとします。
最初に2010年から2014年にかけてバックテストを行い、ストラテジーのパラメータを決めます。
次に、2014年から2015年の1年間でフォワードテストを行い、最適化されたEAがスムーズに動くかどうかの検証をしましょう。
バックテストの結果が良くても、フォワードテストの結果が悪いなら、カーブフィッティングされていると判断できます。
カーブフィッティングのまとめ
カーブフィッティングは短いスパンだと、システムの性能を高める働きがあります。
しかし、長期的な運用になってくると、システムそのものをダメにして取引にも悪影響を及ぼします。
バックテストの結果でEAの成績を決めるのではなく、必ずフォワードテストの結果も参照してEAの成績をチェックしましょう。
EAは、成績が良いだけでなく運用期間が長いことや、バックデータが多くなることも考慮して選ぶことをおすすめします。
システムトレードはカーブフィッティングに気を付けて運用しましょう。
コメントを残す