FX自動売買、EA開発者の令和のだぶるいーです。
皆さんはEAを運用中に何らかの原因でシステムがダウンしたり、手動で決済してしまったりしたときに、
EAがどのような挙動になるか不安になっている方もいるでしょう。
と言うことで、今回は、
どのような順番でプログラムが走っているかというのを解説いたします。
最初に分かりやすく流れを箇条書きで解説しますと、
----------------------------------
ポジションがあるかないかを確認する。
↓
なければ、振り出しに戻る。
あれば、決済基準を満たしているか確認する。
↓
決済基準を満たしていれば決済させる。
決済基準を満たしていなければ、そのままポジションを保有させて、振り出しに戻る。
↓
決済基準を満たしていて決済させて、
ポジションがない状態ならば、
エントリー基準を満たしているか確認する。
↓
エントリー基準を満たしていればエントリーする。
エントリー基準を満たしていなければ振り出しに戻る。
↓
エントリーした後、modify(修正)としてテイクプロフィットとストップロスを設定してMT4側に受け渡す
↓
振り出しに戻る。
----------------------------------
という流れを、
ティックが動くたびに確認するようにプログラムされております。
そして、
システムがダウンした時や手動で決済させた時も、
その次のティックが動いたときに上記の流れでプログラムが走ります。
ポイントは、
一番最初にポジションがあるかどうかを確認させるというところです。
そうではなくて、
一番最初にエントリー基準を満たしているかどうかを確認して、満たしていればエントリーをするというふうにしてしまうと、もし元々ポジションを持っていたとしたならば、おかしな挙動になってしまいます。
ですので、
理屈上はEAとしては、おかしな挙動にはなる事はありません。
ただ、
稼働させている環境の中でのメモリの不足等により
EA以外の要因で動作が不安定になる事はあります。
なので、
何かおかしなことがあれば、
EA以外の他の要因を考えていく方が原因が見つかりやすいと思います!
それでは!