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 ファイルで)キャッシュに保存されます。従って、最適化プロセスは、いつでも中断することができます。たとえ遺伝的最適化の過程が外部要因(例えば停電)の結果として中断されても、最適化の再起動時には自動的に最後に計算された世代から続行されます。遺伝的最適化キャッシュは最適化設定が変更されるか最適化が完成するまで保存されます。
  • 通常の最適化停止(ストップボタンが押された場合)では、以前に計算されたランは全て保存されます。最適化プロセスが再開されると、それが最後に計算されたランから続行されます。

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

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

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

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

最適化基準

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

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

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

  • Balance max — 残高の最高値
  • Balance + max Profit Factor —  残高とプロフィットファクターの積の最高値
  • Balance + max Expected Payoff — 残高と期待利益の積の最高値
  • Balance + min Drawdown — この場合、残高値とドローダウンレベルが考慮されます: Balance/Equity drawdown
  • Balance + max Recovery Factor — 残高と回復率の積
  • Balance + max Sharpe Ratio — 残高とシャープレシオの積
  • Custom max — 最適化基準はここではエキスパートアドバイザーの OnTester() 関数の値です。このパラメータはエキスパートアドバイザーの最適化において任意のカスタム値の使用を可能にします。