1.终端,在成功的调度操作中(订单成功从飞机上放下,但我们不知道下一步是什么)。
2.对同义词表示歉意,但我将以同样的方式回答:是的,代码10008是贸易服务器的响应代码。是的,这个代码是由终端设置的,当时是在...下一点 1.
你为什么要在字里行间寻找已经写得很清楚的东西?
异步交易订单模型涉及多个事件和订单状态。
目前在MT5。
- CREATED - OrderSendAsync和OrderSend函数被调用的事实(MT5中的这种订单状态是无法从外部识别的)。
- 如果订单被取消(终端本身通过其过滤器将其切断。例如,限价比当前价格差),OrderSend和OrderSendAsync的响应是负面的。
- OPENED是OrderSendAsync的TRADE_RETCODE_PLACED的结果(你的订单成功通过终端的内部过滤器并被发送到服务器)。
- SUBMIT_OK - 服务器已接受你的交易指令。如果它是一个挂单,OrderSend将完成其执行。如果市场 - 继续等待。
- FILLED - 您的订单处于执行状态(例如,您已经通过STP发送了订单,正在等待回复)。继续等待。
- FILL_OK - 您的订单已经执行。如果市场 - OrderSend将完成其执行。
更多细节请见上面的图表。
1.终端,在成功的调度操作中(订单成功从飞机上放下,但我们不知道下一步是什么)。
2.对同义词表示歉意,但我将以同样的方式回答:是的,代码10008是贸易服务器的响应代码。是的,这个代码是由终端设置的,当时是在...下一点 1.
你为什么要在已经明确写好的字里行间寻找呢?
我不是在寻找 "字里行间",但我还是想了解两个(现在)交易功能的阶段。
在你对OrderSendAsync函数的评论中,你说"该函数在目的和参数上与OrderSend() 相似"。但是,从你的回答来看,OrderSendAsync函数与OrderSend函数不太一样。后者是为了检查服务器上的交易请求,所以OrderSend()返回的代码是由服务器本身产生的代码,而不是其他物质。在OrderSendAsync()的情况下,返回代码是由终端产生的,所以这个代码(代码10008)不能被认为是服务器返回代码。这是 "由终端生成的代码",即使你正式将其纳入服务器的代码列表。
换句话说,这两个功能是两种方法:"服务器生成的代码 "与 "终端生成的代码"。在这方面,这些函数是不一样的。 要正确理解 "返回代码 "到底来自谁--来自服务器还是来自终端,就必须知道这个微妙的问题。
OPENED是OrderSendAsync的TRADE_RETCODE_PLACED的结果。
我们是否可以得出结论,TRADE_RETCODE_PLACED(10008)在使用原始OrderSend函数 时,其期望值完全没有用?
谢谢你的图示!
如何正确翻译 "订单条件得到满足"?
当有人证实他们的推理的正确性时,一个人总是很高兴。无论它是多么真实。
应该澄清一下。
OrderSend的TRADE_RETCODE_PLACED 是服务器响应。
OrderSendAsync的TRADE_RETCODE_PLACED是终端响应。
虽然这些代码是相同的,但它们有相当不同的含义。开发人员很可能会修复这个模糊不清的问题。
这就是为什么你应该理解它。
TRADE_RETCODE_PLACED к последовательной OrderSend не имеет никакого отношения.
必须在适当的背景下理解。
说明中说,OrderSendAsync()函数被设计用来执行异步操作,而不需要等待服务器 对发送的请求作出回应 。在成功执行后 , 结果 变量中的 响应代码包含值TRADE_RETCODE_PLACED( 代码10008)--"已下订单"。 成功执行.并不能保证该请求已经到达交易服务器并 被接受处理。
一方面,我们知道retcode 字段包含了交易 服务器的返回代码--即假定这个代码是由服务器而不是用户终端产生的。另一方面,《参考手册》指出,对于OrderSendAsync()函数,即使交易请求 本身没有到达交易服务器,也可以返回由服务器生成的一个代码(代码10008)。
问题1:OrderSendAsync函数 的代码10008到底是在哪里(在哪个阶段)产生的?[假设这个代码可以在不涉及贸易服务器的情况下被返回]。
问题2:代码10008是交易服务器的代码,还是在服务器收到交易请求之前在客户终端侧产生的代码?