FX自動売買基礎と応用

EA(自動売買)でフォワード最適化をする方法


第14回では、買いと売りでエントリーや決済のパラメータを分け、それぞれでパラメータ最適化を実施することで精度を上げられました。
この第15回では、フォワード最適化を実施していきます。

EAの過剰最適化について

EA界隈でよく問題とされるものの1つに「過剰最適化」というものがあります。
「過剰最適化」とは、細かい条件で最適化を行いすぎて、そのバックテスト期間中だけにしか適応できないような設定になってしまうことです。

例えば2010年から2020年で最適化を実施した結果、プロフィットファクターが3.0と高い数値を記録したのに、そのデータを使用して2024年までテストを行うと負け越してしまった…ということが起こりうるわけです。

このようなEAは実際の運用に向きません。
最適化を実施後の相場でも勝てるような、汎用性の高い最適化が望ましいです。

フォワード最適化とは?

フォワード最適化とは、バックテスト期間のヒストリカルデータを2つに分割して、片方のヒストリカルデータ(学習データ)をパラメータの最適化に、もう片方のデータ(テストデータ)を最適化したパラメータの評価に使用する方法のことです。

フォワード最適化とは

AIでおなじみの「機械学習」では、データセットをこのように分割して学習や検証、テストを行うことが一般的です。
しかし、EA界隈ではこの方法は浸透しておらず、「より長期間で実施したバックテスト結果が良いかどうか」で評価されがちです。

そこで今回は、前回作成したプログラムが「過剰最適化」となっていないかどうかを確認してみます。

    MT5におけるフォワード最適化

    MT5では、学習データと検証データに分けて最適化を実施できる「フォワード最適化」の機能が、デフォルトで搭載されています。
    MT5の開発元であるMetaQuotes社も「フォワード最適化」の実施を推奨していることがうかがえます。
    ちなみに、「フォワード最適化」という用語は一般的ではなく、主にMT5でのみ使用されます。
    今回使用しているのはMT4ですが、行うことは同じなので、本記事でも「フォワード最適化」と呼ぶことにしています。

ヒストリカルデータを分ける

先ほど説明したように、ヒストリカルデータを「学習データ」と「テストデータ」に分けて考えます。
本記事のシリーズでは、EAのバックテストを2018年1月1日~2023年1月1日の5年間で固定してきました。
つまり、同期間が「学習データ」となります。

そして今回、2023年1月1日~2024年1月28日までを「テストデータ」として加えます。
この条件のもと、前回の記事で作成・最適化を実施したプログラムをバックテストしてみましょう。

バックテスト

バックテスター設定の期間を、以下のように2023年1月1日~2024年1月28日に変更しました。

バックテスター設定の期間を変更

パラメータ設定については、前回実施した最適化結果をそのまま用いるので変更しません。

バックテスト結果

以下が、バックテスト結果です。

取引回数101回、プロフィットファクターは3.52となりました。
今回のバックテスト期間は最適化に使用されていないため、未来の相場にも対応できていることが分かります。

もしもこの時、バックテスト結果が著しく悪くなってしまった場合、「過剰最適化」が起きてしまっていることが考えられます。
「パラメータを細かく検証しすぎていないか」「テスト用のヒストリカルデータが少なすぎないか」など、設定を見直してみましょう。

EA(自動売買)を学びたい方へオススメコンテンツ

EA運用の注意点

OANDAではEA(自動売買)を稼働するプラットフォームMT4/MT5の基本的な使い方について、画像や動画付きで詳しく解説しています。MT4/MT5のインストールからEAの設定方法までを詳しく解説しているので、初心者の方でもスムーズにEA運用を始めることが可能です。またOANDAの口座をお持ちであれば、独自開発したオリジナルインジケーターを無料で利用することもできます。EA運用をお考えであれば、ぜひ口座開設をご検討ください。


本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。

この記事をシェアする

ホーム » FX自動売買基礎と応用 » EA(自動売買)でフォワード最適化をする方法