Интерфейс платформы предоставляет доступ ко всем инструментам, необходимым для торговли на финансовых рынках. Он включает в себя различные меню, панели инструментов и служебные окна. Главное меню В главном меню собраны практически все команды и функции, которые можно выполнять в торговой платформе. Оно позволяет работать с графиками...
タイムアウトは、サーバーからの応答が適切な時間内に受信されなかったことを示す。しかし、注文の結果ではありません。
こんにちは。
ありがとうございます。
この場合、タイムアウト時に、取引履歴 に新しいチケットが表示されるのを待つ必要があり、新しいチケットが表示された場合、取引または注文がオープンされます。
ちなみに、この現象はMQL5のVPSでのみ発生します
自宅のサーバーでは問題ない。
考えてみます・・・。
考えてみます。
この場合、タイムアウト時に取引履歴 に新しいチケットが表示されるのを待つ必要があり、新しいチケットが表示されれば、その取引または注文はオープンになります。
取引注文が同期OrderSendで送信された場合、OrderSendの実行を終了する方法がない。全てはVPS Terminalのバグに見えます。
を通して
この問題は、タイムアウトエラーを受けた後、履歴から新しいチケットを検索する機能を実行することで、原理的に解決することができます。
そうでなければ、EAはチケットを取得することなく、ただ新しいリクエストを送信し、再びタイムアウトエラーを取得します。
ありがとうございます。
原理的には、タイムアウトエラーを受けた後、履歴から新しいチケットを取得する機能を実行することで、この問題を解決することができます。
SDで書かないといけないんですね。そうでなければ、各OrderSendの 後、対応する取引リスクを取得しながら、タイムアウトまで3分待つことになります。
CDに書き込む必要があります。そうでなければ、各OrderSendの後、タイムアウトまで3分待ち、対応する取引リスクを取得することになります。
それで、そうしました。
このエラーは1000件に1件の割合で発生し、今のところMQLのVPSでのみ 発生しています...そのため、Expert Advisor はエラー 10012 を取得し、再度注文を出そうとします。
マーケットプレイスでこのようなコードがあった場合、1年間セラー資格を剥奪します。
このようなエラーに遭遇したのは初めてです。
チケットは取引が開始されていないことを意味し、EAが再び取引を開始しようとしていることを意味します。タイムアウトエラーを受けた後、履歴の新規チケット取得機能を実行することで、原理的に解決できます。
歴史は関係ない。OrderSendが注文を送信し、ORDER_STATE_STARTEDの ステータスでTerminalに表示されます。
ただし、これはOrderSendの実行が終了したことを意味しない。OrderSend は、注文のステータスが変更されるまで実行され続ける。
したがって、タイムアウトが表示された場合、注文ステータスがORDER_STATE_STARTEDであることは99%確実です(表示されて いますが、スクリーンショットを撮った時点では明確ではありません)。
さらに、MT5サーバーがOrderSend自体(TP/SL/MC/Expiration)を行う場合、OrderSendがなくても同じタイムアウトが発生する可能性があります。しかし、端末には表示されません。
私のコードにそのようなエラーはありません。チケットなし - それは、取引が開始されていないことを意味します。
これは間違った論理です。OrderSendが 失敗し、OrderSendが 成功した後、現在の取引環境を完全に再読み込みする必要があります。このルールは常に適用されるべきものです。
リターンコードについて私のEAでは解析していません。取引ロジックは、それらに依存してはいけないと思います。
これは間違った論理です。OrderSendが失敗し、OrderSendが成功した後、現在の取引環境を完全に再読み込みする必要があります。このルールは常に有効であるべきです。
そうですね、変えなければなりませんね。