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

 
Rosh:
記事によると、最初のチェックはターミナルで行われる。OrderCheck()もターミナルで動作し、サーバーには何も送信されません。
もうひとつ:「無効なリクエストはサーバー側の 初期チェックを通過しません。
 
Yedelkin:

記事には、「リクエストが送信されると、サーバーに到着し、最初の検証を受ける」とある。

文字通り次のように書かれている:

重要: 各リクエストは、取引サーバーに送信される前に、クライアント端末自体で事前に正しさがチェックされます。明らかに不正確なリクエスト(100万ロットの買いやマイナスの価格での買い)は、端末の外には送られません。これは、mql5-programmeにエラーが発生した場合に、大量の不正なリクエストから 取引サーバーを保護するために行われます。

リクエストを送信した後、 リクエストは取引サーバーに到着し、最初のチェックを通過します:

 
Rosh:
私も混乱したよ。初回チェック」の組み合わせから参照を削除した。
:) 今、記事を読み直しているところです。何か間違っていたら申し訳ない。しかし、最初のサーバーサイドのチェックについては、すでに記事から直接2つのリンクを張っています。
 
Yedelkin:
つまり、OrderSend()関数がtrueを返すのは、サーバーが注文を受理(発注)した後という ことですか?
それはリクエストが受け入れられたことを意味します。さらに、ディーラーや取引プラットフォームなどによって拒否されることもあります。
 
Rosh:

文字通り、次のように書かれている:

重要: 各リクエストは、取引サーバーに送信される前に、クライアントターミナル自体で正しさが事前にチェックされます。明白に不正確なリクエスト(100万ロットの買いやマイナス価格での買い)は、端末の外を通過しません。これは、mql5プログラムにエラーが発生した場合に、大量の不正なリクエストから取引サーバーを保護するために行われます。

リクエスト送信後、 リクエストはトレードサーバーに到着し、最初のチェックを通過します:

その後、3つのチェックに分ける必要がある:

1) 端末による大まかなチェック;

2)OrderCheck()$関数を 使った端末側のチェック。

3) サーバー側のチェック。

一次チェック」という概念が何を指すのか、まだ不明である。

 

Rosh:
Это означает, что запрос принят. Дальше он может быть отвергнут дилером, торговой площадкой и так далее.

分かった。私は注文のその後の運命については気にしません。あなたの言葉から(質問2)、OrderSend()関数はリクエストが 正しいかチェックした 直後にtrueを 返すことはできないと結論づけました。これは正しいですか?それから、「基本構造のチェックに成功した場合、trueが 返される」という情報は、リファレンス・ブックに記載されている情報とは全く正しくないことがわかりました。
 
Yedelkin:
分かった。私は注文のその後の運命については気にしません。あなたの言葉から(質問2)、OrderSend()関数はリクエストが 正しいかチェックした 直後にtrueを 返すことはできないと結論づけました。これは正しいですか?それから、「構造体の基本チェックに成功した場合はtrueが 返される」という情報は、参考書の記載が正しくないことがわかりました。
基本チェック ≡ サーバー側の一次チェック
 
Rosh:
基本チェック ≡ サーバー側の一次チェック

質問2を作成する際に、「リクエストが正しいかどうかすでにチェックされているが、まだブローカーに受け入れられていない状況があるかもしれない」とすでに書いた。この記述に異論を唱える人はいないようだ。そこで、あなたの定義を考慮して、質問2を少し言い換えてみます:

OrderSend() 関数がtrueを 返すのは、リクエストが正しいかどうかの基本的なチェック(サーバー側での初期チェック)の直後ですか、それとも注文がサーバーに受け入れられた後ですか?

実際、私は次の質問に興味があります:注文が通過したとき、OrderSend()関数は具体的にどの段階(端末からサーバーまで)でtrueの シグナルを送るのでしょうか?「基本チェック」ですか、それとも「基本チェック+注文の受理(発注)」ですか?それとも、trueを 受信しただけで必要な結論を出すことは不可能なのでしょうか?

 
Yedelkin:

私はすでに質問2を立てる際に、「リクエストが正しいかどうかすでにチェックされているにもかかわらず、ブローカーがまだ受け入れていない場合がある」と書いた。この記述に異論を唱える人はいないようだ。そこで、あなたの定義を考慮して、質問2を少し言い換えることにする:

OrderSend()関数がtrueを 返すのは、リクエストが正しいかどうかの基本チェック(サーバー側での一次チェック)の直後か、それとも注文がサーバーに受け入れられた後か。

もちろん、サーバーがそれを受け入れた後です。それに、この関数はOrderSENDと 呼ばれています。
削除済み  
Yedelkin:

OrderSend()関数のどの段階(端末からサーバーまで)でtrueの シグナルが発せられるのか?「基本チェック」なのか、それとも「基本チェック+注文の受理(発注)」なのか?それとも、trueを 受信しただけでは、必要な結論を導き出すことはできないのでしょうか?
私見ですが、trueだけで 結論を出すのではなく、サーバーのレスポンスコードも分析する必要があると思います(後者の方が重要だと思います)。