EAのすすめ④:オーバーフィッティングについて思うこと、逆に意図的にやってみたときの話を交えて
皆さん、おはようございます。れんみぃです。
まさかの4つ目の記事です。正直、前回の記事を書いたあたりで「これで最後かなぁ」と思っていました。しかし、ある人がX(旧Twitter)で「読ませていただいております」とコメントをくれました。たかがコメント一つですが、もう一本書いてみようと思うには充分でした。というわけで、今回もパソコンに向かっています。
前回は、裁量とEAの期待値の違いについて思うことについて、友人億トレーダーの意見を交えて書いてみました。まだ読まれていない方は以下のURLからどうぞ。
https://www.gogojungle.co.jp/finance/navi/articles/82912
さて、今回のテーマは「オーバーフィッティング」です。通常、オーバーフィッティングは避けるべきものとされています。しかし、「逆に意図的にやってみたらどうなるのか?」という実験を交えながら話を進めていきたいと思います。
オーバーフィッティングとは?
オーバーフィッティングとは、簡単に言うと「過去のデータにEAのロジックを過剰に最適化しすぎること」です。
例えば、バックテストで異常に高い勝率のEAを見たことがある人も多いでしょう。「直近10年間のデータで勝率90%! ドローダウンほぼゼロ!」みたいなものです。しかし、こういうEAは大体リアルトレードでは通用しません。
なぜか?
それは、EAが「過去の相場」に最適化されすぎていて、「未来の相場」には適応できないからです。
EA開発における最適化とオーバーフィッティングの関係
オーバーフィッティングはEA開発者にとって最大の敵だと私は思っています。
EA開発の過程で「最適化」という作業を行います。最適化とは、EAのパフォーマンスを向上させるためにパラメータを調整することです。例えば、移動平均線の期間やRSIの閾値、エントリータイミングなどを細かく調整することです。
しかし、ここにオーバーフィッティングの罠が潜んでいます。
熟練した開発者であれば、最適化のバランスを取りつつ、汎用性の高いロジックに仕上げます。しかし、初心者が最適化を行うと、多くの場合、特定の過去データにだけ適応するEAになってしまい、未来の相場では全く機能しない「オーバーフィッティングEA」になってしまうのです。
逆に意図的にオーバーフィッティングをやってみたら?
「逆に意図的にオーバーフィッティングをやったらどこまで行けるんだろう?」
そんな疑問がふと湧いてきました。
オーバーフィッティングは通常避けるべきですが、「もし極限までオーバーフィッティングしたら、どんなEAができるのか?」「そして、それは未来の相場でも通用するのか?」
興味が抑えられなくなり、実験してみることにしました。
実験方法
やったことはシンプルです。
過剰最適化ツールをPythonで作成
選択したEAのパラメータを解析し、バックテスト結果が最大化するように極限まで最適化を繰り返すツールを開発。
適当なブレイクアウトEAを作成
直近の高値・安値をブレイクしたらエントリーし、一定の値幅で利確・損切を行うシンプルなロジック。
EAを過剰最適化ツールに投入
「2005/08/01~2020/07/31」の期間で極限までオーバーフィッティングを実施。
検証結果
1. 過剰最適化期間(2005/08/01~2020/07/31)
出来上がったEAを過剰最適化期間でバックテストすると、見事な右肩上がりの結果となりました。
勝率:96.31%
プロフィットファクター:8.57
完璧な右肩上がりの資産曲線
これはもう完璧なEAに見えますよね? 過去の相場に完璧に適応した最強のEAが誕生しました。
2. 未来の相場(2020/08/02~2023/07/21)
では、このEAを過剰最適化期間外でバックテストしたらどうなるでしょうか?
勝率:77.97%
プロフィットファクター:1.15
資産曲線が不安定になり、利益があまり出せなくなる
勝率は大幅に低下し、利益もあまり出せなくなっています。 まさに「過去データには最適化されているけど、未来では通用しないEA」の典型例です。
リテラシーが低い人はどうなる?
仮にこのEAが販売されていた場合、FXやEAへのリテラシーが低い人はどう思うでしょうか。
「バックテストの勝率96%!?めちゃくちゃ勝てるEAじゃん!」
そう思って購入し、いざリアルトレードを始めたら…
「全然勝てない…むしろ負けてる…」
こうして、資金を失うことになります。
詐欺EAの多くは、こうした過剰最適化されたバックテスト結果を使い、初心者を騙して販売されるケースが多いです。 EAを選ぶ際は、バックテストの結果だけでなく、フォワードテストやリアル運用の成績も必ず確認するようにしましょう。
EA「GTX」のリアルトレード成績
フォワードテスト、リアル運用の成績が重要という点において、私が販売しているEA「GTX」は、リアルトレードで以下の実績を出しています。是非覗いてみてください。
プロフィットファクター:1.62
(2021/12/13~2025/02/01のリアルトレードデータ)
GTXリアルトレードの実績 https://real-trade.tech/accounts/00000
GTX販売サイト https://www.gogojungle.co.jp/systemtrade/fx/34527
まとめ
今回の実験を通して、オーバーフィッティングがいかに危険かを再確認しました。
過去データで完璧なEAでも、未来の相場でも通用するとは限らない
最適化は必要だが、やりすぎると本来のパフォーマンス以上の見せかけのパフォーマンスが出来上がってしまう
EAは「未来の相場で生き残る」ことが最も重要
EAを選ぶ際はバックテストに加えてフォワードテストやリアル運用も見るようにしよう
私たちEA開発者にできることは、「過去のデータに適応するEA」ではなく、「未来の相場でも戦えるEA」を作ることです。
では、次回の記事でお会いしましょう。!
れんみぃのEAリスト
https://www.gogojungle.co.jp/users/189446/products
以下有料ゾーンですが、特に何か有用なことが書いてあるわけではありません。投げ銭機能を使ってみたかっただけです。
Is it OK?