トレード備忘録 & MT4/MT5インディケータ及びEAの開発

日々のトレード備忘録及びMT4/MT5に関する事項

新しいバーができたときに(始値で)1回だけ発注する

2016-12-27 09:36:50 | 投資
「メタトレーダー入門」では新しいバーの始値でエントリーする命令文として
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;
}

という方法もあり、自分もこの方法に倣ってきたが、豊嶋先生のブログによると、そちらも難がありそうだ。お勧めに従うこととする。