EAのカーブフィッティング(過剰最適化)対策
よく質問で2000年頃からのテスト結果はありませんか? というご質問を頂きますが、 最適化を行うことで、どの通貨もテスト結果を優秀にすることは可能です。
一つのEAで、たとえ5通貨全てに対してであっても、2000年頃からのテスト結果を右上がりの爆益グラフに仕上げたEAを作成することは、少し時間はかかりますが、独自の方法を用いて可能です。
これは特殊技能とも言えますが10通貨全部同時であっても右上がりのEAを作ることは可能なのです
しかし問題はここからです。
そこまで究極に最適化された中央値をもつEAであっても、リアル運用では微妙なズレが発生し、結果を出すことがいまひとつできない可能性があります。
過去テスト期間が長ければ、未来に対しても信頼性が高くなることはたしかですが、 経験上、テスト結果はそこまではあまりあてにならなず、過信できるものではありません。
過去の一定期間に対して最適化されたEAは カーブフィッティングと呼ばれ、
・ある一定の相場状況のみ効果があり、時期が変わると急にダメになってしまう。
・テスト結果は異常に良いのに、実際のリアル運用には全く役に立たない
・例えば、テストされる通貨のテスト期間が上昇買い一辺倒の相場であった場合、リアルの相場は明らかな売りと思われる場面でも、テストではことごとく買いと判断される。 といったことが起こります。
テスト期間が買いと売りどちらかに偏っていれば、テスト結果が優秀でも中身は偏ったEAが完成する。
つまり、テスト期間を指定する必要があるため、完全に買いと売りバランスがとれた期間でテスト最適化することは不可能に近いのです。
5年近く「全てに通用する中央値を求めて、徹底的にいろいろなインジケーターを組み合わせて最適化」をおこなってきました。
全く根拠のない売買をするよりは遥かにマシではあるものの、
過去の相場に合わせて方程式化しても不完全であてにならない、、。 過去はあくまで過去、、。
という結論に至りました。
しかし、一方で、
未来の相場で勝っていくためには、固定化されたルールとなるロジックが必要
であり、それは少なくとも過去でも通用しなければならない。
つまり、ロジックが未来に通用するかどうかを証明するためには徹底した過去検証はやはり必要です。
その微妙なバランスを必要とする難題をどうしたら解決できるのか?どうしたら勝ち続けるEAを作ることができるのか?
5年をかけて試行を重ねた結果、、ついに
過去検証もされていて、リアルの相場でも通用するEA
を完成させました。
カーブフィッティング(過剰最適化)対策は、
過去に過剰な最適化(フィッティング)をしていない。あてはめすぎていない、あえてテスト結果を優秀にはしない。
一時的ではなく、継続して結果を出していくために、
過去にはこだわらず、本質的な相場判定が可能なEAを完成させました。
そして5年過去検証ばかりしてきたのは全てが無駄ではありませんでした。
様々なインジケーターを試して組み合わせてきたため、エントリーから利確まで何をどのように組み合わせると効果的であるかを学んだからです。
「こうなったらエントリーする」という固定されたやり方(ロジック)をプログラムで組み合わせてEA化するのは十分に可能であるし、
EAは裁量取引(自己判断エントリー)にあらゆる部分で総合的に勝る。と考えています。
フォワードテストで結果となって現れてきた時、これが正しいと証明されるでしょう。