MT4の「同時に1つの処理しかできない」リスクは?

Q:ご質問の内容

堀川様いつもお世話になっております。先日は大変参考になるアドバイスをいただきありがとうございました。

現在、20個のEAでポートフォリオを組んでいますが、その後も順調に稼働しています。

ところで、EAの稼働について少し気になっている点がありましたので、ご助言いただけますでしょうか。

今のポートフォリオはお名前.comのVPS(メモリ1GB)を使い、1台のMT4にEAを20個を乗せて同時に動かしています。

これまで目立った不具合はないのですが、ネット上に「MT4は同時に1つの処理しかできない」との情報がありました。

例えば複数のEAで注文のタイミングが重なった場合、1つずつしか処理されないため約定レートがずれたり、注文自体がキャンセルになる可能性があるようです。

万が一、損切り注文が別の処理と重なってキャンセルされるなどした場合に、損失が拡大したりしないかと心配しています。

この点について、堀川様はこれまで気になるような影響が出たことはありますか?また、どのように対策されていますか?

EAのロジックを分散したり、MT4の台数を増やしてEA数を減らす等を考えたのですが、良い対策方法があればぜひ教えていただけますでしょうか。

いつも細かい質問ばかりで恐縮ですが、よろしくお願いいたします。

A:お答えした内容

これはご心配されなくて大丈夫です。

MT4の問題というよりも、EAの問題と言った方がいいでしょう。

例えば、もし仮に0.001秒の中で別々のEAから同時に指令が入り、処理できなかったとしましょう。

しかしそうなる確率というのは、一時的にVPS回線や証券口座のサーバー回線がフリーズしたり重くなってしまう確率に比べたら、圧倒的に少ないです。

逆に言えば、現実的には VPS回線や証券口座のサーバー回線がフリーズしたり重くなってしまう事のほうが、リスクが高く心配なわけです。

そこで、EAの作者さんも皆さん対策して設計しています。

例えば、「時刻が23:00で決済する」というロジックがあったとしましょう。

この場合、「23:00で一回だけ決済指令が出てそれで終わり」というプログラムでしたら、23:00の瞬間にたまたま複数のEAから同じ注文が入った場合や、 一時的にVPS回線や証券口座のサーバー回線がフリーズしたり重くなって処理できなかった場合、もうアウトなわけです。

そこで、 「23:00で一回だけ決済指令が出てそれで終わり」ではなく、「23:00~23:59で決済指令が出る」というプログラムにすれば、その時間の中で決済が完了するまで何度でもオーダーが入るわけです。

テクニカル判断にしても同じです。

例えば、「20本移動平均線にタッチしたら決済」 というプログラムでしたら、タッチの瞬間に同時に別の注文が入ったり、 一時的にVPS回線や証券口座のサーバー回線がフリーズしたり重くなって処理できなかった場合、もうアウトなわけですが、

そうではなく 「20本移動平均線よりも下の値になったら決済」というプログラムにすれば、値が下にいる間はずっとオーダーが出るわけですので、エラーは限りなく減らせます。

ということで、

同じEAが時々バージョンアップされることがありますが、性能アップの他にも、こういったバグやエラーのリスク改善でバージョンアップされることもあるわけです。

だから私は、どんなに優れたバックテストのEAが登場したとしても、すぐにポートフォリオには加えず、数カ月間フォワードの運用を見て問題ないかを確認してから、ポートフォリオや優良EA一覧に加えているわけです。

さて余談ですが、当サイトの解説の中では

「別々のチャートでEAのマジックナンバーが重なってしまっている場合、オーダー処理が交錯してエラーになる場合があるのでマジックナンバーを変えましょう」

という解説をしていますが、これも今回の件を予防するためのものです。

EAはオーダー処理をマジックナンバーごとに行っていますので、仮に同じタイミングで別々のチャートから決済指令が出ようとしても、マジックナンバーが違っていればマジックナンバーごとに整理されて処理されますので、そこまでご心配されなくて大丈夫です。

それよりも先ほど申し上げた通り、個々のEAのプログラム方法やVPS回線や証券口座のサーバー回線がフリーズしたり重くなってしまう事のほうが、リスクが高く心配なわけです。

また約定レートがズレる場合ですが、これは必ず出てきます。

口座回線によって、VPSの能力によって、注文数やロット規模によって、完璧に一致することはなかなか無いです。

ですがこれは、ズレが不利に働くこともあれば、有利に働くこともあるわけです。相場は常に瞬間的に上下動を繰り返していますので、ズレがどちらに転ぶかは分かりません。

ですが中長期で見れば、たくさんのトレードの平均値で見れば同じことです。

もちろんズレが数十秒や数分も続けば問題ですが、数秒以内ならさほど変わらないです。

例えば、「薄利逃げの両建てマーチンゲール」みたいなタイプのEAですと、ちょっとしたズレで結果がだいぶ変わってきますが、そういうEAは採用していませんので関係ありません。

過去の私の経験上ですが、

まともなEAを使い、通貨ペアを分散し、マジックナンバーが重ならないようにして運用していた中では、MT4内でエラーになったことは一度もありませんでした。

VPSや口座回線の問題でエラーになる事が、年に数回あるかないかと言った感じです。

ちなみに、ナンピン・マーチン・両建て・トラリピ系EAで、変な約定をして痛い目にあったことは何度もあります(苦笑)

ということで、最後に申し上げたいのは、

MT4内で複数のEAを使うリスクよりも、

VPSや口座回線のエラーのほうが怖いのと、個々のEAの決済プログラムのほうがより重要になります。

そこを注意して、ご自分のEAの売買履歴と、ゲムフォレックスのフォワードの売買履歴を比較監視していくとよろしいでしょう。

 

続き
↓その他の全ページデータはプレゼント会員様のみに公開です↓

優良EA&ポートフォリオ無料プレゼント

 → 優良EA100個&ポートフォリオ5個を無料プレゼント!

 → EAを無料で300個手に入れる方法!

 → 良いEAの条件と選び方

 → ポートフォリオとは何か?FX自動売買EAを複数同時に回す理由

 → 自動売買の仕組みとVPS・MT4・EAの設置方法と使い方