OrderSendAsync()函数 - 页 6

 
Renat:

问题是,异步请求 实际上并没有给出任何 "成功发送 "的状态。

该函数的成功完成只意味着 "从客户的角度来看,订单看起来是正确的,并被扔进了网络管道,等待OnTrade的响应"。

抱歉,离开了一段时间。

然而,我想澄清这个短语:"等待回复onTrade",这是指请求没有到达服务器的情况。

如果请求没有到达服务器,将不会产生可能与这个 "失踪 "请求有关的贸易事件。对吗?如果是这样,我也不会在OnTrade()中得到任何适当的回应。得出这样的结论是否正确呢。

如果OrderSendAsync()函数成功完成,请求可能无法到达服务器,在这种情况下,在OnTrade()中等待回复是没用的。

?

 

sergeev:

耶德尔金
Sps!事实证明,一个成功发送的异步请求 很容易丢失,不能进入历史。

没有。

请解释一下。"不 "是我的结论不正确,还是对它的确认?

最有可能的是,这是一个不正确的结论,但Renat先前说过,"如果请求没有到达服务器,它就没有机会出现在客户终端"。如果我们继续这个逻辑:如果请求没有机会出现在客户终端,它就没有机会进入基础终端,因此没有机会进入历史订单库。如果这个推理不正确,错误在哪里,是什么呢?

 
Renat:

问题是,异步请求实际上并没有给出任何 "成功发送 "的状态。

成功完成该功能仅意味着 "从客户的角度来看,该订单看起来是正确的,并被扔进了网络管道,等待OnTrade中的答案"。

我希望在不久的将来,OnTrade将得到改进,使"请求没有到达服务器"的检查可以由用户毫无问题地组织起来,事实上,也可以像其他类型的执行控制一样。

因为在目前的形式下,OnTrade没有能力完成这样的壮举,因为它不知道自己在做什么样的反应。

 
Urain:

我希望OnTrade在不久的将来能够最终完成,这样用户就可以毫无问题地组织"请求尚未到达服务器"的检查,以及其他类型的执行控制。

因为在目前的形式下,OnTrade没有能力完成这样的壮举,因为它不知道自己在做什么样的反应。

原则上,我们可以添加一个虚拟响应 "request failed by timeout",如果在发送请求后,我们在5-10秒内没有收到服务器的响应,说明请求已经到达服务器。

这将使我们能够在OnTrade中抓住一个无赖的请求。但要做到这一点,我们将不得不在函数中添加参数进行重载。

 
Yedelkin:


如果请求没有到达服务器,将不会产生与这个 "失踪 "请求有关的贸易事件。对吗?

是的,这很有道理。

我们可以像我上面描述的那样添加一个虚拟响应。这将使我们能够控制异步操作的执行。

 
Renat:

原则上,我们可以添加一个虚拟的 "请求超时失败 "的响应,如果在发送请求后,我们在5-10秒内没有收到服务器的响应,说明请求已经到达服务器。

这将使您能够在OnTrade中捕捉到订单的反弹。但要做到这一点,你需要在该函数中添加参数进行重载。

你吓到我了。

人们在等待OnTrade的改进,用参数来实现对执行的控制。你有声音,将 "在一个建设",即按时间顺序在下一个。

我有三个订单挂了几个月,等待超时,而你说 "我们可以......"。"但我们需要超载..."

你不是在做OnTrade的完善工作吗?

我不知道其他人怎么样,但我对目前的情况不满意。 我推迟了写所有的代码,直到MQL5将有一个保证直接执行控制的功能,而不是间接。

 
Urain:

你吓到我了。

人们正在等待对OnTrade的改进,用参数来实现运行时监控。你说这将是 "在一个构建中",即按时间顺序在下一个构建中。

我已经有三个订单待处理了几个月,而你说 "我们可以..."但我们需要超载..."

你不是在做OnTrade的改进工作吗?

我们将尝试在下一个版本中做到这一点。

实际上有很多任务在进行中,加上现在是暑假时间--很难保持通常的发展速度。

 
Renat:

让我们努力吧,争取在下一次建设中做到这一点。

工作中的任务确实很多,加上现在还有时间放假--在夏天,通常的发展速度很难维持。

吁,这下子就放心了 :)

真的很害怕,因为相当真实的情况,互相交谈,忘记了,人们都在等待,希望:)

我希望我可以活得足够长 :))

 

methaquotes是一个坚固、轻巧和多功能 的终端。

他们已经学会了如何制作,既坚固又轻便。但这里还有一项任务--连续性。我们需要在一个终端上连接不同交易平台和一堆经纪商的所有 "卡点"。我认为这就是问题所在。没有更通用的MQ5。

PS 是的OnTrade参数正在等待。而在我们的股票经纪人身上。而且我们需要一个成功的方法来处理异步。然后似乎没有竞争对手(对于终端)。仅仅是测试器就价值不菲...

 
Renat:

原则上,我们可以添加一个虚拟的 "请求超时失败 "的响应,如果在发送请求后,我们在5-10秒内没有收到服务器的响应,说明请求已经到达服务器。

这将使我们能够捕捉到OnTrade中的请求中断情况。但是,为此我们需要在函数中添加参数进行重载。

我们可以像我上面描述的那样添加一个虚拟响应。这将使我们能够控制异步操作的执行。

谢谢,这是个很好的解决方案。至少我的问题得到了解决。等待,但不推托 :)