【開発の裏側⑬】MT5の時間足の番号は、分の数ではありません

【開発の裏側⑬】MT5の時間足の番号は、分の数ではありません

記事
IT・テクノロジー
どうも、FXトレーダー兼システムエンジニアのナオトです。

MQL4では、時間足を表す番号がそのまま分の数になっています。
15分足は15、1時間足は60、4時間足は240、日足は1440です。

MQL5でも15分足は15です。
ところが1時間足は16385、4時間足は16388、日足は16408になります。
1時間足から先は、番号が分の数ではなくなるんです。

今回は、この違いで実際につまずいた2つの場面を書きます。



1つ目は、EAの検証の設定です。

MT5のテスターに渡す設定ファイルで、上位足を15分足にするつもりで、16385と書いてしまいました。
16385は1時間足です。

MT4版とMT5版の計算が一致しているかを確かめていたところ、上位足の1つだけが9,247本食い違いました。
データの長さや、チャートの設定まで疑ってから、ようやく番号の取り違えに気づきました。

それからは、設定ファイルに数字で書くときは、その番号が何の時間足かを確かめてから書くようにしています。



2つ目は、インジケーターをMT4からMT5へ移すときです。

MQL4版の e-DowgatorPro2 では、今のチャートの時間足と上位足の番号を、そのまま比べたり割り算したりしていました。
上位足のほうが番号が大きいか。上位足1本が今の足の何本分か。
分の数なので、これで正しく動きます。

MQL5で同じことをすると、1時間足と15分足の比が16385÷15になります。
1本が1092本分という、ありえない数字になるんです。

MT5へ移したときは、比べるところを全部、1本の足が何秒かという値に置き換えました。
秒なら、MQL4と同じ考え方で比べられます。



コンパイルは通るので、エラーでは教えてくれません。
表示が少しおかしい、数字が合わない、という形で出てきます。

MT4とMT5の変換のご依頼は、こちらで受けています。


最後までお読みいただき、ありがとうございました。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す