「メタトレーダー入門」では新しいバーの始値でエントリーする命令文として
if(volume[0] > 1 || IsTradeAllowed() == false) return(0); をトレード関数の前に入れておくこととされているが、この方法では、市場が激しく動く下では、取りこぼしを経験するすることが多かった。著者の豊嶋先生自身も本年9月のブログでそのことを指摘、次のようなコードに変えることを提案されている。http://forex.toyolab.com/
void OnTick()
{
static datetime time = Time[0];
if(Time[0] != time)
{
Alert("newbar");
time = Time[0];
}
}
他には、
int nowbar = Bars;
if(nowbar != Bars)
{
Alert("newbar");
nowbar = Bars;
}
という方法もあり、自分もこの方法に倣ってきたが、豊嶋先生のブログによると、そちらも難がありそうだ。お勧めに従うこととする。
if(volume[0] > 1 || IsTradeAllowed() == false) return(0); をトレード関数の前に入れておくこととされているが、この方法では、市場が激しく動く下では、取りこぼしを経験するすることが多かった。著者の豊嶋先生自身も本年9月のブログでそのことを指摘、次のようなコードに変えることを提案されている。http://forex.toyolab.com/
void OnTick()
{
static datetime time = Time[0];
if(Time[0] != time)
{
Alert("newbar");
time = Time[0];
}
}
他には、
int nowbar = Bars;
if(nowbar != Bars)
{
Alert("newbar");
nowbar = Bars;
}
という方法もあり、自分もこの方法に倣ってきたが、豊嶋先生のブログによると、そちらも難がありそうだ。お勧めに従うこととする。