理論から実践へ - ページ 227

 
Maxim Dmitrievsky:

なぜなら、まず取引の実行結果を確認し、次に注文の合計を確認する必要があるからです。

筆者は、複数の同一のEAを非同期で動作させ、それぞれを自分のペアのチャート上で動作させ、どうやらお互いに通信していないようです。したがって、あるEAがポジションを開くために注文を出したが、まだ応答が来ていない、つまり、まだポジションが開いていない(OrdersTotal()==0)ということが起こり得ます。その後、別のEA(複数かもしれません)も取引リクエストを送信し、その結果、2つ以上のポジションが一度にオープンします。このような重複を避けるために、フラグ 端末のグローバル 変数)を設定し、他のExpert Advisorから1回目の取引注文を送信するときにそれを読めばよいということです。

しかし、このような状況は、特に多くのペアがほぼ同期して急激なジャンプをするニュースでは、かなり頻繁に起こる可能性があります。

 
Alexander Sevastyanov:

筆者は同じタイプのEAを複数持っており、それぞれは自分のペアのチャート上にあり、どうやら互いに通信していないようです。そのため、あるEAがポジションを開くために取引注文を出したところ、注文が処理中であったり、まだ応答が来ていない、つまりまだポジションが開いていない(OrdersTotal()==0)ことがあります。その後、別のEA(複数かもしれません)も取引リクエストを送信し、その結果、2つ以上のポジションが一度にオープンします。このような重複を避けるために、フラグ 端末のグローバル 変数)を設定し、他のExpert Advisorから1回目の取引注文を送信するときにそれを読めばよいということです。

特に多くのペアが急激なジャンプをするようなニュースでは、こうした状況が再び起こるかもしれません。

一度に1つの取引しかできないとは明記されていなかったので、1つのシンボルに対して複数の募集があるものと思っていたのですが......。

 
Alexander Sevastyanov:

筆者は同じタイプのEAを複数持っており、それぞれは自分のペアのチャート上にあり、どうやら互いに通信していないようです。そのため、あるEAがポジションを開くために取引注文を出したところ、注文が処理中であったり、まだ応答が来ていない、つまりまだポジションが開いていない(OrdersTotal()==0)ことがあります。その後、別のEA(複数かもしれません)も取引リクエストを送信し、その結果、2つ以上のポジションが一度にオープンします。このような問題を回避するために、フラグ 端末のグローバル 変数)を設定し、他のExpert Advisorから1回目の取引注文を送信する際にそれを読み込もうというものです。

まさに、アレクサンダーです。

私は今、この問題を解決するために、ブランチとすべての推奨事項を注意深く読んでいます。だって、32ペア全部で一斉にトレードが始まったらどうなるのか、怖いんだもん...。もちろん、そんなことはないはずです。

 
Alexander_K2:

...今、このスレッドを読んで、この問題を解決するためのすべての推奨事項を読んでいます。もし、32ペア全部で一斉にトレードが始まったらどうなるかと思うと恐ろしいから...。もちろん、そんなことはないはずです。

何か困ったことがあれば、遠慮なくご連絡ください。

ちなみに、ポジションを建てる際の遅れは、主に2重のPing(往復)とサーバーによる取引注文の処理時間で構成されています。実サーバーに負荷をかけず、流動性プロバイダーとの通信経路が整備されている優良ブローカーは、取引注文の処理時間がミリ秒単位で設定されています。Expert Advisor を VPS サーバーでホストすることにより、Ping を数百ミリ秒から単位まで大幅に短縮することができます。取引注文の送信、処理、サーバーからの応答までの合計時間は、MT4のログで確認することができます。

 
Alexander Sevastyanov:

何かお困りのことがあれば、遠慮なくご相談ください。

あ、ちなみに、ポジションを開く際の遅延は、主に2重のPing(往復)とサーバーの処理時間で構成されています。実サーバーに負荷をかけず、流動性プロバイダーと良好な接続経路を持つ優良ブローカーは、取引注文の処理時間がミリ秒単位で設定されています。Expert Advisor を VPS サーバーでホストすることにより、Ping を数百ミリ秒から単位まで大幅に短縮することができます。取引注文の送信、処理、サーバーからの応答までの合計時間は、MT4のログで確認することができます。

FXでこんなブローカーはない、最低数十ミリ秒、平均200秒、Pingはゼロ。

 
Maxim Dmitrievsky:

一度に1つの取引しかできないとは明記されていなかったので、1つの商品に対して複数の募集があるものと思っていたのですが

このバグは、1つのシンボルでも、前のスレッドの実行が終了しておらず、新しいtickが来た場合、実際のデータの読み書きが未定義の状態になることがあります...。
 
Andrei:
このバグは、前のスレッドの実行が終了しておらず、新しいtickが来た場合、単一のツールでも発生する可能性があります - その場合、実際のデータの読み書きの状況は未定義になります...

いいえ、そのような状況はありません。すべてのロジックが処理されるまで、ティックをスキップします。

 
Maxim Dmitrievsky:

いいえ、そのような状況はありません。オンティックはすべてのロジックが処理されるまでティックをスキップします。

私もそう思っていたのですが...。

 
Andrei:

私も同じことを考えていました...。

mt4とmt5で多くのスキャルピングブローカーと取引しているが、一度も起こったことがないのでわからない。

 
Maxim Dmitrievsky:

mt4とmt5で多くのスキャルピングブローカーと取引したことがないのでわかりません。

どのように確認したのですか?mt4でしか確認してませんが・・・。