「過剰最適化をAIで見破る方法」(1/20)投資AI開発奮闘記
バックテストはすごいのに、、、
EAやってる方なら必ずしもこういう経験はあるのではないでしょうか?
EAを開発してる方なら、100個開発して99個これでしょう。
過剰最適化(オーバーフィッティング)とは、簡単に言うと
「パラメーターを特定期間のデータにピッタリ合わせすぎた結果、未来のデータには対応できなくなる現象」です。
バックテストで好成績を叩き出したEAが、実際には全然使えないのは過剰最適化が原因です?
過剰最適化が起きる理由とは?
主な原因は、「バックテスト期間内にしか存在しないデータの特徴」や「ノイズ」にEAが過剰に適応してしまうことです。
テスト期間内では素晴らしい成績が出るものの、そのパフォーマンスは未来のデータでは再現されません。
僕はこれをノイズフィッティングと命名しています
https://x.com/firs*****_peace/status/1878707246831641018
フォワードテストを行うことである程度この問題を回避できますが、実はフォワードテスト期間にもまた同じ問題が発生します。
テスト期間を増やせば増やすほど、結局はフォワードテスト期間にフィットしてしまうのです。
A期間がバックテスト、B期間がフォワードテストとすると、ABにフィットしてC期間にフィットしなくなります。?
これはAB期間でバックテストしてることと何も変わりません
AIで過剰最適化を検出する
ここで登場するのがAIです!
AIを使えば、パラメーターと損益の関係性を学習させ、過剰最適化をある程度検出することができます?
?手順
①最適化の結果をなるべく多く収集する。(パラメーター数とサンプルは多いほうがいい)
②教師あり学習をする。(特徴量をパラメーター、目的変数を損益などにする)
③AIの予測値と比較(AIに損益がわかっているパラメーターから損益を予測させる)
④結果損益の信ぴょう性を評価(実際の損益とAIの予測値が近似している場合は信ぴょう性が高い)
⑤過剰最適化のパラメーターを検出(AIの予測値と大きく乖離している実際の損益はマグレの可能性がある)
なぜAIを使うと良いのか
AIは人間には捉えきれないデータのパターンを見つけるのが得意です。
MT5の最適化で、よくわからない3Dグラフを見比べてパラメーターと損益の関係性を調べる必要はなくなりました?
賞味期限切れEAの復活
このアプローチをすると、面白いことに、賞味期限が切れて使用しなくなったEAを復活させることができる可能性があります
巷に落ちてる無料EAが豹変して未来でえぐい稼ぎ方をする可能性も大いにあります
開発者なら開発段階のパラメーターの沼から脱出することができます
もし皆さんも「バックテストとリアルトレードの結果が違いすぎる!」と悩んでいるなら、ぜひこの方法を試してみてください。
AIの教師あり学習は比較的簡単にできます、そのためのアプリ開発をしています☺️
この手法を活用して、未来に強いEAを一緒に作りましょう!
Is it OK?