MetaTrader 5のヘルプアルゴリズム取引、自動売買ロボットストラテジーの最適化

ストラテジーの最適化

ストラテジーテスターは取引ストラテジー(エキスパートアドバイザー)を実際の取引に使う前にテスト及び最適化することを可能にします。テストでは、初めにエキスパートアドバイザーが初期パラメータと履歴データを使って実行されます。最適化では、取引ストラテジーは、最も適切な組み合わせの選択を可能にす複数のパラメータセットで数回実行されます。

ストラテジーテスターは複数金融製品取引のテストと最適化に使われる多通貨ツールです。テスターは取引ストラテジーで使用されているすべての銘柄の情報を自動処理するので、手動でテスト/最適化のための銘柄のリストを指定する必要はありません。

ストラテジーテスターは、全ての利用可能なコンピュータリソースを使用できるように、マルチスレッドです。テストと最適化はユーザーのコンピューターにサービスとしてインストールされている特別なコンピューティングエージェントによって実行されます。エージェントは独立して動作し、最適化パスの並列処理を可能にします。

ストラテジーテスターには無制限の数の遠隔エージェントが接続できます。更に、ストラテジーテスターはMQL5クラウドネットワークにアクセスできます。それは、世界中の数千のエージェントを結集し、この計算能力は、取引プラットフォームのすべてのユーザーによって利用可能です。

ストラテジーテスターはエキスパートアドバイザーのテストと最適化の他にビジュアルモードでのカスタム指標の操作をテストにも使用できます。この機能によってマーケットからダウンロードされた指標のデモバージョンを簡単にテストすることができます。

最適化の方法 #

最適化とは、エキスパートアドバイザーの最高の組み合わせを見つけることを目的としたパラメータの異なるセットと履歴データを使用した複数の実行です。実行ごとに、異なるエキスパートアドバイザー入力パラメータがテストされ、最適のものが探されます。

「エキスパートアドバイザーと指標の購入前にテストするには」のビデオをご覧ください。

「エキスパートアドバイザーと指標の購入前にテストするには」のビデオをご覧ください。

マーケットからの購入する前に自動売買ロボットをテストする方法を学ぶためにはこのビデオをご覧ください。マーケットの製品のすべては、ストラテジーテスターでテストできる無料のデモ版を備えています。詳細はビデオでご覧ください。

最適化タスクの迅速な選択 #

テスターの起動後、複数の設定の代わりに標準的なタスクが表示されます。これらを選択することによって、テストをすぐに開始できます。これは、特に初心者に役立ちます。

主要な戦略テストと最適化タスクのいくつかは、スタートページに表示されます。さらに、以前に実行したタスクの1つをこのページから再起動できます。実行したタスクが多数でスタートページに収まらない場合は、検索バーを使用します。テストは、プログラム名、銘柄、時間枠、モデリングモードなどの任意のパラメータで検索できます。

開始ページで人気のタスクの1つを選択して、テストをすばやく開始します。

タスクを選択した後は、追加のテストパラメータに進んで、エキスパートアドバイザー、銘柄、テスト期間などを選択します。選択したタスクに必要ではないすべての無関係なパラメータは、設定ページに表示されません。たとえば、数学的計算が選択されている場合、テストするプログラムの選択と最適化モードの2つのパラメータのみを指定する必要があります。テスト期間、遅延、ティック生成の設定は非表示になります。

利用可能なすべての最適化オプションを以下で説明します。

テストでの自動売買ロボットを選択の方法 #

エキスパートアドバイザーのコンテクストメニューで「テストテスト」をナビゲーターウィンドウでクリックします。

テストでの自動売買ロボットを選択の方法

その後、エキスパートアドバイザーがストラテジーテスターで選択されます。

多通貨エキスパートアドバイザーでは、気配値表示で必要な銘柄を有効にします。 #

ストラテジーテスターは、複数シンボルの売買をするストラテジーのバックテストをすることが出来ます。このような自動売買ロボットは多通貨エキスパートアドバイザーと呼ばれています。

テスタは、銘柄データの最初の呼び出し時に自動的に使用される銘柄の履歴を(取引サーバからではなく)取引プラットフォームから読み込みます。不足している価格履歴データのみが取引サーバからダウンロードされます。

多通貨エキスパートアドバイザーの最適化を始める前に、テストに必要な銘柄を気配値表示 で有効にします。コンテクストメニューで「銘柄銘柄」をクリックして必要な製品を有効にします。

 多通貨エキスパートアドバイザーでは、気配値表示で必要な銘柄を有効にします。

最適化設定の選択 #

最適化を開始する前に、自動売買ロボット操作でテストされる金融製品、期間とモードを選択します。

テストパラメータの選択

銘柄と期間

テストと最適化のメインチャートを選択します。エキスパートアドバイザーに含まれるOnTick()イベントをトリガーするには、銘柄の選択が必要です。また、選択された銘柄と期間は、現在のチャートパラメータを使用するエキスパートアドバイザーコードの特別な関数(例えば、Symbol()とPeriod())に影響します。つまり、エキスパートアドバイザーが添付されているチャートをここで選択する必要があります。

日付

テストと最適化の期間を選択します。事前定義された期間の1つを選択するか、カスタムの時間間隔を設定できます。カスタム期間を設定するには、右側の適切なフィールドに開始日と終了日を入力します。

テスターの特定の機能は、指定された期間の前にいくつかのデータを追加でダウンロードすることです(100バー以上を形成)。これは、より正確なテストと最適化に必要です。たとえば、1週間の時間枠でテストする場合、さらに2年がダウンロードされます。

追加の100バーを形成するのに十分な履歴データがない場合(これは、月次および週次の時間枠で特に重要です) たとえば、既存の履歴データの開始の近くにテストの開始を指定すると、テストの開始日は自動的にシフトされます。ストラテジーテスターの操作ログに適切なメッセージが追加されます。

転送

このオプションを使用すると、最適化の時間間隔の過適合を回避するために、事前設定された転送期間を使用して最適化結果を検証できます。a class="topiclink" href="strategy_optimization.htm#forward">フォワード最適化中に、[日付]フィールドに設定された期間は、選択されたフォワード期間(フォワードテストのタルト日を指定する際の1/2, 1/3, 1/4、またはカスタム期間)に従って2つの部分に分割されます。

