MetaTrader 5のヘルプアルゴリズム取引、自動売買ロボット最適化の種類

最適化の種類

テスターには2種類の最適化が存在します。種類はストラテジーテスターの設定タブで選択できます。

完全アルゴリズム(遅い)

このモードでは、最適化は適切なタブに選択された入力変数の値のすべての可能な組み合わせのために実行されます。

このメソッドは最も正確です。しかし、エキスパートアドバイザーをすべての組み合わせのために実行するのには長い時間がかかります。

遺伝的アルゴリズム(速い)

この種類の最適化は、入力パラメータの最高の値を検索する遺伝的アルゴリズムに基づいています。これは、完全アルゴリズム(遅い)よりもはるかに高速で、質はほぼ同じです。スローコンプリート最適化で数年かかるだろうことは、遺伝的アルゴリズムを使用して、数時間以内に行うことができます。

各個体は、そのパラメータのセットに対応する遺伝子の特定のセットを有します。遺伝的最適化は、もっと「適応」したパラメータ(最良の結果が得られた値)の定数の選択に基づいています。一般的な形態では、アルゴリズムは、次のように表すことができます。

  • パラメータのすべての可能な組み合わせの総数から、2つの集団(セット)がランダムサンプルによって選択されます。
  • 両方のセットをテストし、(最適化基準によって)最良の結果を持つものが残されます。
  • セットのメンバーがランダムにラパラメータのンダムな突然変異と反転を受けて、互いに交差します。
  • 子孫は最良の結果、及び交差の繰り返しによって並べ替えられます。
  • ソートと交差操作は結果の改善がある(子孫の中での最高の結果が親の中での最高の結果よりも優れている)限り繰り返されます。最適化基準値が数回の交差(世代)で改善されない場合、最適化の過程は終了します。

テスト実行の数

遺伝的最適化中のテスト実行の数は非常に低く、最適化の速さが提供されます。遺伝的最適化が始まると、テスト実行の推定数が設定タブに表示されます。それは以下の式により算出されます。

人口サイズ * (無条件の世代数 + 収束推定のための世代数)

ここで

  • 人口サイズは、最適化パラメータの可能な組み合わせの数に基づいて算出され、64〜256の範囲であり得ます。
  • 無条件の世代数の範囲は15 ~ 31 です。これは最適化基準の改善によって定義されます。15 世代がすべての最適化でテストされています。15 ~ 31の世代の最適化基準が改善しない場合、次の世代の追加のテストが収束推定のために開始されます。
  • 収束推定のための世代数は、無条件の世代数の3分の1として計算されます。無条件の世代数が18 であれば(17番目の世代が最良の結果を示しており、18番目の世代で全く改善がない)、次の5世代がテストされます。18番目の世代が任意の改善を示していないが、収束の推定のためには、18の3分の1である 6 世代に最適化基準の改善がないことが必要です。指定された世代数で改善がない場合、最適化は停止されます。
  • 最適化ステップの総数が、64 ビットシステムでは100,000,000、32 ビットシステムでは1,000,000を超える場合には、遺伝的最適化モードが自動的に開始されます。
  • 遺伝的最適化の中間結果は各世代の計算後に(platform_data_folder/tester/cache/*.gen ファイルで)キャッシュに保存されます。従って、最適化プロセスは、いつでも中断することができます。たとえ遺伝的最適化の過程が外部要因(例えば停電)の結果として中断されても、最適化の再起動時には自動的に最後に計算された世代から続行されます。遺伝的最適化キャッシュは最適化設定が変更されるか最適化が完成するまで保存されます。
  • 通常の最適化停止(ストップボタンが押された場合)では、以前に計算されたランは全て保存されます。最適化プロセスが再開されると、それが最後に計算されたランから続行されます。

最適化基準 #

最適化基準とは、テストされたパラメータのセットの質を定義する特定の因子です。最適化基準値が高いほど、そのパラメータセットでのテスト結果は優れたものです。この要因は「オプティマイズ」フィールドの右の設定タブで選択できます。

最適化基準は遺伝的アルゴリズムのみに必要です。

以下の最適化基準の使用が可能です。

  • 残高最大 — 残高の最高値。
  • 最大利益率利益率の最高値。
  • 最大予想ペイオフ予想ペイオフの最高値。
  • 最小ドローダウン — この場合、 パーセンテージでの残高の相対的なドローダウンが 考慮されます。
  • 最大回復係数回復係数の最高値。
  • 最大シャープレシオシャープレシオの最高値。
  • カスタム最大 — 最適化基準はここではエキスパートアドバイザーの OnTester() 関数の値です。このパラメータはエキスパートアドバイザーの最適化において任意のカスタム値の使用を可能にします。

あと一つのオプションは「Complex Criterion max」を使用することです。これは、テストパス品質の不可欠かつ複雑な尺度です。複数のパラメータが測定されます。

  • 取引数
  • ドローダウン
  • 回収係数
  • 予想されるペイオフ
  • シャープレシオ

この基準を使用すると、1つのパラメータ(利益など)の最大値が、複雑な分析の観点から常に最良のオプションであるとは限らないことがわかります。最良のパスは複雑な基準(まず取引数、次に期待されるペイオフ、回収係数など)によって徐々に選択されます。新しいオプションでは、すべてのパラメータに従って最適な最適化パスを受け取ることができます。さらに、最高の利益など、必要なパラメータに基づいて最適なパスを選択できます。

気配値表示で選択されたすべての銘柄

上記で説明された最適化タイプと違い、これはエキスパートアドバイザーを入力パラメータを使って、異なった銘柄でテストします。テストの主要銘柄、つまりエキスパートアドバイザーが接続されている銘柄、のみがパスごとに変えられます。

最適化は、気配値表示 で現在選択された銘柄のみに対して実行されます。よって、選択された銘柄のセットを調整することにより、最適化を管理することができます。

  • サーバからの必要な価格データのダウンロードは長時間かかることがあるのでご注意ください。しかし、データのダウンロードの結果としての最適化の減速は銘柄の最初の起動時のみに発生し、次回からは不足しているデータのみがダウンロードされます。
  • 「値」フィールドで指定された入力パラメータの現在値が銘柄の最適化に使用されます。