MT5のストラテジーテスターでは、バックテストに使用するヒストリカルデータの種類として、下記の4種類が選択できます。
全ティック | MT5が生成した疑似ティックを使用 |
---|---|
リアルティックに基づいたすべてのティック | MT5の取引サーバから取得したブローカーのティックを使用 |
1分足OHLC | 1分足の始値・高値・安値・終値のみを使用 |
始値のみ | 選択した時間枠の始値のみを使用 |
この4種類のうち、いわゆるリアルテック(ブローカーが実際に配信したティック)は、「リアルティックに基づいたすべてのティック」となります。
しかし、MT4で「リアルティック」として一般的にイメージされるものとは性質が異なり、リアルティックであっても正確なデータにはならない可能性がありますので、注意が必要です。
この記事では、MT4のリアルティックとの違いや正確なヒストリカルデータを使用する方法、4つのヒストリカルデータの種類の詳細を解説します。
MT4のリアルティックとの違い
MT4は、ログインしているアカウント(FXブローカー)のリアルティックをバックテストに利用することができません。ストラテジーテスターでデフォルトで使用されるデータは、メタクオーツのサーバーからダウンロードしたものになります。
そのため、「リアルティック」といった場合、Ducascopyなどの、ヒストリカルデータ提供用に作成されたデータをインポートして使うことを指します。
一方、MT5にはデフォルトで、ログインしているアカウント(FXブローカー)のリアルティックを使う選択肢が用意されています。それが、「リアルティックに基づいたすべてのティック」モードです。
使用しているブローカーの値動きでバックテストができるのは便利ではありますが、制約もあります。具体的には、昔のデータになればなるほど不正確になります。
MT5上部の「表示」メニューから「銘柄」を選択すると、スプレッドなどのヒストリカルデータの詳細を確認することができます。

これでExnessゼロスプレッド口座の2010年のヒストリカルデータと2022年のヒストリカルデータをユーロドルで比較してみると、以下のようになります。

ゼロスプレッド口座なので、現在(2022年)のスプレッドはゼロ(手数料別)ですが、2010年は平均して9ポイント(0.9pips)のスプレッドが発生していますね。
なお、その後もスプレッドは変動し、ゼロになったのは2019年のことです。
MT4のリアルティックとしてよく使われているDucascopyのヒストリカルデータも、Ducascopyの取引条件変更などでスプレッドは変化していますが、MT5のリアルティックの方が変動幅は大きい印象です。
正確な理由はわかりませんが、口座の取引条件変更のほかにも、過去のデータには別の口座タイプのデータを使っているなどの事情があるのかもしれません。
正確なヒストリカルデータを使用する方法
バックテスト設定で「リアルティックに基づいたすべてのティック」を選択すれば、確かにリアルティックにはなるのですが、先ほど説明した通り、そのリアルティックがあまり信頼できないこともあります。
正確なヒストリカルデータを使用したい場合には、まずは、使っているブローカーのMT5で入手できるヒストリカルデータをさかのぼってみて、現在とどの程度違うのかを確認してください。
その後、あまりにデータが異なるようなら、MT4と同様に外部のヒストリカルデータのインポートを検討するのがいいでしょう。
外部のヒストリカルデータをインポートする方法は、こちらの記事にまとめています。

Ducascopyのヒストリカルデータも時期によって多少は変動しますので、スプレッドを完全にゼロにしてバックテストするという選択肢もあります。
ヒストリカルデータとしてインポートできるのは、「CSV」または「HST」の形式のファイルです。このうち、HSTファイルは、MT4とMT5のヒストリカルデータの共通規格で、ファイルそのものを開いて修正することは基本的にできません。
しかし、CSVファイルであれば、エクセルなどで開くことができ、一番右の列に表示されるスプレッドの値のみをゼロにすれば、スプレッドゼロのヒストリカルデータを作成することができます。

上記の画像は文字がつながっていて見にくいですが、タブ区切りで、MT5にインポートするヒストリカルデータの9つの要素(日付・時間・始値・高値・安値・終値・ティックボリューム・ボリューム・スプレッド)が記載されています。
MT5の4つのヒストリカルデータの種類
MT5で利用できる4つのヒストリカルデータについて、メタクオーツの資料を基に紹介します。
・全ティック
・リアルティックに基づいたすべてのティック
・1分足OHLC 1分足の始値・高値・安値・終値のみを使用
・始値のみ
なお、ヒストリカルデータの種類は、バックテスト設定の「モデル」の項目で選択します。

上記の4種類のほかに「数値計算」という選択肢もありますが、これはヒストリカルデータには関係ありません。MQL5言語でプログラムを組んで、複雑な計算を行うものになります。
全ティック
全ティックは、1分足のデータに基づいて生成されます。生成のイメージは次のようなものです。

作成される数が決まっているので、リアルティックよりはティックの数が少なくなります。
リアルティックに基づいたすべてのティック
ブローカーのリアルティックです。全ティックよりもデータが多いので、ダウンロードする際に時間がかかります。
スプレッドは完全な変動ではなく、1分足に対して1つのスプレッドの数値が適用され、その1分足の中のティックのスプレッドは固定になるそうです。
1分足OHLC・始値のみ
この2つは、通常のEAのバックテストに使うと結果が不正確になりますので、おすすめしません。
「1分足OHLC」は1分足なので少しましですが、始値のみは、バックテストを行っている時間枠の始値が使用されますので、例えば1時間足であれば、1時間に1回しか条件判定が行われません。
もともと始値のみを条件にトレードするロジックになっているEAにしか使えないでしょう。
利用目的によって使い分ける
個人的におすすめなのは、「全ティック」と「リアルティックに基づいたすべてのティック」を使い分ける方法です。
EAを開発する目的で使う場合は、1つのバックテストに長時間かかるとあまり効率がよくないので、ざっくり全ティックでバックテストして、しっかり結果を見たい場合のみ「リアルティックに基づいたすべてのティック」で時間をかけてバックテストするやり方です。
逆に、購入したEAをバックテストするのであれば、最初から「リアルティックに基づいたすべてのティック」を使うのもありです。まだMT5のEAはほとんど販売されていませんが、徐々に一般のEAトレーダーもバックテストする機会が増えてくるかもしれませんね。