エキスパートアドバイザーの最適化は最初の部分のデータを使用しておこなわれます。その後、10%(完全検索の場合)または25%(遺伝的アルゴリズムの場合)のベストランが選択され、転送期間にテストされます。両機関の最適化のベストランの結果は[Optimization Results]タブと[Forward Results]タブで比較できます。

実行K

ストラテジーテスターは、テストに実際に近い条件を提供するために、エキスパートアドバイザーの操作中にネットワーク遅延のエミュレーションを有効にしました。取引リクエストを発行してからストラテジーテスターで実行するまでに、一定の時間遅延が挿入されます。リクエスト送信の瞬間からその実行まで、価格は変わる可能性があります。これにより、ユーザは取引処理速度が取引結果にどのように影響するかを評価できます。

即時実行モードでは、ユーザは、取引サーバからのリクオートに対するEAの応答をさらに確認できます。リクエスト価格と実行価格の差が注文で指定された偏差の値を超える場合、EAはリクオートを受け取ります。

遅延はEA(注文ストップレベルによって実行される取引でのみ機能することに注意してください)。たとえば、EAが指値注文を使用する場合、遅延は注文の発行にのみ適用され、注文の実行には適用されません(実際の状況では、実行はサーバでネットワーク遅延なしに発生します)。

遅延なし

このモードでは、すべての注文がリクオートなしで要求された価格で実行されます。このモードは、EAが「理想的な」条件でどのように機能するかを確認するために使用されます。

ランダム遅延

ランダム遅延モードでは、実際の条件に最大限近い条件でエキスパートアドバイザーをテストできます。遅延値は次のように生成されます。0?9の数値がランダムに選択されます。これは遅延の秒数です。 選択した数値が9の場合、同じ範囲から別の数値がランダムに選択され、最初の数値に追加されます。

したがって、0?8秒の遅延の可能性は90%であり、 9?18秒の遅延は10%です。

固定遅延

事前定義された遅延値の1つを選択するか、カスタム値を設定できます。プラットフォームはトレードサーバへのpingを測定し、テスターでその値を遅延として設定できるので、実際のロボットにできるだけ近い条件でロボットをテストできます。

ティック生成モード

ティック生成モードの1つを選択します:

  • 全ティック ? 最も正確ですが、最も遅いモードです。すべてのティックはこのモードでシミュレートされます。
  • 実際のティックに基づくすべてのティックは、実際のティックに近い条件を提供します。テストは、ブローカーが蓄積した金融商品の実のティックを使用して実行されます。シミュレーションは実行されません。ティックデータはサイズが大きいため、最初のテスト実行中にブローカーのサーバからダウンロードするのに時間がかかる場合があります。
  • 1分のOHLC ? このモードでは、4つの価格(始値、高値、安値、終値)がエミュレートされます。
  • 始値のみ ? このモードでは、OHLC価格もモデル化されますが、テスト/最適化には始値のみが使用されます。
  • 演算 ? このモードでは、テスターは履歴データと銘柄に関する情報をダウンロードせず、ティックを生成しません。関数OnInit()、OnTester()、およびOnDeinit()のみが呼び出されます。したがって、テスターは、パラメーターの選択が必要なさまざまな数学的計算に使用できます。

ティック生成の詳細については、適切なセクションをお読みください。

pipsでの利益計算により、テストプロセスをスピードアップできます。変換レートを使用して通貨を預金するために利益を再計算する必要はありません(したがって、適切な価格履歴をダウンロードする必要はありません)。このモードでは、スワップと手数料の計算が削除されます。

このモードでは証拠金制御は実行されないことに注意してください。迅速かつ大まかな戦略推定のためにのみ使用し、より正確なモードを使用して得られた結果を確認してください。

初回入金と活用

テストと最適化に使用する初回入金の金額を指定します。現在接続されている口座の入金通貨がデフォルトで使用されますが、他の通貨を指定することもできます。適切なテストを確実に行うためには、利益と証拠金を特定の預金通貨に変換するためのクロスレートがアカウントで利用可能でなければならないことに注意してください。"Forex"または "Forex No Leverage"計算タイプをもつ銘柄のみがクロスレートとして使用できます。

次にテストと最適化のレバレッジを選択します。レバレッジはポジションと注文のマージンとしてアカウントに予約された資金の量に影響します。

EA編集へのクイックジャンプ

選択したエキスパートアドバイザーのソースコードがある場合、このボタンをクリックして、MetaEditorでの編集に切り替えることができます。

最適化設定の管理

このメニューを使用してテスター設定を管理します。さまざまなエキスパートアドバイザの設定のセットをiniファイルに保存し、数回クリックするだけでそれらにアクセスできます。現在の最適化設定は、Ctrl+Cを押してクリップボードにコピーすることもできます。お好みのテキストエディタで編集してから、Ctrl+Vを使用してコピーしてテスターにアップロードできます。

同じメニューから、最後に使用したプログラム、最後のチャート設定、テスト期間をすばやく選択できます 。

さらに、以前の最適化結果のいずれかや、結果が得られた設定にアクセスできます。

テスト用のカスタム銘柄設定

テスト/最適化に使用される主要な取引商品の設定を変更できます。ほぼすべての仕様パラメータ(ボリューム、取引モード、マージン要件、実行モード、その他の設定)を上書きできます。

高度なテスト 設定

取引制限、マージン設定、手数料などの戦略をテストするときに、独自の取引アカウントパラメータを設定します。このオプションにより、ブローカーが提供するさまざまな取引条件のシミュレーションが可能になります。

最適化

最適化モードを選択します。

  • 低速かつより完全なアルゴリズム ? 選択した入力パラメータのすべての可能な組み合わせをテストします。
  • 高速遺伝的アルゴリズム ? 遺伝的アルゴリズムに基づいて入力パラメーターの最良の値を検索します。
  • 気配値表示で選択されたすべての銘柄 ? 異なる取引商品での同じ入力パラメーターセットのテスト。

使用可能なタイプの詳細については、適切な節をご覧ください。

最適化基準

