いくつかの点を明確にしたいと思います。
1. この記事では、OrderCheck()関数はリクエストの 一次チェックを意図しており、OrderCheck()関数の助けを借りた一次チェックは、ターミナルではなく、サーバー(サーバー側)で直接実行されることを示唆しています。これは正しいですか?
- www.mql5.com
2.リファレンスブックには、OrderSend()関数について、「基本構造チェックが成功した場合、trueが 返される」と記載されている。このことから、リクエストが正しいかどうかをチェックした直後にtrueが 返されると結論づけることができる。
しかし、注意書きの少し下には、「注文が取引サーバーに正常に受け入れられた場合、OrderSend()関数はtrueを 返す」と追加されている。この注釈は、サーバーが注文を受理した後にのみtrueが 返されることを意味している。
一方、リクエストが正しいかどうかはすでにチェックされているが、まだブローカーに受け入れられていない状況もあり得ます。したがって、OrderSend()関数がどの時点でtrueを 返すのか、リクエストが正しいかどうかをチェックした直後なのか、サーバーが注文を受理した後なのかを明確にしてください。
- www.mql5.com
記事によると、最初のチェックはターミナルで行われる。OrderCheck()も端末で動作し、サーバーには何も送られない。
記事には「リクエストを送信した後、サーバーに届き、初期チェックを受ける」とある。
また、記事の中で「一次処理」という表現にOrderCheck()関数への 言及があることに戸惑い、思わずこの言及を額面通りに受け取ってしまった。
2.
一方、リクエストが正しいかどうかすでにチェックされているが、ブローカーがまだ受理していない状況があるかもしれません。したがって、OrderSend()関数が真を 返す正確なタイミングを明確にしてください - リクエストが正しいかどうかをチェックした直後ですか、それともサーバーが注文を受理した後ですか?
正しいリクエストはサーバーによって受理され、レスポンスはMqlTradeResult 構造体のretcodeフィールドで端末に送信されます -https://www.mql5.com/ja/docs/constants/errorswarnings/enum_trade_return_codes。
コード | 識別子 | コード識別子 |
10008 | 取引コード | 発注済み |
- www.mql5.com
正しいリクエストはサーバーによって受理され、その回答はMqlTradeResult 構造体のretcodeフィールド(https://www.mql5.com/ja/docs/constants/errorswarnings/enum_trade_return_codes)で端末に送信される。
| コード | 識別子 | コード |
| 10008 | 取引コード | 注文が発注された |
また、記事の中でOrderCheck()関数への言及として「初期処理」という表現が出ていることに戸惑い、後知恵なしにその言及を額面通りに受け取ってしまった。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 MetaTrader 5でのトレードイベント はパブリッシュされました:
トレード用アカウントの現在の状況を監視すると、オープンポジションと注文をコントロールしていることがわかります。トレードシグナルが取引に変わる前に、クライアントターミナルからリクエストとしてトレードサーバーに送信され、そこで処理待ちの注文キューに配置されます。トレードサーバーによるリクエストを受け取る、機嫌切れとして削除する、それに基づき取引を実行を行うといったこれら全ては、トレードイベントに従っています;そして、トレードサーバーはターミナルにそれらについて通知します。
作者: MetaQuotes Software Corp.