ティック時実行関数Tick()
は、価格が更新されるティックの度に実行されます。ここで、新規にバーができたときだけ実行したい処理があるとします。その場合、共通ライブラリのisNewBar()
という関数を使うことができます。
//ティック時実行関数
void Tick()
{
if(isNewBar(_Symbol, 0))
{
int sig_entry = EntrySignal(); //仕掛けシグナル
//成行売買
MyOrderSendMarket(sig_entry, sig_entry, Lots);
}
}
EAを実行しているチャート上で新規バーができたタイミングは、isNewBar()
の引数に_Symbol
と0
を代入することで判別できます。これをif文の条件式とすることで、新規バーができたときだけ{}
内のコードを実行することができます。
//ティック時実行関数
void Tick()
{
if(isNewBar(_Symbol, PERIOD_M1))
{
int sig_entry = EntrySignal(); //仕掛けシグナル
//成行売買
MyOrderSendMarket(sig_entry, sig_entry, Lots);
}
}
isNewBar()
の2番目の引数に0
以外のタイムフレーム定数を代入することで、挿入したチャートとは別のタイムフレームの新規バーができたタイミングで取引を実行させることができます。上の例は、1分足の場合です。