---
title: "ストラテジーテスト - アルゴリズム取引、自動売買ロボット - MetaTrader 5のヘルプ"
description: "ストラテジーテスターは取引ストラテジー（ エキスパートアドバイザー ）を実際の取引に使う前にテスト及び最適化することを可能にします。テストでは、初めにエキスパートアドバイザーが初期パラメータと履歴データを使って実行されます... - ストラテジーテスト - アルゴリズム取引、自動売買ロボット - MetaTrader 5のヘルプ"
image: "https://www.metatrader5.com/i/logo_metatrader5.png"
url: "https://www.metatrader5.com/ja/terminal/help/algotrading/testing"
---

[MetaTrader 5のヘルプ](https://www.metatrader5.com/ja/terminal/help) → [アルゴリズム取引、自動売買ロボット](https://www.metatrader5.com/ja/terminal/help/algotrading) → ストラテジーテスト

# ストラテジーテスト

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

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

ストラテジーテスターは、全ての利用可能なコンピュータリソースを使用できるように、マルチスレッドです。テストと最適化はユーザーのコンピューターにサービスとしてインストールされている特別なコンピューティング[エージェント](https://www.metatrader5.com/ja/terminal/help/algotrading/strategy_optimization#agents)によって実行されます。エージェントは独立して動作し、最適化パスの並列処理を可能にします。

ストラテジーテスターには無制限の数の[遠隔](https://www.metatrader5.com/ja/terminal/help/algotrading/strategy_optimization#farm)エージェントが接続できます。更に、ストラテジーテスターは[MQL5クラウドネットワーク](https://www.metatrader5.com/ja/terminal/help/mql5cloud)にアクセスできます。それは、世界中の数千のエージェントを結集し、この計算能力は、取引プラットフォームのすべてのユーザーによって利用可能です。

ストラテジーテスターはエキスパートアドバイザーのテストと最適化の他に[ビジュアルモード](https://www.metatrader5.com/ja/terminal/help/algotrading/visualization)でのカスタム指標の操作をテストにも使用できます。この機能によって[マーケット](https://www.metatrader5.com/ja/terminal/help/market)からダウンロードされた指標のデモバージョンを簡単にテストすることができます。

## テストの方法 [#](#test)

[エキスパートアドバイザー](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#type)のテストとは過去の価格データを用いて、固定パラメータとの単一の実行です。本当の市場での使用前に、ストラテジーがどのように動作するかをテストすることができます。

> [![「エキスパートアドバイザーと指標の購入前にテストするには」のビデオをご覧ください。](https://www.metatrader5.com/i/help/terminal/en/video_market_test.png)](https://www.metatrader5.com/video/1/ouEh29q3QJ4/video.mp4)
>
> 「エキスパートアドバイザーと指標の購入前にテストするには」のビデオをご覧ください。
>
> マーケットからの購入する前に自動売買ロボットをテストする方法を学ぶためにはこのビデオをご覧ください。マーケットの製品のすべては、ストラテジーテスターでテストできる無料のデモ版を備えています。詳細はビデオでご覧ください。

### テストタスクの迅速な選択 [#](#start_page)

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

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

![開始ページで人気のタスクの1つを選択して、テストをすばやく開始します。](https://www.metatrader5.com/i/help/terminal/en/tester_start_page.png)

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

利用可能なすべてのテストオプションを以下で説明します。

### テストでの自動売買ロボットを選択の方法 [#](#ea)

「![テスト](https://www.metatrader5.com/i/help/terminal/en/test_icon.png)テスト」を[ナビゲーター](https://www.metatrader5.com/ja/terminal/help/startworking/interface)ウィンドウでクリックします。

![テストでの自動売買ロボットを選択の方法](https://www.metatrader5.com/i/help/terminal/en/test_select_ea.png)

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

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

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

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

多通貨エキスパートアドバイザーのテストを始める前に、テストに必要な銘柄を気配値表示 で有効にします。コンテクストメニューを開いて「![銘柄](https://www.metatrader5.com/i/help/terminal/en/symbols_icon.png)銘柄」をクリックして必要な製品を有効にします。

![ 多通貨エキスパートアドバイザーでは、気配値表示で必要な銘柄を有効にします。](https://www.metatrader5.com/i/help/terminal/en/test_show_symbols.png)

### テストパラメータの選択 [#](#settings)

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

![テストパラメータの選択](https://www.metatrader5.com/i/help/terminal/en/tester_settings.png)

### 銘柄と期間

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

### 日付

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

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

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

### 転送

このオプションを使用すると、特定の時間間隔に適合しないようにテストの結果を確認できます。[フォワードテスト](https://www.metatrader5.com/ja/terminal/help/algotrading/testing#forward)中に、[日付]フィールドに設定された期間は、選択されたフォワード期間(フォワードテストのタルト日を指定する際の1/2, 1/3, 1/4、またはカスタム期間)に従って2つの部分に分割されます。

最初の部分は、バックテストの期間です。エキスパートアドバイザーの運用適応期間です。2番目の部分はフォワードテストです。このテストでは、選択したパラメーターがチェックされます。

### 実行

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

[即時実行](https://www.metatrader5.com/ja/terminal/help/trading/general_concept#execution_type)モードでは、ユーザは、取引サーバからのリクオートに対するEAの応答をさらに確認できます。リクエスト価格と実行価格の差が注文で指定された[偏差](https://www.metatrader5.com/ja/terminal/help/trading/performing_deals#deviation)の値を超える場合、EAはリクオートを受け取ります。

遅延はEA([注文](https://www.metatrader5.com/ja/terminal/help/trading/general_concept#order_type)、[ストップレベル](https://www.metatrader5.com/ja/terminal/help/trading/performing_deals#position_modify)によって実行される取引でのみ機能することに注意してください)。たとえば、EAが指値注文を使用する場合、遅延は注文の発行にのみ適用され、注文の実行には適用されません(実際の状況では、実行はサーバでネットワーク遅延なしに発生します)。

**遅延なし**

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

**ランダム遅延**

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

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

**固定遅延**

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

### ティック生成モード

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

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

ティック生成の詳細については、[適切なセクション](https://www.metatrader5.com/ja/terminal/help/algotrading/tick_generation#tick_mode)をお読みください。

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

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

### 初回入金と活用

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

次にテストと最適化のレバレッジを選択します。レバレッジは[ポジションと注文のマージンとしてアカウントに予約された資金の量](https://www.metatrader5.com/ja/terminal/help/trading_advanced/margin_forex)に影響します。

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

選択したエキスパートアドバイザーのソースコードがある場合、このボタンをクリックして、[MetaEditor](https://www.metatrader5.com/ja/terminal/help/algotrading/autotrading#metaeditor)での編集に切り替えることができます。

### テスト設定の管理

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

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

さらに、以前の[最適化結果](https://www.metatrader5.com/ja/terminal/help/algotrading/strategy_optimization#result)のいずれかや、結果が得られた設定にアクセスできます。

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

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

### 高度なテスト 設定

取引制限、マージン設定、手数料などの戦略をテストするときに、[独自の取引アカウントパラメータ](https://www.metatrader5.com/ja/terminal/help/algotrading/testing#extended_settings)を設定します。このオプションにより、ブローカーが提供するさまざまな取引条件のシミュレーションが可能になります。

### 視覚的テスト

[ビジュアルテスト](https://www.metatrader5.com/ja/terminal/help/algotrading/visualization)モードでは、履歴データのテスト中にエキスパートアドバイザーがどのように取引操作を実行するかを正確に視覚化できます。金融商品の各取引はチャートに表示されます。

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

### 入力パラメータの選択 [#](#inputs)

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

各入力パラメータの値を指定します。

![テストされる入力パラメータの選択](https://www.metatrader5.com/i/help/terminal/en/test_inputs.png)

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

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

### テスターの詳細設定 [#](#extended_settings)

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

![高度なテスト設定により、ブローカーが提供するさまざまな取引条件をシミュレーションできます。](https://www.metatrader5.com/i/help/terminal/en/tester_extended_settings.png)

共通

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

証拠金

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

![証拠金設定](https://www.metatrader5.com/i/help/terminal/en/tester_extended_settings_margin.png)

[スク管理モデル](https://www.metatrader5.com/ja/terminal/help/trading/trading_advanced): 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]オプションを有効にします。

![証拠金設定](https://www.metatrader5.com/i/help/terminal/en/tester_extended_settings_commission.png)

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

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

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

- Instant ? 手数料は、各取引の実行中に即座に請求されます。インスタントコミッションのサイズは、取引の[手数料]フィールドに表示されます。インスタントモードでは、手数料はボリューム単位でのみ指定できます(売上高ではありません)。
- Daily ? 手数料は、特別なアカウント状態フィールド[Blocked]で1日累積されます。1日の終わりに、累積額は別の残高操作(1日の手数料または1日のエージェント手数料タイプの取引)でアカウントから引き落とされます。
- Monthly ? 手数料は、特別なアカウント状態フィールド[Blocked]で1ヶ月累積されます。1ヶ月の終わりに、累積額は別の残高操作(1ヶ月の手数料または1ヶ月のエージェント手数料タイプの取引)でアカウントから引き落とされます。
- Monthly ? 手数料は、特別なアカウント状態フィールド[Blocked]で1ヶ月累積されます。選択したオプションにより、[From]フィールドと[To]フィールドに取引量または売上高が示されるエンティティが決まります。

```json
{"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {"@type": "ListItem", "position": 1, "item": {"@id": "https://www.metatrader5.com/ja/terminal/help", "name": "MetaTrader 5のヘルプ"}}, {"@type": "ListItem", "position": 2, "item": {"@id": "https://www.metatrader5.com/ja/terminal/help/algotrading", "name": "アルゴリズム取引、自動売買ロボット"}}, {"@type": "ListItem", "position": 3, "item": {"@id": "https://www.metatrader5.com/ja/terminal/help/algotrading/testing", "name": "ストラテジーテスト"}} ]}
```
