MQL4toMQL5

前回【MQL4からMQL5への移植(その1)】のつづきです^^

MT4では、BidやBarsといった変数には自動的にその値が入っていましたが、
MT5では、SymbolInfoDouble(_Symbol,SYMBOL_BID)や
Bars(_Symbol,PERIOD_CURRENT)といった感じに関数で呼び出さなくてはなりません。

Close[1]やHigh[0]といった配列にいたっては、
データを入れる配列をつくって、
そのなかにデータをコピーして、
どのデータを知りたいか選択してやっと呼び出せます^^;

そのうえ、MT4のように1本前の足の高値をHigh[1]といったように、
シフトの数で指定するようにする場合は、
ArraySetAsSeries(…)という関数を使って『最新の足を0として数えますよ』と
書いておかないといけません。

例えば、ArraySetAsSeries(Open,true)を書き忘れてしまっていて、
MT4のように、最新の足の始値を取得しようとOpen[0]と書いたら、
最古の始値を取得しちゃいます^^;

慣れるまで大変ですので、頭に

#include <mql4to5_timeseries_array.mqh>

と、start()に替わるOnTick()(EAの場合)の中の最初に

   CopyCurrent();

を、書き込むだけでよいインクルードファイルを作りました^^

今回は、前回よりも書き換え手順が楽ですね^^

ダウンロードはこちらから→mql4to5_timeseries_array.zip

そのサンプルEA→timeseries_sample1.zip

でわでわ^^