文章 "MetaTrader 5 中的交易事件" - 页 2

 
Rosh:
文章说,初始检查是在终端执行的。OrderCheck()也是在终端进行的,不会向服务器发送任何信息。
这是另一个问题:"无效请求未通过服务器端的 初始检查"。
 
Yedelkin:

文章说:"请求发送后,会到达服务器并进行初步验证"。

字面意思是

重要: 每个请求在发送到交易服务器之前,都会在客户端预先检查其正确性。看似不正确的请求(买入一百万手或以负价买入)不会传出终端。这样做是为了在 mql5 程序出错时保护交易服务器免受大量错误请求 的影响。

发送请求后,请求会 到达交易服务器并通过初步检查:

 
Rosh:
你也把我搞糊涂了。删除了 "初步检查 "组合中的引用。
:) 我刚刚重新阅读了这篇文章。如果有什么不对的地方,请原谅。但我已经从文章中直接给出了两个关于服务器端初始检查的链接。
 
Yedelkin:
您的意思是,只有在 服务器接受(下达)订单,OrderSend() 函数 会返回 true?
这意味着请求已被接受。此外,它还可能被交易商、交易平台等拒绝。
 
Rosh:

字面意思如下

重要: 每个请求在发送到交易服务器之前,都会在客户端预先检查其正确性。看似不正确的请求(买入一百万手或以负价买入)不会传出终端。这样做是为了在 mql5 程序出错时保护交易服务器免受大量错误请求的影响。

发送请求后,请求 到达交易服务器并通过初步检查:

然后,有必要将其分为三项检查:

1) 终端的粗略检查;

2) 使用OrderCheck()$ 函数 进行终端检查

3) 服务器端检查。

目前还不清楚 "初步检查 "的概念是指什么。

 

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

好吧我不关心订单的后续命运。从您的话中我得出结论(问题 2),OrderSend() 函数不能在检查请求是否 正确 立即返回true。这是否正确?参考书中的信息 "如果基本结构检查成功,则返回true"并不完全正确。
 
Yedelkin:
好吧我不关心订单的后续命运。从您的话中我得出结论(问题 2),OrderSend() 函数不能在检查请求是否 正确 立即返回true。这是否正确?事实证明,参考书中关于 "如果结构的基本检查成功,则返回true"的信息并不完全正确。
基本检查 ≡ 服务器端的主要检查
 
Rosh:
基本检查 ≡ 服务器端主要检查

我在上面提出问题 2 时已经写道:"在某些情况下,请求可能已经过正确性检查,但尚未被代理接受"。似乎没有人反对这一说法。因此,我将根据你们的定义重新表述一下问题 2:

OrderSend() 函数是在什么时候返回true 的?是在对请求的正确性进行基本检查(服务器端的初始检查)后立即返回true,还是在订单被服务器接受后才返回true

事实上,我对以下问题很感兴趣:当订单通过时,OrderSend() 函数究竟在哪个阶段(从终端到服务器)发出true 信号?是 "基本检查 "还是 "基本检查 + 接受(下达)订单"?还是仅凭收到true 就无法做出必要的结论?

 
Yedelkin:

我在上文提出问题 2 时已经写道:"可能会有这样的情况,即申请已经过正确性检查, 但经纪人尚未接受"。似乎没有人反对这一说法。因此,我将根据你们的定义,对问题 2 稍作改动:

OrderSend() 函数是在什么时候返回true 的?是在对请求的正确性进行基本检查(服务器端的主要检查)之后立即返回true,还是只有在服务器接受订单之后才返回true

当然是在服务器接受之后,这是显而易见的。此外,该函数名为OrderSEND
[删除]  
Yedelkin:

事实上,我对以下问题很感兴趣:OrderSend()函数的哪个阶段(从终端到服务器)的信号为true ?是 "基本检查 "还是 "基本检查 + 接受(下达)订单"?还是仅凭收到true 就无法得出必要的结论?
在我看来,您不应该只根据true 得出结论,您还应该分析服务器的响应代码(在我看来,后者的优先级更高)...