OrderSendAsync()関数

 

説明には、OrderSendAsync()関数は、送信したリクエストに対するサーバーの応答を待たずに 非同期処理を行うためのものであると書かれています。実行に成功すると、result 変数に TRADE_RETCODE_PLACED( コード10008)-"order placed "という値が格納される。 を成功裏に実行する。は リクエストが取引サーバーに到達し、 処理のために受理されたことを保証するものではありません。

一方、retcodeフィールドにはトレード サーバーのリターンコードが含まれていることが分かっています。つまり、このコードはユーザー端末ではなく、サーバーが生成したものであると想定 されているのです。一方、OrderSendAsync()関数については 取引 サーバに取引要求が 到達していなくても、サーバが生成するコードの一つ(コード10008)を返すことができると、リファレンスマニュアルに記載されています。

質問1:OrderSendAsync 関数のコード10008は、具体的にどこ(どの段階)で発生するのでしょうか?[このコードがトレードサーバーに関係なく 返されると仮定すると]

質問2:コード10008はトレードサーバーのコードなのか、それともサーバーがトレードリクエストを受信する前にクライアント端末側で生成されるコードなのでしょうか?

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

1.端末、ディスパッチ操作成功時(オーダーを機体から落とすのは成功したが、その先がわからない)。

2.同語反復で申し訳ありませんが、同じように回答します。はい、コード10008はトレードサーバーのレスポンスコードです。はい、このコードは端末で設定された瞬間に...次ページ 1.

なぜ、すでに明確に書かれていることを行間に見出そうとするのですか?

 

非同期取引注文モデルでは、複数のイベントと注文状態が発生します。

マーケットオーダー状態図

条件付き注文状態図

現在、MT5で使用中。

  1. CREATED - OrderSendAsyncとOrderSend関数が呼び出された事実そのもの(MT5のこの注文状態は、外部からは決して識別できない)。
  2. 注文がCANCELLEDになった場合(端末自体がフィルターを通して切っている。例えば、指値が現在値より悪いなど)、OrderSendとOrderSendAsyncからの応答は否定的である。
  3. OPENEDは、OrderSendAsyncのTRADE_RETCODE_PLACED(注文が端末の内部フィルタを正常に通過し、サーバーに送信される)の結果です。
  4. SUBMIT_OK - サーバーがあなたの取引注文を受理しました。もしそれが保留中の注文であれば、OrderSendはその実行を完了させる。Marketの場合 - そのままお待ちください。
  5. FILLED - 注文は実行状態です (たとえば、STPで送信し、応答を待っている状態)。引き続きお待ちください。
  6. FILL_OK - あなたの注文が実行されました。成約した場合、OrderSendは実行を完了します。

詳しくは、上の図をご覧ください。

 
Rosh:

1.端末、ディスパッチ操作成功時(オーダーを機体から落とすのは成功したが、その先がわからない)。

2.同語反復で申し訳ありませんが、同じように回答します。はい、コード10008はトレードサーバーのレスポンスコードです。はい、このコードは端末で設定された瞬間に...次ページ 1.

なぜ、すでに明示的に書かれていることの行間を探ろうとするのですか?

行間」を求めているわけではないのですが、やはり、2つの(今の)トレード機能の段階を理解しようと思っています。

OrderSendAsync関数へのコメントで、「この関数はOrderSend() と目的もパラメータも似ている」とありますね。しかし、ご回答から判断すると、OrderSendAsync関数はOrderSend関数と全く同じものではありませんね。後者はサーバー上で取引要求を確認するためのものなので、OrderSend()が返すコードはサーバー自身が生成したコードであり、他の物質ではありません。OrderSendAsync()の場合、リターンコードは端末が生成するため、このコード(コード10008)はサーバのリターンコードとはみなせません。これは、形式的にサーバーのコードリストに含めても、「端末が生成したコード」です。

つまり、2つの機能は「サーバーで生成されたコード」vs「端末で生成されたコード」という2つのアプローチなのです。この微妙な違いを知ることが、「リターンコード」がサーバーからのものなのか、端末からのものなのかを正しく理解するために必要なのです。

 
hrenfx:

OPENED は、OrderSendAsync の TRADE_RETCODE_PLACED の結果である。

    TRADE_RETCODE_PLACED(10008)は、本来のOrderSend関数を 使用した場合の期待値では全く意味がないと判断してよいのでしょうか?

    グラシアスさん、図解ありがとうございます

    Order condition gets met」の正しい訳し方を教えてください。

     
    Yedelkin:

    TRADE_RETCODE_PLACED(10008)は、本来のOrderSend関数を 使用した場合の期待値では全く意味がないと判断してよいのでしょうか?

    TRADE_RETCODE_PLACED は、シーケンシャルな OrderSend とは関係ない。

    Order condition gets met」の正しい訳し方を教えてください。

    現在の価格が注文条件を満たしている。例えば、注文を実行するのに十分なマージンがない場合、FILLEDの代わりにCANCELLEDとすることができます。

    繰り返しになりますが、非同期で動作させるためには、到着時に受信するオプションがあるような、強力なイベント システムが必要なのです。

    • イベントのテキストメッセージです。
    • その制作時期。
    • どの順番に関係するのか。
    • メッセージの種類(ニュース、注文、通信状況など)

    プラットフォーム自体のアーキテクチャは、非常によく考えられているはずです。アーキテクチャ設計の段階でギャップがあると、それを回避してユニバーサルを実現することは非常に困難です。

    IMessage (JForex API 2.9.6.1 API)
    • www.dukascopy.com
    FRAMES    NO FRAMES
     

    hrenfx:

    イェデルキン

    TRADE_RETCODE_PLACED(10008)は、本来のOrderSend関数を 使用した場合の期待値では全く意味がないと判断してよいのでしょうか?

    TRADE_RETCODE_PLACED は、シーケンシャルな OrderSend とは関係ない。

    そこだ!半年ほど前に直感的に そう思うようになったのですが、それを裏付けるような話ですね :)すでに良好です :)
     
    hrenfx:

    繰り返しになりますが、非同期で動作させるためには、到着次第取得が可能な強力なイベント システムが必要です。

    • イベントのテキストメッセージです。
    • その制作時期。
    • どのような順番を指しているのか。
    • メッセージの種類(ニュース、注文、通信状況など)
    とりわけ、OnTradeイベントの詳細が必要ということでしょうか。
     
    Yedelkin:
    そこだ!半年ほど前に直感的に そう思うようになったのですが、それを裏付けるような話ですね :)すでに良好です :)
    人は、自分の推理が正しいことを誰かに確認されると、いつも嬉しくなるものです。それがどんなに現実に即していても。
     
    Rosh:
    人は、自分の推理の正しさを誰かに確認されると、いつも嬉しくなるものです。それがどんなに真実であっても。
    さて、この8ヶ月間、この男の公開した結論に反論した者はいない。理論的にも、テスト結果からも、そうではありません。でも、疑問を投げかけてくれてありがとう :)
     

    明確にする必要がある。

    OrderSend のTRADE_RETCODE_PLACED がサーバーレスポンスです。

    OrderSendAsync の TRADE_RETCODE_PLACED はターミナルレスポンスです。

    同じコードでありながら、その意味はまったく異なる。開発者はこの曖昧さを修正する可能性が高いです。

    だからこそ、理解すべきなのです。

    TRADE_RETCODE_PLACED к последовательной OrderSend не имеет никакого отношения.

    は、適切な文脈で理解されなければならない。

    理由: