MT4やMT5のチャート画面では、**タイムフレーム(時間足)**をいろいろと変えることができます。
タイムフレームが変わると、各バーの4本値(始値、高値、安値、終値)が変わるので、テクニカル指標の値も変わります。
なので、MQLでバーの4本値やテクニカル指標を求める関数には、タイムフレームを指定するパラメータがあります。
Block EAでも同じです。以下に示すブロックには、タイムフレームを指定するパラメータがあります。「現在チャートの」の「現在」の部分です。
「現在」チャートの場合、EAを挿入したチャートのタイムフレームが設定されます。EAを実行する都度タイムフレームを変えたい場合は、このままでも結構です。
ただ、EAを開発する際に、タイムフレームを決めて開発することも多いです。その場合、挿入するチャートのタイムフレームに関係なく、決まったタイムフレームで動作することが好ましいでしょう。
今回は、各テクニカル指標のブロックで、タイムフレームを指定する方法を紹介します。これによりテクニカル指標ごとにタイムフレームを変える、いわゆる「マルチタイムフレームEA」を作ることができます。
例えば、移動平均のブロックでは、以下のようにタイムフレームを選ぶことができます。
これは、MT4、MT5共通に指定することができるタイムフレームのリストです。ここで、具体的なタイムフレームを指定しておけば、EAを挿入するチャートのタイムフレームに関係なく、指定されたタイムフレームでテクニカル指標が算出されます。
なお、MT5には、これ以外にも選択できるタイムフレームがあります。これについては後ほど説明します。
テクニカル指標にタイムフレームを指定する例として、複数のテクニカル指標でタイムフレームが異なるケースを考えてみます。
例えば、以下のような売買ルールです。