![Strategy Tester: トレード戦略のテストモード](https://c.mql5.com/i/articles/overlay.png)
Strategy Tester: トレード戦略のテストモード
はじめに
テクニカル分析の多くのプログラムは、履歴データで取引戦略をテストすることができます。ほとんどの場合、テストは価格バー中で傾向をシュミレーションせず、既に完成したデータ上で行われます。それはより早い方法ではありますが、データは不正確です。
質の良い取引ストラテジーテストの為には、適した価格バーの成長のモデリング方法を選択することが重要です。非常に正確なテスト、完全に正確なティック履歴があるとき、理想的なバリエーションは事実上ありません。普通のトレーダーにとって、分析を行う為に数年の期間にわたるティック履歴を見つけることはとても困難です。
この問題を解決するために、より細かい期間のデータの価格変更モデリングを基準点として使用することができます。
価格バーのモデリング方法
MetaTrader 4クライアント端末には、3つのバーを表示する方法があります。
![](https://c.mql5.com/2/17/tester_window.png)
- 全ティック(すべての利用可能な最小の時間軸に基づいて、最も正確な方法)
- コントロールポイント(最小時間軸に基づいて、おおよその結果が得られる概略的方法)
- 始値のみ(エキスパートアドバイザーに基づいた早い方法)
トレード戦略をテストする前に、中間価格バーが生成され、結果は(例:/tester/history/eurusd_1440_1.fxt)ファイルに保存されます。[スタート]ボタンをクリックするたびに、テスターは、新たにティック・テストシーケンスを含むファイルを生成します。Fxt-ファイルは、[ファイル]から[オープン・オフライン]を介してオフライン・チャートなどの端末で開くのが簡単です。以前にキャッシュされたデータの使用は、中間データに基づいてテストを実行可能にします。適切なフォーマット(*.FXT形式、完全オープン)でファイルを/tester/history/ディレクトリに保存するのに十分です。これらのファイルは、[ファイル]→[オープン・オフライン]を通してのオフライン・チャートとして端末で開くのが簡単です。
![](https://c.mql5.com/2/17/open_offline_window.png)
モデリングの例
1時間足の最も単純なモデリング法から始めましょう。1時間足の赤枠(2007年9月午前10時)を見てみましょう。
![](https://c.mql5.com/2/17/eurusd_h1_original.gif)
オープン価格
一定のトレーダーはインターバー・モデルの特性に影響を受けたくないので、完了しているバーで取引を行うエキスパートアドバイザーを作成しています。次のいずれかが表示されたら、現在の価格バーが完了したという事実を知ることができます。まさにこういったエキスパートアドバイザーの為にモデリングモード「オープン価格」があります。
![](https://c.mql5.com/2/17/eurusd_h1_open_prices.gif)
このモードでは、バーが開き(Open = High = Low = Close, Volume=1)、エキスパートアドバイザーは、前の価格バーの終了を識別できます。この発生したバーで、エキスパートアドバイザのテストが起動します。次の段階では、終了したバーが得られているので、テストはそれ以上実行されません!
コントロールポイント(最小時間枠)
コントロールポイントのモデリング法は、バーの中で取引を行うエキスパートアドバイザの簡易評定の為のものです。 この方法を使用するには、最小時間軸の履歴データが利用可能でなければなりません。ある場合においては、最小時間軸を持つデータはテストを行っている時間軸の時間領域を完全にカバーしていません。最小時間軸のデータがない場合は、MetaTrader 3クライアント端末の定義済みウェブテンプレートに基づいてバーの推移が作成されます。最小時間軸の履歴データが表示されると、補間はこれらのデータに行われます。ただし、実際の最小時間軸OHLC価格はコントロールポイントとして表示されます。ほとんどの場合、コントロールポイントの方法によりエキスパートアドバイザのテスト結果だけでなく、概算見積もりとして考えられます。このような結果は、中間的な推定のものです。下のグラフでは、1時間足(2007年9月午前10時)の動きの傾向が分かります。
![](https://c.mql5.com/2/17/eurusd_h1_control_points.gif)
全ティック(利用可能な最小時間軸)
このモードは、正確な方法でバー内の価格の動きをモデル化することが可能です。「コントロールポイント」とは異なり、全ティックの場合は、生成のために最も近い最小時間軸のデータだけでなく、全最小時間軸が利用されます。その際、特定の期間に複数の時間枠データが同時に存在する場合、最小時間軸のデータが使用されます。前述の方法と同様に、この方法は、利用可能な最小時間軸のOHLCデータに基づいて、コントロールポイントを生成します。コントロールポイント間での価格変動の生成のために、定義されたテンプレートに基づく補間が使われるので、テストの全範囲をカバーする1分データがあることがとても望ましいです。同一ティックが次々に発生することがあります。その場合、重複している値が抽出されます。
![](https://c.mql5.com/2/17/eurusd_h1_details.gif)
作成されたティックデータの容量の大きさに考慮をしなければなりません。これは、オペレーティングシステムのリソースの消費とテストの速度に影響を及ぼします。
日付の範囲を使用する場合のモデル化
日付範囲は、エキスパートアドバイザー・テストだけでなく、バーのテスト・シーケンスの生成に利用できます。使用されていないデータの量が非常に大きくなる可能性がある場合、特に全ティックのモデリングの場合には、全体の履歴データを生成する必要がないことが多いです。そのため、テスト・シーケンスの最初の生成で日付範囲を使う可能性がある場合、所定の範囲を超えるバーは生成されず、日付範囲内のデータの一部は出力シーケンスに上書きされます。得られた全履歴を正しく指標計算できるように、データはシーケンスから除外されません。最初の100本のバーも生成されないことに留意しなければなりません。この制限は、日付の設定範囲に依存しません。
1分間足の時間軸を参照
時間軸を正確に参照するために、1分間足(2007年9月午前10~11時)を見てみましょう。
![](https://c.mql5.com/2/17/eurusd_m1_original.gif)
この範囲内の各バーの平均ティック量が5を超えないので、シーケンスは、補間を最小利用して生成します。すべての価格は、実際にあるOHLC価格です。
1時間足(終値が発生1時間足チャート上の緑色の線で示されている)と1分間足を比べたらほとんど同じになります。
![](https://c.mql5.com/2/17/eurusd_h1_m1_details.gif)
まとめ
テスト期間を100%カバーするより小さい期間の補助時間軸があると、最大限に正確なテストと信憑性の高い結果を得ることができます。つまり、全ティックのテストの質の問題は詳細な履歴データのサーチによることになります。
MetaQuotes Ltdによってロシア語から翻訳されました。
元の記事: https://www.mql5.com/ru/articles/1511
![MQL5 - MetaTrader 5クライアントターミナルにビルトインされたトレードストラテジーの言語](https://c.mql5.com/i/registerlandings/logo-2.png)
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索