« MetaTrader 4でサマータイムかどうか判定する関数 | トップページ | MetaTrader4で正しいDMIを作りました »

2014年6月16日 (月)

MetaTrader4のEAで足が増えた時だけ処理するには

EAの処理は、init、start、deinit、(新しい書き方では、OnInit、OnTick、OnDeinitかな?)になりますが、start関数はティックデータが更新されると動きます。

このため、EAを作成した時に、直前の足で決定した値を元に、次の足が増えたタイミングで動くようにするには一手間掛ける必要があります。

次の定義を頭でします。
datetime _TimeCheck;

initの中でTime[0]を代入しておきます。
int init() {
_TimeCheck = Time[0];
}

startの中でTime[0]と同じでない場合に処理を行います。
int start() {
if(_TimeCheck != Time[0]) {
ここに処理を書く。
_TimeCheck = Time[0];
}
}

これだけでOKです。

|

« MetaTrader 4でサマータイムかどうか判定する関数 | トップページ | MetaTrader4で正しいDMIを作りました »

コメント

コメントを書く



(ウェブ上には掲載しません)




« MetaTrader 4でサマータイムかどうか判定する関数 | トップページ | MetaTrader4で正しいDMIを作りました »