MT4の自動売買取引プログラム(EA)を作成する際、その取引操作を循環関数(while())内に設定すると、通常、ティック毎に作動している取引プログラムが、それとは無関係に作動を続けるようになります。


この循環操作を取り入れたことで、直接的・間接的に、分かったこと、

学んだことがあります。


① 定刻通りの命令執行


指標スキャルEA(ブリン)は、秒刻みの時間区分毎で、異なる取引操作が行なわれるよう設計されています。

これまでは、ティック更新頻度やティックの有無・タイミングは、相場変動まかせ、レートを配信するブローカーまかせ、すなわち 『運まかせ』 だったので、設計通りの時刻にティックが無いと取引操作が作動しない、または、ティックが遅れるとその分作動が遅れるというような心配がありました。


この循環関数(while())を使うことで、きっちり定刻に操作が実行されることが分かり、安心して稼動できるとともに、設計通りに取引操作が行なえるため、プログラムが容易かつシンプルにもなりました。


② MT4とPCスペック


循環関数(while())内に設定した処理の繰り返し回数は、MT4を稼動するPCの処理能力によって増減し、ブローカーとは無関係であることが判明しました。


ブリンを稼動させた場合、1.33GHz級のCPU(VAIO Pシリーズ)でも、1秒間に5500回程度もループを巡回しているので、EAを稼動するにあたって、CPU(PC)のスペックは気にする必要がないと思います。


③ CPUの発熱防止


ただし、長時間、循環状態を保持していると、CPUが動き続け、発熱するので、循環をオン・オフにする条件も合わせて設定するのが好ましいと思われます。


ブリンは、指標発表の5分前に循環を開始し、注文が0(ゼロ)になった時点で終了するよう、設定しました。