最適化基準はテストされたパラメータセットの品質を定義する特定の要素です。最適化基準の値が高ければ高いほど、与えられたパラメータセットによるテスト結果は良好であると考えられます。遺伝的最適化にのみ使用されます。

  • テストでは銘柄指定にかかわらず他の銘柄の履歴データも使用することがあるのでご注意ください。テスターはエキスパートアドバイザーで使用される銘柄の全てを自動的にダウンロードします。
  • テスト/最適化する前に、メインチャート上の銘柄のすべての利用可能な価格データが自動的にサーバからダウンロードされます。インターネット接続が遅い場合には、これには非常に長い時間がかかる場合があります。
  • すべてのデータのダウンロードは1回だけ実行され、次の開始時には不足している情報のみがダウンロードされます。
  • 現在気配値表示 で選択されている銘柄のみがテスト/最適化で使用できます。
  • すべての必要な銘柄の価格データは、テストと最適化の際に、自動的にサーバからダウンロードされます。
  • テストは 00hr.00m.00s で終始します(指定された日付の)。よってテスト/最適化の開始日はテスト期間に含まれますが、終了日は含まれません。テストは、前の日の最後のティックで終了します。また、現在より後の終了日を指定することはできません。このような場合には、テストは現在の日付まで(現在の日付を含まない)実行されます。

遺伝的アルゴリズムを使った迅速な最適化は右にあるフィールドで最適化基準を選択して有効にできます。このフィールドには、パラメータ設定が基づかれる、最も成功したエキスパートアドバイザーの実行が選択されます。選択したパラメータの値が大きいほど、結果がより良いです。

After setting all the parameters click "Start". これによってテストと最適化が始まります。

  • ストラテジーテスターの設定はテストと最適化の開始時に記憶されます。
  • 通常の最適化停止(ストップボタンが押された場合)では、以前に計算された実行は全て保存されます。最適化プロセスが再開されると、それが最後に計算されたランから続行されます。

入力パラメータの選択 #

入力パラメータ を使うと、エキスパートアドバイザーの動作を制御し、異なる市場条件や金融製品に調整することができます。例えば、エキスパートアドバイザーのパフォーマンスを、市場分析や意思決定に使われる異なる決済逆指値決済指値、移動平均線の異なる時間軸などと実験することができます。

最適化とは、最良の結果を得るために、値と入力パラメータの異なる組み合わせをテストすることです。

最適化の入力パラメータの選択

パラメータの最適化を有効にするには、適切なチェックボックスをマークします。次に、値の開始と終了の範囲や、テストのためのステップを設定します。1つまたは複数のパラメータの選択ができます。可能な組み合わせの総数は、パラメータのリストの下に表示されます。

パラメータセット MQL5プログラムの現在の設定に戻るには、コンテキストメニューを使用してパラメータセットを保存します。

  • 設定ファイルをコンピュータに保存するには「保存」をクリックします。これらのファイルは、異なるコンピュータ上のプラットフォーム間で移動することも、他のユーザーに送信することもできます。
  • 現在のプラットフォームで使用するためにパラメータを保存するには「バージョンを保存する」をクリックします。これらの保存されたプリセットは「オプションを読み込む」サブメニューで使用できます。これらは、リストから適切なバージョンを選択することによっていつでも適用することができます。

テスターの詳細設定 #

戦略のテスト中に、取引制限、マージン設定、手数料などのカスタム取引口座設定を指定できます。このオプションにより、ブローカーが提供するさまざまな取引条件のシミュレーションが可能になります。

高度なテスト設定により、ブローカーが提供するさまざまな取引条件をシミュレーションできます。

共通

このセクションでは、口座に同時に存在できる注文とポジションの最大数を設定できます。さらに、プログラムが取引を許可されていないセッションを構成できます。

証拠金

このセクションでは、テストで使用する証拠金予約ルールとポジション勘定システムを設定できます。

証拠金設定

スク管理モデル: OTCとExchange、ネッティングまたはヘッジ。

このレベルに達すると、アカウントはマージンコール状態に切り替わります。

このレベルに達すると、すべての注文がキャンセルされ、すべての取引ポジションが決済されます。これらのレベルは、パーセンテージと金額で示すことができます。前者の場合、それらは口座の株式価値として決定されます。[In percent]が選択されている場合、レベルは口座の[証拠金レベル]値として定義されます(資金/証拠金*100)。

余剰証拠金の計算における現在の変動する利益/損失の計算方法は、次のとおりです。

  • Do not use unrealized profit/loss ? 計算に未決ポジションの利益/損失を含めません
  • Use unrealized profit/loss ? 計算に未決ポジションの利益/損失を含めます。
  • Use unrealized profit ? 利益のみを含めます。
  • Use unrealized loss ? 損失のみを含めます。

余剰証拠金の計算におけるトレーダーの毎日の実現利益/損失を計算する方法は、次の通りです。

  • Use daily fixed profit/loss ? 余剰証拠金に取引日に受け取った利益と損失を含めます。
  • Use daily fixed loss ? 余剰証拠金に取引日に受け取った損失のみを含めます。日中、得られた利益は特別勘定科目フィールド([Blocked])に蓄積されます。取引日の終わりに、累積利益が解放され(ゼロにされ)、口座残高に追加されます(余剰証拠金に含まれます)。

Release fixed profit at the end of day ? このオプションは、[Use daily fixed loss]オプションが選択されている場合にのみ使用可能になります。有効にした場合、累積利益は1日の終わりに解放されます(したがって、余剰証拠金に含まれます)。そうでなければ、この利益額はブロックされたままになります。

手数料

このセクションでは、すべての取引操作で請求される手数料を管理します。

  • 手数料は、単一レベルと複数レベル、つまり取引量/取引高に関係なく均一である場合と取引量/取引高に依存する場合があります。
  • 手数料は、取引の執行時にすぐに請求される場合と取引日/月の終わりに請求される場合があります。
  • 手数料は、取引の方向(エントリ、エグジット、両方の操作タイプ)に応じてそれぞれ請求される場合があります。
  • 手数料は、ロットまたは取引ごとに請求される場合があります。
  • 手数料は、金額、パーセンテージ、またはポイントで計算できます。

現在の取引アカウントの手数料設定を適用するには、[Use predefined commissions]オプションを有効にします。

証拠金設定

以下で指定されたカスタム設定の代わりに現在の取引口座手数料設定を使用するオプションを有効にします。

