MT4の自動売買取引プログラム(EA)、ブリンを使って

2つのことを検証してみました。


・ 指値・逆指値注文の有効期限を秒単位で指定できるかはてなマーク

・ ティックが動かなくとも、EA内の操作を連続して行なえるかはてなマーク


結果は、


指値・逆指値注文の有効期限は、時間単位以上では設定できる

ものの、分・秒単位では 『無効なパラメーター』 となってしまいました。


なので、ブリンには使えません汗


2つ目の連続稼動は 可能ビックリマーク


ただ、昨日、考えていた Volume[0] (ティック)数の変化を、

ループ(while)の条件に設定しては、


Volume[0] = X で、ループ入り

Volume[0} = X+1 で、ループ脱出

Volume[0] = X+2 で、ループ入り

と、ティックが1つ増えるごとに、順次、ループの出入りが繰り返され、

歯抜け状態になってしまうことが判明しました。


そこで、『注文数』 をループの条件にすることを思いつき、

こんな具合に


int start()

{

while(逆指値注文<2)

{

新規注文

}

while(逆指値注文+約定注文!=0)

{

逆指値注文変更・削除

約定注文変更・決済

}

return(0);

}


1度だけティックが動けば、最初の新規発注ループに入り、

指定時間に逆指値を発注。

引き続き、次のループに入って、あらゆる注文が無くなるまで、取引操作を繰り返します。


このようにプログラミングすることで、ティック数の変化とは係わりなく、

EAを稼動させることができるようになります。


これでブリンの稼動に際し、「ティックがなく、発注できない、いつまでも逆指値注文が残ってしまう…」などということを気にしなくても大丈夫。



また、この検証中に分かったことなのですが、


発注完了からすべての注文が無くなるまでの約40秒間

2つ目のループ内を循環した回数は、なんと 530万回!!


よく目が回らないものですね。