文章 "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:是在检查请求是否正确后立即返回true,还是仅在服务器接受订单后返回true

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

我想澄清几点。

1. 文章暗示,OrderCheck() 函数用于对请求 进行初级检查,而借助 OrderCheck() 函数进行的初级检查是由服务器直接执行的(在服务器端),而不是在终端执行的。这样做对吗?

据我所知,处理是在客户端执行的。

下面的帖子 也证实了这一点。

 

3.文章指出,"交易服务器收到的请求以订单的形式存储,可以是挂单,也可以是按市场价格即时执行"。

我们知道,即时执行是三种市场订单执行模式之一。那么问题来了,在 "市场执行 "和 "请求执行 "模式下,市场订单会发生什么?我们是否可以概括为 "交易服务器收到的请求将作为订单存储,这些订单可以是挂单,也可以是以市场价格立即 执行的市场 订单"?

 
Interesting:

据我所知,处理是在客户端终端执行的。

下面的帖子 也证实了这一点。

好吧,我建议我们等待官方答复。谢谢你一如既往地提供补充信息。我之前也是这么想的。

补充。我甚至意识到了我在这个问题上的困惑。在文章中,"初级处理 "一语指的是 OrderCheck() 函数,而我只是从表面上理解了这一说法,并没有后知后觉。

 
Yedelkin:

我想澄清几点。

1. 文章暗示,OrderCheck() 函数用于对请求 进行初级检查,而借助 OrderCheck() 函数进行的初级检查是由服务器直接执行的(在服务器端),而不是在终端执行的。这是否正确?

文章说主要的 内部检查是在终端进行的。OrderCheck()也是在终端运行的,不会向服务器发送任何信息。
 
Rosh:
文章说,初始检查是在终端执行的。OrderCheck()也是在终端进行的,并没有向服务器发送任何内容。

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

我还感到困惑的是,在文章中,"初步处理 "一语指的是OrderCheck() 函数,所以我就信以为真,没有多想。

 
Yedelkin:

2.

与此同时,可能会出现这样的情况,即请求已经过正确性检查,但尚未被经纪商接受。因此,请说明 OrderSend() 函数是在检查请求正确性后立即返回true,还是在服务器接受订单后才返回true

服务器接受了正确的请求,并在MqlTradeResult 结构的 retcode 字段中将响应发送到终端 -https://www.mql5.com/zh/docs/constants/errorswarnings/enum_trade_return_codes。

代码

标识符

说明

10008

已下单

已下订单

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

服务器接受正确的请求,并在MqlTradeResult 结构的 retcode 字段中向终端发送答案 -https://www.mql5.com/zh/docs/constants/errorswarnings/enum_trade_return_codes。

代码

标识符

说明

10008

已下订单

订单已下

您的意思是说,只有在 服务器接受(下达)订单,OrderSend() 函数 返回 true?
 
Yedelkin:


另外,文章中 "初始处理 "一词指的是 OrderCheck() 函数,这也让我感到困惑,我没有事后诸葛亮,就信以为真了。

你也把我搞糊涂了。我删除了 "初检 "组合中的引用。