手数料を設定する銘柄の名前を指定します。銘柄ごとにいくつかの設定を追加できます。したがって、取引量または売上高に応じて、マルチレベルの手数料を設定できます。

手数料は、各取引の直後に請求することも、取引日または月の間に蓄積してから1つの操作で請求することもできます。

  • Instant ? 手数料は、各取引の実行中に即座に請求されます。インスタントコミッションのサイズは、取引の[手数料]フィールドに表示されます。インスタントモードでは、手数料はボリューム単位でのみ指定できます(売上高ではありません)。
  • Daily ? 手数料は、特別なアカウント状態フィールド[Blocked]で1日累積されます。1日の終わりに、累積額は別の残高操作(1日の手数料または1日のエージェント手数料タイプの取引)でアカウントから引き落とされます。
  • Monthly ? 手数料は、特別なアカウント状態フィールド[Blocked]で1ヶ月累積されます。1ヶ月の終わりに、累積額は別の残高操作(1ヶ月の手数料または1ヶ月のエージェント手数料タイプの取引)でアカウントから引き落とされます。
  • Monthly ? 手数料は、特別なアカウント状態フィールド[Blocked]で1ヶ月累積されます。選択したオプションにより、[From]フィールドと[To]フィールドに取引量または売上高が示されるエンティティが決まります。

    • Volume ? 手数料レベルは、取引操作で実行された各取引の出来高(ロット数)に基づいて設定されます。例えば、レベルを0?10および12?20に設定した場合、15ロットの取引には第2レベルの手数料が適用されます。このオプションは、Daily、Monthly、Instantのモードで使用されます。
    • Overturn Money ? 手数料レベルは、選択した期間(日または月)の資金の回転率に基づいて設定されます。例えば、レベルは0?500、501?1000に設定され、手数料は毎月請求されます。操作の総額が500ユニットを超えるまで、第1レベルの手数料が課金されます。資金の回転率が500の値を超えるとすぐに、それ以降のすべての取引は第2レベルの手数料の対象となります。
      デフォルトでは、資金の回転率は預金通貨で計算されます。各取引の価格が計算され、預金通貨に変換されます。例えば、契約サイズが100 000の1ロットEURUSDの購入価格は100 000 EURです。預金通貨がUSDの場合、ポジション価格はトランザクション時にEURUSDに変換されます(この場合は取引価格です)。
    • Overturn Volume ? 手数料レベルは、選択した期間(日または月)の取引操作の量(ロット数)に基づいて設定されます。

日次および月次モードでは、手数料は両方向の取引に対してが請求されます(ポジションのオープン/増加時とポジションの決済または一部決済時)。即時手数料の場合、取引方向は手動で設定できます。

イン/アウトタイプのリバーサル取引の場合、「イン」は新しく開いたポジションのボリュームにのみ手数料が請求されることを意味し、「アウト」は 決済ボリュームにのみ手数料が請求されることを意味します。「Close By」取引には、次のルールが適用されます。

  • 「すべて」または「イン」が選択されている場合、「Close By」取引には手数料が請求されません。 例えば、取引ごとに1 USDの手数料が請求されます。トレーダーがエントリー1.00 EURUSDの取引とエントリー売り1.00 EURUSDの取引を実行すると、2 USDの手数料が課金されます。1.00 EURUSDポジションが1.00 EURUSD売りポジションによって決済された場合、クライアントには追加のコミッションは請求されません。
  • 「Out」を選択すると、両方のClose By取引のコミッションが請求され、合計 コミッション値はメインの出口取引に書き込まれます(利益/損失が指定されています)。例えば、取引ごとに1 USDの手数料が請求されます。トレーダーがエントリ1.00 EURUSDの取引とエントリ売り1.00 EURUSDの取引を実行すると、2 USDの手数料が課金されます。1.00 EURUSDポジションが1.00 EURUSD売りポジションによって決済された場合、2 USDの手数料が課金されます。最初の「out by」取引では2 USDの手数料が指定され、2番目の取引では手数料ゼロが指定されます。

手数料が請求される最小取引量(売上高)。範囲は重複してはなりません。それ以外の場合、手数料は操作が該当するすべての範囲に対して課金されます。

最大取引量(売上高) )手数料の請求元。範囲は重複してはなりません。それ以外の場合、手数料は操作が該当するすべての範囲に対して課金されます。

手数料の額。手数料の単位は、[モード]フィールドで選択した手数料の計算方法によって異なります。

最低手数料額。選択した計算モードが依存する値(基本通貨、グループ通貨、ポイントなど)。最小コミッション金額を制限しない場合は、0の値を設定します。

最高手数料。選択した計算モードが依存する値(基本通貨、グループ通貨、ポイントなど)。最高手数料は最低手数料より小さくすることはできません。最大手数料を制限したくない場合は、0の値を設定します。

手数料の計算単位:

  • 預金通貨 ? 手数料はグループに指定された預金通貨で計算されます。
  • 基本通貨 ? 手数料は取引された銘柄の基本通貨で計算されます。
  • < li>利益通貨 ? 手数料は取引された銘柄の利益通貨で計算されます。
  • 証拠金通貨 ? 手数料は取引された銘柄に指定された証拠金要件通貨で計算されます。
  • ポイント ? 手数料は、取引された銘柄の価格ポイントで計算されます。ポイント値は、同じ方向のポジションの利益として計算されます。ボリュームは1ロットで、始値と終値の差は1ピップ(ポイント)です。
  • パーセント ? この計算方法では、取引/売上の実際のコストの%で手数料を請求できます。コストは、その価格、契約サイズ、およびロット単位のボリュームの積として、銘柄の基本通貨で計算されます(先物およびオプション銘柄の場合:ロット単位のボリューム*ティックサイズ/ティック価格)。デフォルトでは、基本通貨で計算された取引/売上高の値は預金通貨に変換されます。 次に、最終的なコミッション(指定されたパーセント)は、結果の値に基づいて計算されます。

手数料課金タイプ :

  • 取引ごと - 実行されたディールごとに手数料が課金されます。
  • ボリュームごと - 手数料は実行された取引のロット(ボリューム)ごとに課金されます。実行される取引リクエストの量のみが考慮されます。

