我的EA做了一个重复输入 - 页 8

 
angevoyageur:

1) 我不认为这与本主题的问题有关。我们得到的问题是在一个请求被成功填满,并且打开了一个头寸的情况下。但这个头寸是在交易服务器上建立的,我们遇到的问题是,当有一个更重要的延迟时,MT5终端在一个新的tick已经被处理之后才被通知这个新头寸。

2) ......在我看来,对于一个明确允许同步和异步交易请求的平台来说,这是一个糟糕的设计。

3) ... ResultRetCode是同步的,MT5数据库对头寸(交易和订单)的更新是异步的。

1) 不同意,抱歉我的无知,但你怎么能确定在交易服务器中PositionOpen()之后开仓,而不仔细检查 ResultRetcode()?

2) 100%同意。

3) 可以肯定ResultRetCode()是同步的,我的意思是为了检查结果代码,你(主站)必须用几个 "异步 "信息查询服务器(从站)。

 
figurelli:

1) 不同意,抱歉我的无知,但你怎么能确定在交易服务器中PositionOpen()之后开仓,而不仔细检查ResultRetcode()?

2) 100%同意。

3) 可以肯定ResultRetCode()是同步的,我的意思是为了检查结果代码,你(主站)必须用几个 "异步 "信息查询服务器(从站)。

1)这个主题是关于重复输入的,所以我们谈论的是一个成功的订单请求。我从未写过没有必要重复检查ResultRetCode(),我写的恰恰相反。但根据定义,这与重复输入没有关系。这还不明显吗?

3) 这可能是一个细节(不理解?) ,但你写的东西没有意义。在你句子的第一部分,你说ResultRetCode()是同步的,在第二部分,你说 "结果代码 "与ResultRetCode()相同,是异步获得。在服务器和终端之间没有任何通信来获得这个值(Retcode)。

CTrade.PositionOpen()默认是同步的,这意味着底层类使用OrderSend()。它发送订单请求并等待 来自服务器的回复。服务器将结果返回给终端,EA代码继续进行(返回值为真或假)。主/从通信结束。此后,你可以检查ResultRetcode,它已经在本地可用。

Documentation on MQL5: Trade Functions / OrderSend
Documentation on MQL5: Trade Functions / OrderSend
  • www.mql5.com
Trade Functions / OrderSend - Documentation on MQL5
 
@figurelli: 祝贺你成为版主......
 
职位开放是否有时间限制?
 
doshur:
仓位开放有时间限制吗?
你好doshur,你说的超时到底是什么意思?
 
Malacarne:
你好,doshur,你说的超时到底是什么意思?
比如说没有来自服务器的响应
 
angevoyageur:

1) 这个主题是关于重复输入的,所以我们讨论的是一个成功的订单请求。我从未写过没有必要重复检查ResultRetCode(),我写的恰恰相反。但根据定义,这与重复输入没有关系。这还不明显吗?

3) 这可能是一个细节(不理解?) ,但你写的东西没有意义。在你句子的第一部分,你说ResultRetCode()是同步的,在第二部分,你说 "结果代码 "与ResultRetCode()相同,是异步获得。在服务器和终端之间没有任何通信来获得这个值(Retcode)。

CTrade.PositionOpen()默认是同步的,这意味着底层类使用OrderSend()。它发送订单请求并等待 来自服务器的回复。服务器将结果返回给终端,EA代码继续进行(返回值为真或假)。主/从通信结束。之后,你可以检查ResultRetcode,它已经在本地可用。

阿兰。

关于1)我还是不同意,因为对我来说
doshur的原始代码 没有检查ResultRetCode(),他正在寻找 "重复输入 "的解决方案,对我来说,我们必须在他的代码中解决这个问题(正如Malacarne建议的那样)。所以对我来说,这不是很明显。

关于3)你写道:"然而ResultRetCode是同步的,MT5数据库关于头寸(交易和订单)的更新是异步的。"所以我的回答是关于这句话。

总之,我们的辩论看起来就像关于半杯水的故事:有些人认为它是半满的,有些人认为是半空的,但这是一个问题,是把杯子看作是半满的,还是看作是半空的;-))

所以,说实话,我不认为这种争论是有意义的,而且/或者必须继续下去(至少在这个话题里),因为我们可以回到变通的解决方案,所以请对制造这种争论感到抱歉,请继续你的思路,我认为这将更适合帮助doshur和其他有同样问题的人。

 
Ubzen:
@figurelli: 祝贺你成为版主......。
Ubzen,非常感谢,但我仍然认为这只是一个mql5.com的严重错误;-))
 

嗯,所有发布的解决方法都非常好。我很感激,并在此过程中学习了一些想法。

你们很有帮助。

我的EA现在似乎更有弹性了。

 
figurelli:
...

所以,说实话,我不认为这场辩论是有意义的,而且/或者必须继续下去(至少在这个话题里),因为我们可以回到变通的解决方案,所以请对造成这种争议感到抱歉,请继续你的思路,我认为这将更适合帮助doshur和其他有同样问题的人。

我完全同意这一点。不要担心,继续吧。