我的EA做了一个重复输入 - 页 5 1234567891011 新评论 Dua Yong Rew 2013.12.24 03:05 #41 Klammeraffe:关于 "每个刻度 "的那一行可能是它不再发生的原因。该函数只在新条形图出现时执行。因此,最可能的是,只有一个条形图的第一个刻度可以执行交易。在第一个条形图之后,代码得到一个 "返回",直到新条形图出现。也许这对我来说已经解决了问题。我认为这段代码来自文章。 这是另一个解决方法,但如果经纪人或其他地方有任何错误返回,你的信号就不再有效了,除非你保持一个循环,反复检查。 Alain Verleyen 2013.12.24 03:09 #42 doshur:最初由doshur发布的代码,可以解释为什么他可以在日志中看到 "Position opened in... "而没有交易被打开。这是因为,即使PositionOpen()返回true,也不意味着交易已经进行。见文档。但它不能解释为什么 "双倍 "的交易被放置。更正。有一个双倍的"Position opened in... "和2个交易已经被打开。 当然了。我是说 "为什么他能看到..."。这里的重点是,你的代码中没有任何东西可以解释为什么你会有这2笔交易。 Dua Yong Rew 2013.12.24 04:02 #43 angevoyageur: 当然了。我的意思是 "为什么他能看到..."。这里的重点是,你的代码中没有任何东西可以解释为什么你会得到这2个交易。 好吧。明白了。 Snelle Moda 2013.12.24 11:26 #44 angevoyageur: 我认为找到这个问题背后的原因是非常重要的,当然,在我们能够完全理解发生了什么之前,有一个变通的办法也是非常重要的(睡眠?所以我试着恢复一下情况。* 当使用CTrade类的PositionOpen方法时,至少有3个用户在某些时候得到了2个相同方向的交易,而不是1个,导致相对于预期的交易量增加了一倍。我同时使用两种方法,开新仓="老式方法",修改止损="CTrade类"。* 这个问题似乎发生在同一个经纪人身上,在一个激活了市场深度的符号上(请有关人员确认这一点)。是的,经纪人X的服务器,市场深度是激活的。 * 这个问题发生在同步订单上,没有使用异步订单(请确认)。是的,没有使用异步订单。 * 这个问题是随机发生的。是的,但只是在繁忙的市场时间(宏观经济 事件)。 Snelle Moda 2013.12.24 11:49 #45 在我看来,这个问题很容易解决。如果使用 "PositionSelect(Symbol()) "函数,并且终端已经更新了该函数的数据,EA应该一直等待响应/回答,然后才能继续执行代码。如果使用了 "OrderSend(mrequest,mresult) "函数,并且终端已经更新了该函数的数据,EA应该始终等待响应/回答,然后才能继续执行代码。我还提到了终端本身,因为函数的数据将被复制到终端,这也将需要一些时间。这样一来,当前的仓位大小将始终被正确计算,所以重复下单的情况将不再发生。你怎么看? Alain Verleyen 2013.12.24 16:55 #46 snelle_moda:在我看来,这个问题很容易解决。如果使用 "PositionSelect(Symbol()) "函数,并且终端已经更新了该函数的数据,EA应该一直等待响应/回答,然后才能继续执行代码。如果使用了 "OrderSend(mrequest,mresult) "函数,并且终端已经更新了该函数的数据,EA应该始终等待响应/回答,然后才能继续执行代码。我还提到了终端本身,因为函数的数据将被复制到终端,这也将需要一些时间。这样一来,当前的仓位大小将始终被正确计算,所以重复下单的情况不会再发生。你有什么看法?不知道你说的 "总是在等待回应 "是什么意思...。? 总之,我向ServiceDesk填写了一个请求,以征求意见。我们将拭目以待。 Snelle Moda 2013.12.24 17:11 #47 angevoyageur:不知道你说的 "总是在等待回应 "是什么意思。?总之,我向服务台填写了一个请求,以征求意见。我们将拭目以待。"不知道你说的 "总是在等待答复 "是什么意思??"EA应该等待/停止,直到PositionSelect(Symbol())函数 完成了将位置数据复制到程序环境中。把它看作是一个强制睡眠()函数。 Alain Verleyen 2013.12.24 17:17 #48 snelle_moda:"不知道你说的 "总是等待回应 "是什么意思...??"EA应该等待/停止,直到PositionSelect(Symbol())函数完成将位置数据复制到程序环境中。把它看作是一个强制睡眠()函数。 好的理解。但我不能满足于 这样的解决方案,要么是我们不了解的东西,要么是某个地方有错误。 Dua Yong Rew 2013.12.25 03:30 #49 我只希望会有一个解决方案。无论如何,祝大家圣诞快乐。 Dua Yong Rew 2013.12.27 15:52 #50 服务台有什么更新吗? 1234567891011 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
关于 "每个刻度 "的那一行可能是它不再发生的原因。
该函数只在新条形图出现时执行。因此,最可能的是,只有一个条形图的第一个刻度可以执行交易。在第一个条形图之后,代码得到一个 "返回",直到新条形图出现。也许这对我来说已经解决了问题。
我认为这段代码来自文章。
当然了。我的意思是 "为什么他能看到..."。这里的重点是,你的代码中没有任何东西可以解释为什么你会得到这2个交易。
我认为找到这个问题背后的原因是非常重要的,当然,在我们能够完全理解发生了什么之前,有一个变通的办法也是非常重要的(睡眠?所以我试着恢复一下情况。
* 当使用CTrade类的PositionOpen方法时,至少有3个用户在某些时候得到了2个相同方向的交易,而不是1个,导致相对于预期的交易量增加了一倍。
我同时使用两种方法,开新仓="老式方法",修改止损="CTrade类"。
* 这个问题似乎发生在同一个经纪人身上,在一个激活了市场深度的符号上(请有关人员确认这一点)。
是的,经纪人X的服务器,市场深度是激活的。
* 这个问题发生在同步订单上,没有使用异步订单(请确认)。
是的,没有使用异步订单。
* 这个问题是随机发生的。
是的,但只是在繁忙的市场时间(宏观经济 事件)。
在我看来,这个问题很容易解决。
如果使用 "PositionSelect(Symbol()) "函数,并且终端已经更新了该函数的数据,EA应该一直等待响应/回答,然后才能继续执行代码。
如果使用了 "OrderSend(mrequest,mresult) "函数,并且终端已经更新了该函数的数据,EA应该始终等待响应/回答,然后才能继续执行代码。
我还提到了终端本身,因为函数的数据将被复制到终端,这也将需要一些时间。
这样一来,当前的仓位大小将始终被正确计算,所以重复下单的情况将不再发生。
你怎么看?
在我看来,这个问题很容易解决。
如果使用 "PositionSelect(Symbol()) "函数,并且终端已经更新了该函数的数据,EA应该一直等待响应/回答,然后才能继续执行代码。
如果使用了 "OrderSend(mrequest,mresult) "函数,并且终端已经更新了该函数的数据,EA应该始终等待响应/回答,然后才能继续执行代码。
我还提到了终端本身,因为函数的数据将被复制到终端,这也将需要一些时间。
这样一来,当前的仓位大小将始终被正确计算,所以重复下单的情况不会再发生。
你有什么看法?
不知道你说的 "总是在等待回应 "是什么意思...。?
总之,我向ServiceDesk填写了一个请求,以征求意见。我们将拭目以待。
不知道你说的 "总是在等待回应 "是什么意思。?
总之,我向服务台填写了一个请求,以征求意见。我们将拭目以待。
"不知道你说的 "总是在等待答复 "是什么意思??"
EA应该等待/停止,直到PositionSelect(Symbol())函数 完成了将位置数据复制到程序环境中。
把它看作是一个强制睡眠()函数。
"不知道你说的 "总是等待回应 "是什么意思...??"
EA应该等待/停止,直到PositionSelect(Symbol())函数完成将位置数据复制到程序环境中。
把它看作是一个强制睡眠()函数。