カスタムテスト銘柄設定 #

テスト/最適化が実行されるメインの取引商品の設定を上書きできます。量、取引モード、証拠金要件、実行モード、その他の設定など、ほぼすべての仕様パラメータを上書きできます。したがって、異なる条件でエキスパートアドバイザーを確認する必要がある場合、個別のカスタム銘柄を作成してその履歴をダウンロードする必要はありません。これは、標準の銘柄設定を変更することで実行できます。

メインのテスト銘柄の設定を編集して、さまざまな取引条件で戦略をテストします

銘柄仕様がカスタマイズされている場合、歯車アイコンと銘柄アイコンにはアスタリスクが付いています。これは、カスタムパラメータが現在のテストに使用されていることを示しています。

機器の設定が変更されている場合、この商品には特別なアイコンが表示されます

最適化の開始 #

最適化を始めるには「設定」タブの「スタート」をクリックします。最適化の進行状況が左側に表示されます。

最適化結果の表示場所 #

各最適化実行ランの詳細は「オプティマイズ」タブで表示されます。このタブには、自動売買ロボットの性能を評価するために役立つ、一般的なテストの結果、ならびに利益や取引数などの多くの統計値が含まれています。

詳細はテストレポートセクションをご覧ください。

最適化レポートは、列ヘッダをクリックすることで、任意のパラメータで並べ替えることができます。並べ替えによってもっとも利益のあるパラメータの組み合わせを見つけ単一のテストを実行して詳細レポートを取得します。

最適化の結果

各最適化実行では以下の値が表示されます。

  • パス — テスト実行の数。
  • 結果 — 最良のランを選択する最適化基準のパラメタ—の値。
  • 利益 — 実行後に受け取られた損益。
  • 取引数 — ランで実行された取引(損益を固定した約定)の総数。
  • プロフィットファクター — パーセントでの全損失に対する総利益の割合。1の値は、これらのパラメータが同じであることを意味します。
  • 期待利得 — 約定の平均リターンを示す統計的に算出される値。
  • ドローダウン — 株式の相対的なドローダウン、株式の最大値からパーセントでの最大の損失。最適化中のエキスパートアドバイザーによる出金はドローダウンの計算に考慮されます。
  • 回復率 — このパラメータは、ストラテジーのリスクレベル(取得した利益を獲得するリスクに置かれた資金)が表示します。これは、利益と最大ドローダウンの割合として計算されます。
  • シャープレシオ — ポートフォリオマネージャー、ファンドの結果、または取引システムのパフォーマンスを評価するために一般的に使用される古典的な指標。この比率は、(収益率–リスクフリーレート)/収益率の標準偏差として計算されます。ストラテジーテスターでは、リスクフリーレートはゼロであると想定されています。比率の値は通常、次のように解釈されます。
  • シャープレシオ< 0 — ストラテジーは不採算です。(悪い)
  • 0 < シャープレシオ < 1.0 - リスクは報われません。このようなストラテジーは、代替手段がない場合に検討できます(不定)
  • Sharpe Ratio ≥ 1.0 — リスクが報われ、ポートフォリオ/ストラテジーが結果を示すことができる可能性があります(良い)
  • Sharpe Ratio ≥ 3.0 — 高い値は、特定の各取引で損失を得る可能性が非常に低いことを示します(とても良い)
  • 最適化された入力 — 一般的な統計値に加えて、現在使われている入力パラメータ値が表示されます。

コンテクストメニューコマンドを使うと、上記の欄のいくつかを表示/非表示することができます。便宜上「最適化結果に切り替える」オプションをチェックしてください。最適化プロセスが完了すると、ストラテジーテスターは自動的に「結果」タブに切り替わります。操作ログタブのコンテキストメニューでも同じコマンドを使用できます。

フィルターを使用して、失敗したパスをリストから非表示にします。

  • 取引なしパス
  • 損失を生むパス
  • ドローダウンが50%を超えるパス
  • 回復係数が1未満のパス
  • シャープレシオが0.5未満のパス

最適化結果の表は、より効率的な視覚分析を可能にするために、次のように色分けされています。

  • 残高: 初期入金を上回る値は青色、下回る値は赤色で表示されます。
  • 利益: ゼロを上回る値は青色、下回る値は赤色で表示されます。
  • 期待されるペイオフ: ゼロを上回る値は青色、下回る値は赤色で表示されます。
  • ドローダウン: 緑(0〜5%)から赤(30%を上回る)。
  • シャープレシオ: 緑(2を上回る)から赤(0未満)。
  • シャープレシオ: 緑(2を上回る)から赤(1未満)。
  • 複合基準: 深緑色(80以上)から赤(20未満)へ。
  • 最適化がフォワードテストを含む場合、このタブは対応するバックテストとフォワードテストの最適化パラメータ(最適化基準)を宇組みます。バックテストとフォワードテスト結果の切り替えはコンテクストメニューでできます。
  • 最適化結果にダブルクリックすると、そのランに使われたパラメータでのエキスパートアドバイザー テストが開始します(最適化が終了している場合)。
  • 遺伝的最適化では、テストラン(ポピュレーションメンバー)は一つ前ランと同じパラメータ(遺伝子)を持つことができます。この場合、このランは同じテスト結果を有するので、結果タブには表示されません。しかし、オプティマイズグラフには、最良の結果を検索のためにすべてのテストを可視化するために表示されます。
  • 最適化の実行の赤い背景は、エキスパートアドバイザーの操作中にエラーが起こったことを示します。適切なメッセージはテスターログにも追加されます(「tested with error」)。

最適化キャッシュ #

キャッシュには、以前に計算された最適化パスに関するデータが格納されます。ストラテジーテスターは、一時停止後に最適化を再開できるようにデータを保存し、すでに計算されたテストパスの再計算を回避します。

