我想澄清几点。
1. 文章暗示,OrderCheck() 函数用于对请求 进行初步检查,而借助 OrderCheck() 函数进行的初步检查是由服务器直接执行的(在服务器端),而不是在终端执行的。这是否正确?
- www.mql5.com
2.参考书指出,对于OrderSend() 函数,"如果基本结构检查成功,则返回true"。由此我们可以得出结论,true 会在检查请求是否正确后立即返回。
但在注释的稍下方,又补充说 "如果交易服务器成功接受订单,OrderSend() 函数返回true"。该注释意味着只有在服务器接受订单后才会返回true。
同时,在某些情况下,请求可能已被检查为正确,但尚未被经纪商接受。因此,请说明 OrderSend() 函数在什么时候返回true:是在检查请求是否正确后立即返回true,还是仅在服务器接受订单后返回true?
- www.mql5.com
文章说,初始检查是在终端执行的。OrderCheck()也是在终端进行的,并没有向服务器发送任何内容。
文章说:"发送请求后,请求到达服务器并进行初步检查"。
我还感到困惑的是,在文章中,"初步处理 "一语指的是OrderCheck() 函数,所以我就信以为真,没有多想。
2.
与此同时,可能会出现这样的情况,即请求已经过正确性检查,但尚未被经纪商接受。因此,请说明 OrderSend() 函数是在检查请求正确性后立即返回true,还是在服务器接受订单后才返回true?
服务器接受了正确的请求,并在MqlTradeResult 结构的 retcode 字段中将响应发送到终端 -https://www.mql5.com/zh/docs/constants/errorswarnings/enum_trade_return_codes。
代码 | 标识符 | 说明 |
10008 | 已下单 | 已下订单 |
- www.mql5.com
服务器接受正确的请求,并在MqlTradeResult 结构的 retcode 字段中向终端发送答案 -https://www.mql5.com/zh/docs/constants/errorswarnings/enum_trade_return_codes。
| 代码 | 标识符 | 说明 |
| 10008 | 已下订单 | 订单已下 |
另外,文章中 "初始处理 "一词指的是 OrderCheck() 函数,这也让我感到困惑,我没有事后诸葛亮,就信以为真了。
新文章 MetaTrader 5 中的交易事件已发布:
监视交易帐户的当前状态意味着控制未平持仓和订单。在一个交易信号变为成交之前,它应作为一个请求从客户端发送到交易服务器,在服务器中,它将被放入等待处理的订单队列中。交易服务器收到请求时,依据情况将其作为过期请求删除,或进行成交 - 所有这些操作之后都会导致交易事件的发生;并且交易服务器会向客户端通知这些事件。
作者:MetaQuotes Software Corp.