記事"MetaTrader 5でのトレードイベント"についてのディスカッション

 

新しい記事 MetaTrader 5でのトレードイベント はパブリッシュされました:

トレード用アカウントの現在の状況を監視すると、オープンポジションと注文をコントロールしていることがわかります。トレードシグナルが取引に変わる前に、クライアントターミナルからリクエストとしてトレードサーバーに送信され、そこで処理待ちの注文キューに配置されます。トレードサーバーによるリクエストを受け取る、機嫌切れとして削除する、それに基づき取引を実行を行うといったこれら全ては、トレードイベントに従っています;そして、トレードサーバーはターミナルにそれらについて通知します。

トレードイベントの生成

作者: MetaQuotes Software Corp.

 

いくつかの点を明確にしたいと思います。

1. この記事では、OrderCheck()関数はリクエストの 一次チェックを意図しており、OrderCheck()関数の助けを借りた一次チェックは、ターミナルではなく、サーバー(サーバー側)で直接実行されることを示唆しています。これは正しいですか?

Документация по MQL5: Торговые функции / OrderCheck
Документация по MQL5: Торговые функции / OrderCheck
  • www.mql5.com
Торговые функции / OrderCheck - Документация по MQL5
 

2.リファレンスブックには、OrderSend()関数について、「基本構造チェックが成功した場合、trueが 返される」と記載されている。このことから、リクエストが正しいかどうかをチェックした直後にtrueが 返されると結論づけることができる。

しかし、注意書きの少し下には、「注文が取引サーバーに正常に受け入れられた場合、OrderSend()関数はtrueを 返す」と追加されている。この注釈は、サーバーが注文を受理した後にのみtrueが 返されることを意味している。

一方、リクエストが正しいかどうかはすでにチェックされているが、まだブローカーに受け入れられていない状況もあり得ます。したがって、OrderSend()関数がどの時点でtrueを 返すのか、リクエストが正しいかどうかをチェックした直後なのか、サーバーが注文を受理した後なのかを明確にしてください。

Документация по MQL5: Торговые функции / OrderSend
Документация по MQL5: Торговые функции / OrderSend
  • www.mql5.com
Торговые функции / OrderSend - Документация по MQL5
削除済み  
Yedelkin:

いくつかの点を明らかにしたい。

1. この記事では、OrderCheck()関数はリクエストの 一次チェックを目的としており、OrderCheck()関数の助けを借りた一次チェックは、ターミナルではなく、サーバーによって(サーバー側で)直接実行されることを示唆しています。正しいですか?

私の理解では、処理はクライアント端末側で行われます。

以下の投稿でも 確認しました。

 

3.この記事では、「トレードサーバーが受信したリクエストは、注文の形で保存され、保留または市場価格での即時執行が 可能である」と述べている。

ご存知のように、即時約定は3つの成行注文執行モードの1つです。では、成行注文とリクエスト注文の執行モードでは、成行注文はどうなるのでしょうか。取引サーバーが受信したリクエストは注文として保存され、保留または市場価格での即時 成行 注文となる」と一般化できるでしょうか?

 
Interesting:

私の理解では、処理はクライアント端末側で行われる。

これは以下の投稿でも 確認されている。

では、正式な回答を待ちましょう。いつも追加情報をありがとう。私もさっきそう思った。

追記。この質問で私を混乱させていたかもしれないことに気づいた。記事の中で「一次処理」という表現にOrderCheck()関数への言及があり、後先考えずにこの言及を額面通りに受け取ってしまった。

 
Yedelkin:

いくつかの点を明らかにしたい。

1. この記事では、OrderCheck()関数はリクエストの 一次チェックを目的としており、OrderCheck()関数の助けを借りた一次チェックは、ターミナルではなく、サーバーによって(サーバー側で)直接実行されることを示唆しています。これは正しいのでしょうか?

記事には、一次的な 内部チェックはターミナルで実行されると書かれています。OrderCheck()もターミナルで動作し、サーバーには何も送信されません。
 
Rosh:
記事によると、最初のチェックはターミナルで行われる。OrderCheck()も端末で動作し、サーバーには何も送られない。

記事には「リクエストを送信した後、サーバーに届き、初期チェックを受ける」とある。

また、記事の中で「一次処理」という表現にOrderCheck()関数への 言及があることに戸惑い、思わずこの言及を額面通りに受け取ってしまった。

 
Yedelkin:

2.

一方、リクエストが正しいかどうかすでにチェックされているが、ブローカーがまだ受理していない状況があるかもしれません。したがって、OrderSend()関数が真を 返す正確なタイミングを明確にしてください - リクエストが正しいかどうかをチェックした直後ですか、それともサーバーが注文を受理した後ですか?

正しいリクエストはサーバーによって受理され、レスポンスはMqlTradeResult 構造体のretcodeフィールドで端末に送信されます -https://www.mql5.com/ja/docs/constants/errorswarnings/enum_trade_return_codes。

コード

識別子

コード識別子

10008

取引コード

発注済み

Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Коды возврата торгового сервера
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Коды возврата торгового сервера
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Коды возврата торгового сервера - Документация по MQL5
 
Rosh:

正しいリクエストはサーバーによって受理され、その回答はMqlTradeResult 構造体のretcodeフィールド(https://www.mql5.com/ja/docs/constants/errorswarnings/enum_trade_return_codes)で端末に送信される。

コード

識別子

コード

10008

取引コード

注文が発注された

つまり、OrderSend() 関数が真を返すのは、サーバーが注文を受理(発注)した後という ことですか?
 
Yedelkin:


また、記事の中でOrderCheck()関数への言及として「初期処理」という表現が出ていることに戸惑い、後知恵なしにその言及を額面通りに受け取ってしまった。

あなたも私を混乱させた。一次チェック」という組み合わせから参照を削除しました。