最適化キャッシュは、最適化されたパラメータのセットごとに別々のバイナリファイルとして [プラットフォームデータディレクトリ]\Tester\cache に格納されるようになりました。ファイル名は、ExpertName.Symbol.Period.StartDate.EndDate.GenerationModeOptimizationMode.Hash.opt として名付けられます。ここで

  • ExpertName — エキスパートアドバイザー'名.
  • Symbol — 金融商品
  • Period — 時間軸 (M1、H1,...)
  • StartDate — 最適化の開始日
  • EndDate — 最適化の終了日
  • GenerationModeティック生成モード (: 0 — 全てのティック、1 — 実のティックに基づくすべてのティック、2 — 1 分 OHLC、3 — 始値のみ、4 - 数学計算)
  • OptimizationMode最適化の種類 (: 0 — 無効、1 — 低速かつより完全なアルゴリズム、2 — 高速遺伝的アルゴリズム、3 — 気配値表示の全ての銘柄を選択)
  • Hash — キャッシュファイルを見つけるために使用る上記のすべてのパラメータのハッシュ派生

キャッシュファイルを使用すると、以前の最適化の結果を表示できます。[最適化結果]タブを開き、エキスパートアドバイザーと目的の最適化キャッシュを持つファイルを選択します。

以前の最適化結果の表示

ディスクにあるすべてのエキスパートアドバイザーキャッシュファイルの最適化の日付、テスト設定(銘柄、時間枠、間隔)および入力パラメータが表示されます。最適化結果は、結果が得られた取引サーバによって更にフィルタリングすることができます。<br4>

結果表示モードからは、最適化の初めに選択した最適化基準を変更できます。これは[結果]タブに表示され、テストされた入力パラメーターのセットの品質を決定します。最適化基準の値が高ければ高いほど、与えられたパラメータセットによるテスト結果は良好であると考えられます。タブの上部にあるリストから目的の基準を選択すると、テスターは自動的に[結果]列のすべての値を再計算します。

