最適化の力は、最も収益性の高いパラメータ設定を見つけるために、何百もの可能なパラメータ設定をテストできることです。 ただし、あらゆる強力なものと同様、悪用される可能性もあります。 レバレッジと同様に、最適化も厳密に制御すれば戦略を強化し、多額の利益をもたらす力がありますが、そうでなければ戦略とアカウントを破壊する可能性があります。
最適なパラメータを見つける過程で、データを履歴に適合させて、「棚ぼた利益」のような錯覚を得ることが簡単にできます。履歴に対してのみ有効です。 これは過剰最適化と呼ばれ、非常に簡単に実行できるため、ほとんど避けられません。 この記事では、MT4 エキスパートアドバイザー (EA) の過剰最適化のリスクと、過剰最適化による危険な欺瞞を回避する方法を学びます。
過剰な最適化による自己欺瞞は危険です。 これは EA の収益性についての誤った感覚を生み出し、ライブ アカウントで「ユートピア」EA を試してみたいという内なる欲望を助長し、その結果、アカウントを実際に焼き払う可能性のある本当に恐ろしいシステムの炎にさらされることになります。
最適化を放棄するのは愚かです。収益性の高い戦略に最適なパラメータ設定を見つける機会を逃し、誤解される可能性があるためです。任意のパラメータ設定がトラップされます。 。 ただし、過剰な最適化とその危険な結果の一線を越えるのは非常に簡単です。 黄金の平均値はどうやって見つけられるのでしょうか?
最適化中に潜在的な厄介なものが見つかったからといって、赤ちゃんをお風呂の水と一緒に捨てる必要があるという意味ではありません。 過剰な最適化のリスクを軽減するための措置を講じている限り、最適化を追求する価値はあります。
過剰な最適化を最小限に抑えるために実行できる 5 つのステップ:
ステップ #1 : 可能な限り少ないパラメータを最適化します。
ルール (インジケータ、シグナル、終了してフィルターします)。 戦略にルールを追加するたびに、戦略曲線が履歴データに適合する可能性が高まります。
ステップ 2: 最適なパラメータを探索することも有益であるはずです。
収益性の高いパラメータを見つけるためにパラメータを最適化するときは、周囲のパラメータも収益性があることを確認してください。 インジケーターの最適な長さが 18 の場合、周囲のパラメーター (15、16、17) およびそれ以上 (19、20、21) も収益性があることを確認してください。 最適値のどちらかの側にあるパラメータが利益を生まない場合、これは危険信号です。
ステップ 3: 大規模なデータセット (履歴、バー、トランザクション) を最適化します。
最適化する履歴が小さいほど、カーブ フィッティングが容易になります。 また、最適化するより大きな時間枠にカーブフィットすることもはるかに簡単です。 一般に、信頼できるバー サンプル サイズを取得するにはより多くの履歴が必要になるため、時間枠が大きくなるほど、より多くの履歴を最適化する必要があります。 タイムフレームが小さいほど、より多くのバーがあるため、処理する必要がある履歴が少なくなります。 ただし、歴史は市場のさまざまな動きを示しているため、ある程度の歴史を知る必要があります。
ステップ #4: 最適なパラメータはサンプル外 (ウォークフォワード) データに対して機能する必要があります。
最適なパラメータはサンプル外のデータ、つまり重複しない別の期間のデータに適用されますか?
履歴データに対してシステムをテストする場合、他のテストの目的で使用される一定期間の履歴データを「保存」すると常に役立ちます。 一般に、データにはサンプル内データとサンプル外データの 2 種類があります。 サンプル内データは元々テストと最適化に使用されたデータであり、サンプル外データは保存されたデータです。 さらなるテストのためにデータを保存することは、評価プロセスにとって重要です。
したがって、これまで最適化モデルで使用されたことのないデータを自分自身に提供することになります。 したがって、サンプル外のデータはシステムに影響を与えず、取引システムの実際のパフォーマンスを理解することができます。つまり、実際の取引でシステムがどのように動作するかがわかります。
最適化やバックテストを開始する前に、サンプル外テストに使用する履歴データを保存する必要があります。 たとえば、履歴データを 3 つの部分に分割し、1 つの部分をサンプル外テスト用に取っておくことができます。
履歴データの残りの 2 つの部分 (サンプル内データ) は、初期テストと最適化にのみ使用する必要があります。 図 1 からわかるように、タイムライン上の履歴データの 3 分の 1 はサンプル外テスト用に予約され、残りの 2 つは初期テストのサンプル内データとして使用されます。
たとえば、コントロール サンプル履歴となる 2000 年から 2008 年のデータでシステムをテストし、最適なパラメータが見つかったら、 2008 年から 2010 年までの「前方」履歴セットでテストできます。 最適なパラメーターがサンプル外データでパフォーマンスが悪い場合は、最適化されすぎていることを意味します。
行上のデータ配置の順序はあまり一般的ではありません。通常、サンプル外のデータはテストの先頭にはありませんが、本番前。
サンプル内データでシステムをテストしたら、プロセスを続行してシステムをサンプル外データに適用できます。 これは、サンプル内データとサンプル外データのシステム パフォーマンス結果を比較する機会を提供するために行われます。
相関関係とは、サンプル内データとサンプル外データの傾向と動作の間の類似点を見つけるプロセスです。 ほぼすべての取引プラットフォームでは、テスト中に作成されたシステム パフォーマンスに関するレポートを比較できます。 データセット間の相関性が高い場合、戦略は成功する可能性が高く、フォワードパフォーマンステストとライブ取引の両方で良好な結果を示します。
左の図に示すように、2 つのデータセット間の相関関係が明らかでない場合、システムはリアルタイムで実行できない可能性があります。過剰な最適化によるトランザクションは正常に動作します。 相関関係が強い場合 (右のグラフ)、フォワード パフォーマンス テストと呼ばれる追加のテストを実行できます。
ステップ 5: 最適なパラメータをフォワード パフォーマンス データに適用する必要があります。
フォワード パフォーマンス テストは、システム パフォーマンスをテストするためのもう 1 つのツールです。 すべての操作が「仮想的に」実行されるため、このサンプル外データのセットはペーパー トランザクションと呼ばれることがよくあります。 フォワード パフォーマンス テストでは、ライブ市場で起こり得る状況がシミュレートされ、システムはライブ取引と同じようにパラメーターとロジックに従って動作します。 これは、利益、損失、エントリーおよびエグジットを記録するが、実際の操作は実行しないことを意味します。
覚えておいてください: システム ロジックにできるだけ正確に従うことが非常に重要です。そうしないと、将来のパフォーマンス テスト結果を評価できなくなります。 すべてのトレードのエントリーとエグジットを例外なく、説明なしに正直に指定する必要があります。 この場合にのみ、システムを適切に評価できます。
多くのブローカーには、取引の開始、損益の計算などの練習に使用できる仮想取引口座を開設するオプションがあります。 このアカウントを使用すると、リアルマネーを失う恐れなくシステムをテストできます。
すべてのデータセット間に良好な相関関係がある場合、システムはそれを実際に使用できます。トランザクション。