Office Excelなどのサードパーティ製のプログラムで結果を分析するには、最適化レポートはコンテキストメニューの[XMLにエキスポートXMLにエキスポート]コマンドでファイルとして保存することができます。また、コンテキストメニューには、キャッシュファイルをエクスポートおよびインポートするためのコマンドがあります。異なるプラットフォーム間で最適化結果を転送するには、これらのコマンドを使用します。

  • ディスク領域使用を最適化するために、キャッシュファイルは30日以内にアクセスされないと自動的に削除されます。
  • 遺伝的最適化の中間結果は各世代の計算後に(platform_data_folder/tester/cache/*.gen ファイルで)キャッシュに保存されます。従って、最適化プロセスは、いつでも中断することができます。たとえ遺伝的最適化の過程が外部要因(例えば停電)の結果として中断されても、最適化の再起動時には自動的に最後に計算された世代から続行されます。遺伝的最適化キャッシュは最適化設定が変更されるか最適化が完成するまで保存されます。
  • 通常の最適化停止(ストップボタンが押された場合)では、以前に計算された実行は全て保存されます。最適化プロセスが再開されると、それが最後に計算されたランから続行されます。

最適化結果の可視化 #

取引プラットフォームのストラテジーテスターは最適化の結果を提示するための強力な可視化システムを提供します。「オプティマイズグラフ」を開きます。このタブには複数のチャートタイプがあり、コンテクストメニューで切り替えることができます。

ゼロライン(プレーン)

フラット以外の はすべてゼロライン(または立体チャートの場合はペイン)を持ちます。バランス値が最適化基準として使われた場合、この線は通常初期証拠金を示し、損失と利益を別々に可視化することができます。他の場合はすべて最適化基準のゼロ値で引かれます。

結果グラフとリニアチャート(1D) #

最適化結果のグラフは自動的に開きます。エキスパートアドバイザーの各入力パラメータでの実行は、グラフの点として表されます。パスの数は横軸に示され、最適化基準であるパラメータの値が縦軸に示されてます。グラフは、最適化基準の値に応じて、緑から赤のグラデーションで色分けされます。

結果グラフとリニアチャート(1D)

リニアチャート(1D)は横軸として選ばれた最適化パラメータに依存する最適化基準(縦軸)として選択されたパラメータの変形を表します。横軸のパラメータは、コンテクストメニューで「X軸」コマンドを使用して選択します。

フラットチャート(2D)及び立体チャート(3D) #

二次元グラフモードでは、最適化のために使用される選択されたパラメータの変形は、両方の軸上に示されています。最適化基準の変形は色のグラデーションで表されます。色が深いほど最適化基準の値が高いです。

フラットチャート(2D)及び立体チャート(3D)

3次元可視化モードでは、最適化のために使用される選択されたパラメータの変化は、XY両軸上に示されます。最適化基準の変形は色のグラデーションで表されます。

縦軸と横軸のパラメータを選択するには、コンテクストメニューの「X軸」と「Y軸」コマンドを使用します。

マウスを使用した3D チャート管理

  • チャートを移動するには、マウスの左ボタンでグラフの中央部をつかんでカーソルを移動します。
  • 垂直軸の周りにチャートを回転させるには、中央部以外チャートをつかむとカーソルを移動します。
  • 水平軸の周りにチャートを回転させるには、「Ctrl」キーを長押ししたままマウスホイールを回転させます。
  • チャートでズームイン/アウトするには、チャートの中央部でマウスの左ボタンを長押ししながら「Ctrl」を押してマウスカーソルを垂直方向に動かします。
  • ゼロプレーンを動かすには、チャートの中央部以外でマウスの左ボタンを長押ししながら「Ctrl」を押してマウスカーソルを垂直方向に動かします。
  • チャートの初期位置に戻るには、その中央部にダブルクリックします。

キーボードを使用した3D チャート管理

アクション

キー

グリッドの(非)表示

G

色での塗りつぶしと線での塗りつぶしの切り替え

Space

カメラを上に移動(チャートを下に移動)

上矢印

カメラを下に移動(チャートを上に移動)

下矢印

カメラを右に移動(チャートを左に移動)

右矢印

カメラを左に移動(チャートを右に移動)

左矢印

カメラを近づける(チャートにズームイン)

プラス

カメラを遠ざける(チャートからズームアウト).

マイナス

横軸に沿ってグラフを下向きに回転

Home

横軸に沿ってグラフを上向きに回転

Page Up

縦軸に沿ってグラフを逆時計回りに回転

End

縦軸に沿ってグラフを時計回りに回転

Page Down

ゼロプレーンを1つ上に移動

Ctrl+上矢印

ゼロプレーンを1つ下に移動

Ctrl+下矢印

ゼロプレーンを10単位上に移動

Ctrl+Page Up

ゼロプレーンを10単位下に移動

Ctrl+Page Down

ゼロプレーンをグラフの最大値に移動

Ctrl+Home

ゼロプレーンをグラフの最小値に移動

Ctrl+End

ゼロプレーンの透明性を増加

Ctrl+プラス

ゼロプレーンの透明性を減少

Ctrl+マイナス

ゼロプレーンの透明性を最大限に増加(消える)

Ctrl+右矢印

ゼロプレーンの透明性を最少限に減少(完全に透明でなくなる)

Ctrl+左矢印

初期化グラフ設定にリセット

テンキーの「5」キー

最適化されていない先行期間の自動売買ロボットのテスト #

フォワードテストは、異なる期間での最良の最適化の結果の繰り返した実行です。この機能を使用すると、履歴データの特定の領域でのパラメータフィッティングを回避することができます。

フォワードテストを始めるには「設定」タブの「フォワード」フィールドで全体の期間を選択します。

  • No — フォワードテストが使用されない
  • 1/2 — 指定された期間の半分がフォワードテストに使用される
  • 1/3 — 指定された期間の三分の一がフォワードテストに使用される
  • 1/4 — 指定された期間の四分の一がフォワードテストに使用される
  • カスタム — フォワードテストの開始日を手動で指定する

先行期間

  • 総期間の第2(最新)の部分は、常にフォワードテストのために使われています。
  • フォワードテストの開始日はオプティマイズグラフの垂直線として表示されます。

選択された部分は「日付」フィールドで指定された値によって分離されます。最初の部分は、バックテストの期間であり、2つ目は、フォワードテストの期間です。

エキスパートアドバイザーの完全な最適化(高速または低速)はバックテストの期間で行われます。その後、最良の実行の10 %(完全アルゴリズム)または25 %(遺伝的アルゴリズム)が選択されて、先行期間でテストされます。

フォワードテストのパス数には下限値があります。ベストランの数が256未満である場合にはベストランの数が256に達するまでフォワードテストには追加のテストが使用されます。ランの総数が256未満である場合、すべてのランがフォワードテストに使われます。

バックテストと先行テストは「オプティマイズ結果」(コンテクストメニューで「先行テスト結果」を選択) 及び「先行結果」タブで比較できます。両結果が同じなほど、エキスパートアドバイザーは実際の取引で良い結果をもたらします。

先行期間でのオプティマイズ結果の可視化は「先行テストグラフ」タブで見られます。バックテストの結果との切り替えにはコンテクストメニューを使用します。

先行オプティマイズ結果

テスト結果の詳細は「オプティマイズ結果の表示場所」及び「オプティマイズ結果の可視化」セクションをお読みください。

エージェントを使用したマルチスレッドテスト #

マルチスレッドストラテジーテスターはすべての利用可能なコンピューターリソースを使用します。テストと最適化はユーザーのコンピューターにサービスとしてインストールされている特別なコンピューティングエージェントによって実行されます。エージェントは独立して動作し、最適化パスの並列処理を可能にします。

ローカル、遠隔、クラウド(MQL5クラウドネットワーク)の3種類のエージェントが使用できます。ローカルエージェントは取引プラットフォームのインストール時に自動にインストールされます。その数は、コンピュータの論理コアの数に等しいです。

遠隔及びクラウドエージェントは他のコンピューターで実行されます。エージェントについての詳細は「エージェントのローカルファームを使用して最適化をスピードアップする方法」及び「MQL5クラウドネットワークを使用して最適化をスピードアップする方法」をご覧ください。

ストラテジーテスターの「エージェント」セクションを開いて最適化に使用したいエージェントタイプを選択します。

テストエージェント

ヒントと機能

  • ラップトップのバッテリーを節約するには、ローカルエージェントを無効にし遠隔及びクラウドエージェントのみを使用します。
  • テスト/最適化が手動で終了されなかった場合(ストップボタンが設定タブで押されず取引プラットフォームも閉じられなかった)、使用されたローカルエージェントのプロセスは5分間コンピューターメモリーからアンロードされません。この機能によって、同じエキスパートアドバイザーを同じ銘柄、時間枠と期間で再テスト/再最適化する場合、価格履歴を準備してエージェントプロセスを開始することによる遅延を回避することができます。
  • プラットフォームのインストールではローカルエージェントのみがインストールされます。これらはローカルプラットフォームのストラテジーテスターのみで使用されます。グローバルMQL5クラウドネットワークにも接続できる遠隔エージェント手動でのみインストールできます。

エージェントのローカルファームを使用して最適化をスピードアップする方法 #

より多くのコアを持つプロセッサを購入することはできますが、これによって同時タスクの数を乗算することはできません。ローカルネットワーク内のプロセスエージェントで独自のファームを作成することができます。

エージェントファームの作成の方法 #

ローカルネットワークの各コンピューターにエージェントをインストールします。コンピューターにプラットフォームがインストールされている場合は「ツール」メニューでテストエージェントマネージャーを開きます。

ストラテジーテスターエージェントマネージャー

他の場合、エージェント管理に使用される別個のMetaTrader5ストラテジーテスターエージェントアプリケーションをダウンロードして、簡単なインストールを行います。

マネージャーの「サービス」タブで下記を行います。

  • インストールするエージェントの数を選びます。これはコンピュータの論理コアの数に応じてインストールされます。
  • エージェントを接続するにはパスワードを入力します。
  • 接続ポートの範囲を選択します。
  • 「追加」をクリックします。

インストール後、エージェントは、ローカルネットワーク上の他のコンピュータから使用できます。

遠隔エージェントは64-ビットシステムを必要とします。

トラフィックやディスク容量の節約だけでなく、セキュリティ上の理由により

  • エキスパートアドバイザーメッセージ(Print() 関数)や取引操作に関するメッセージは操作ログに追加されません。
  • DLLは遠隔エージェントでは呼び出しできません。

エージェントの接続の方法 #

ストラテジーテスターを開きます。「エージェント」タブで「ローカルネットワークファーム」を選択し、コンテクストメニューで「追加」をクリックします。

遠隔エージェントの追加の方法

最も簡単かつ速いのは、ローカルネットワークで自動的にIPアドレスとポートの範囲をスキャンすることです。それらを選択して、インストール時に指定したエージェントの接続パスワードを入力します。

LANでのエージェントの検索

「完了」をクリックすると見つかったエージェントはすべてテストに利用できるようになります。

エージェントを追加する他の方法は下記の通りです。

  • エージェントの追加(IPアドレスかドメイン名)— エージェントがインストールされているサーバのIPアドレスまたはドメイン名とエージェントに接続するためのポートとパスワードを指定します。
  • *.mt5 ファイルからインポート— オプションを選択し「次」をクリックしてエージェントインポートに使われる*.mt5 ファイルを指定します。
  • MetaTester5 エージェントマネージャを使用してコンピュータにインストールされたエージェントは、同じコンピュータ上でも遠隔エージェントとして接続することができます。計算中にプロセッサコアが余分な計算能力を持っている場合、すべてのコンピューティング能力を使用するためにより高い負荷がかかることがあります。
  • エージェントが接続できない場合、またはネットワークのスキャン時にエージェントが見つからない場合は、リモートマシンのWindowsファイアウォール設定を開き、アプリケーション\[プラットフォームインストールディレクトリ]\metatester64.exeの受信を許可するルールを追加します。

エージェント設定の変更の方法 #

設定の変更にはコンテクストメニューの「編集編集」をクリックします。

エージェント設定

設定ウィンドウには下記のフィールドが使用可能です。

  • 名前 — エージェント名
  • アドレス — コロンで区切られたエージェント接続のためのIPアドレスとポート
  • パスワード — 接続パスワード
  • 有効 — このオプションはテストと最適化の際にエージェントの使用を有効/無効にすることができます。

ローカルエージェントの設定ではそれらを有効/無効にするオプションのみが使用できます。

遠隔エージェント設定のインポートとエクスポート #

遠隔エージェント設定の簡易化のために、プラットフォームは設定のインポート/エクスポート機能を用意しています。設定ファイルは *.mt5 拡張子を持ちます。インポート/エクスポート機能は「エージェント」タブのコンテクストメニューにあります。

設定ファイルは 名前;アドレス:ポート;パスワード;説明;有効の形式を持ちます。

  • 名前 — エージェント名
  • アドレス:ポート — コロンで区切られたエージェント接続のためのIPアドレスとポート
  • パスワード — 接続パスワード
  • 説明 — エージェントが実行されているハードウェアの説明
  • 有効 — エージェントの操作モード:1 — 有効、0 — 無効

異なるエージェントの設定は、改行で互いに分離されています。

MQL5クラウドネットワークを使用しての最適化のスピードアップの方法 #

MQL5クラウドネットワークは数千台のコンピュータのリソースを使用した、エキスパートアドバイザーの最適化を可能にします。ネットワークは、遠隔エージェントを結合し、それらに最適化タスクを分散します。ストラテジーテスターはクラウドネットワークを地理的に分散された(例:MQL5クラウドヨーロッパ)複数のアクセスポイントを介して接続します。

MQL5クラウドネットワークの機能 #

  • MQL5クラウドネットワークのリソースは完全なアルゴリズム(遅い)のみに使用されます。
  • 遺伝的最適化では、単一のアクセスポイントのエージェントが使用されます。これは、遺伝的アルゴリズム特定の機能と関係します。
  • 遺伝的最適化モードは、最適化ステップの総数が一億を超えた場合に自動的に有効にされます。
  • MQL5クラウドネットワークは64-ビットシステムを必要とします。
  • MQL5クラウドネットワークの使用に加えて、ご自身のCPUコンピューティングパワーをネットワークに提供することもできます。遠隔エージェントをインストールしてネットワークに含むには、特別なユーティリティーであるMetaTesterを使用します。
  • MQL5クラウドネットワークの詳細は公式サイトで読むことができます。

MQL5クラウドネットワーク使用料の支払い #

  • MQL5クラウドネットワークのエージェントの使用は有料です。使用料の計算法は別のセクションで説明されています。クラウドエージェントのリストの上部には現在のMQL5.communityアカウントの残高が表示されます。
  • MQL5クラウドネットワークを使用するには、ユーザーはMQL5.communityアカウントに少なくとも1US ドルを持たなければなりません。タスクは、同時に複数のアクセスポイントへのパッケージの中に渡され、ユーザーはそのタスクの完了に支払うことができなければなりません。ネットワークは、計算の開始前に正確に推定することができない時間と計算に必要なリソースとして、正確なコストを計算することができません。

MQL5クラウドネットワークの有効化 #

ネットワークエージェントを使用するには、コンテクストメニューで「有効有効」を使用します。MQL5クラウドネットワークは有料で、ユーザーはすべてのアカウント操作に必要なMQL5.communityウェブサイトアカウントを所有しなければなりません。アカウントの詳細はプラットフォーム設定のMQL5.communityタブで指定されます。

MQL5クラウドネットワークエージェントを有効にする前にMQL5.communityアカウントの詳細が指定されていない場合は、指定することが促されます。

MQL5クラウドネットワークの有効化

ウェブサイトで登録していない場合新規アカウント作成リンクを使用します。

MQL5クラウドネットワークを使用した計算の開始 #

従来の最適化と同様に、すべてのテストオプションとエキスパートアドバイザーの入力パラメータは設定される必要があります。「エージェント」タブでは、ストラテジーテスターが利用可能なエージェントにどのようにタスクを分散するかがモニターできます。各アクセスポイントで利用可能及び現在使用されているエージェントの数が表示されます。

MQL5クラウドネットワークエージェントを使用した分散コンピューティングの実行

トレーダは、合理的な時間内に最適化パスの数十万を実行する必要があります。マルチスレッド ストラテジーテスターとMQL5クラウドネットワークの使用によって、ネットワークなしで数日を必要とする計算を1時間で完了することができます。取引プラットフォームからは数千のコアのコンピューティングパワーが直接利用可能です。

各最適化パスには制限があります。最適化の間、エキスパートアドバイザーは4GBを超える情報をディスクに書き込んだり、4GBを超えるRAMを使用したりすることはできません。制限を超えると、ネットワークエージェントは計算を正しく完了できず、結果を受け取ることができなくなります。ただし、計算に費やした時間はすべて料金が発生します。