错误、漏洞、问题 - 页 2313

 
Vladimir Karputov:

我的笔记本上有这样的问题,当一项任务继续在代理身上计算时(例如,我在代码中搞乱了开仓,可怜的代理发了又发的交易指令,但他得到的回应是禁言,但它继续轰炸,导致所有代理早已完成计算,但这个可怜的家伙一直在敲打,敲打)。

简而言之,就是:特工有一个来自上一次任务的任务,他继续与之斗争。

今天我遇到了这种情况,在特工们停止行动超过24小时后,我遇到了这种情况。

我认为在授权和数据交换方面有一个小问题,即如果长时间没有传输EA/历史,客户端重新连接,代理仍在等待文件的到来。
 
fxsaber :

近300万次,只有16K次的OrderSend。但这些交易订单需要三分之一的时间。而在每一个滴答声中,都有专家顾问的计算。

因此,我的问题。你能在分析器中运行OrderSend的代码吗?在 什么地方有这样的搭子呢?

我想,如果你用自己的函数取代标准函数,它的工作速度会更快。可能,在OrderSend中,有一些昂贵的检查和手势。例如,如果专家顾问(+指标)中没有历史功能和OnTrade*,那么形成适当的记录/事件就是浪费时间。

我明白,对有些人来说,一次跑步要持续很多分钟。但也有像上面那样的情况--如果你注意到执行速度,以秒为单位。而在这里,事实证明,我启动Optimize三个小时,其中一个小时是OrderSend,其平均执行时间为69微秒(见截图)。

  • TRADE_ACTION_PENDING- 104微秒。
  • TRADE_ACTION_SLTP/TRADE_ACTION_MODIFY/TRADE_ACTION_REMOVE - 68微秒。

你好。

你从Metaquotes得到了有用的回应吗?

我有一个客户想使用MT5策略测试器来提高性能。EA策略可以很容易地使用 "只有可用价格 "模式。然而,在MT4下需要1.5秒的回溯测试,在MT5下只需5秒就能完成!在MT5下需要1.5秒的回溯测试。

该策略使用追踪止损,似乎在90%的回测时间内使用OrderSend()。


 
Alain Verleyen:

你好。

你从Metaquotes得到了有用的回应吗?

我有一个客户想使用MT5策略测试器来提高性能。EA策略可以很容易地使用 "只有可用价格 "模式。然而,在MT4下需要1.5秒的回溯测试,在MT5下只需5秒就能完成!在MT5下需要1.5秒的回溯测试。

该策略使用追踪止损,似乎在90%的回测时间内使用OrderSend()。

所有答案都只在这个主题中给出。看起来已经做了一些事情。

MetaQuotes软件公司。:
  1. 测试器:优化和加速的策略测试器。

通过Virtual自己解决了这个问题。


ZZY 显示你的EA。

Библиотеки: Virtual
Библиотеки: Virtual
  • 2018.10.03
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: Virtual
 
fxsaber:

看来已经做了一些事情

1930

Core 1  pass 0 returned result 99753711.00 in 0:00:03.729
Core 1  pass 1 returned result 99753711.00 in 0:00:03.432
Core 1  pass 2 returned result 99753711.00 in 0:00:03.401
Core 1  pass 3 returned result 99753711.00 in 0:00:03.354
Core 1  pass 4 returned result 99753711.00 in 0:00:03.323
Core 1  pass 5 returned result 99753711.00 in 0:00:03.385
Core 1  pass 6 returned result 99753711.00 in 0:00:03.448
Core 1  pass 7 returned result 99753711.00 in 0:00:03.369
Core 1  pass 8 returned result 99753711.00 in 0:00:03.369
Core 1  pass 9 returned result 99753711.00 in 0:00:03.385
Tester  optimization finished, total passes 10
Statistics      optimization done in 0 minutes 35 seconds
Statistics      shortest pass 0:00:03.323, longest pass 0:00:03.729, average pass 0:00:03.419


虚拟的

Core 1  pass 0 returned result 99753711.00 in 0:00:02.231
Core 1  pass 1 returned result 99753711.00 in 0:00:01.217
Core 1  pass 2 returned result 99753711.00 in 0:00:01.217
Core 1  pass 3 returned result 99753711.00 in 0:00:01.185
Core 1  pass 4 returned result 99753711.00 in 0:00:01.170
Core 1  pass 5 returned result 99753711.00 in 0:00:01.201
Core 1  pass 6 returned result 99753711.00 in 0:00:01.186
Core 1  pass 7 returned result 99753711.00 in 0:00:01.201
Core 1  pass 8 returned result 99753711.00 in 0:00:01.185
Core 1  pass 9 returned result 99753711.00 in 0:00:01.202
Tester  optimization finished, total passes 10
Statistics      optimization done in 0 minutes 13 seconds
Statistics      shortest pass 0:00:01.170, longest pass 0:00:02.231, average pass 0:00:01.299


是与1881年的三倍之差。可能是在其他地方进行了调整。但OrderSend 主题可能没有被触及。

 
fxsaber :

所有的答案都只在这个主题中给出。看起来已经做了一些事情。

通过Virtual自己解决了这个问题。

谢谢你的答复。
 
伙计们。网站上又出现了一个错误。
我不能从我的手机上回复市场上的信息。列表没有弹出。
正在度假,没有电脑。

附加的文件:
 

优化为每个Agent生成128个工作捆绑在一起。是否有可能形成不同大小的包装?

这就是情况

除一人外,所有特工都已完成任务。而我们必须等待优化完成,因为有一个代理。但有可能实现几乎同时终止所有代理商的工作。

例如,让我们考虑一下,如截图所示,8个代理和5376个任务。5376 / 8 = 672项任务。因此,你可以将336(=672/2)、168(672/4)或84(672/8)个工作捆绑在一起。然后所有特工将同时到达终点。


另一方面,128的数值并没有考虑到这种倍数。如果使用多个内核,这将导致更长的优化时间。

 

我想在KB上写上等级,但没有成功。而从最近的出版物根本没有评级这一事实来看,似乎我不是唯一有这个问题的人。

同时,我想承认,评级系统(简单的算术平均)让你想要更多。毕竟,一个新发布的有一个5星评级的代码将高于一个已经在BE中存在了几年的、有49个5星评级和一个4星评级的代码。这公平吗?

在我看来,至少这个公式会更公平。

double R=Average*pow(N,0.1);

在哪里?

R- 你要找的等级

平均数--算术平均得分

N-评级的数量。

 
fxsaber:

优化为每个Agent生成128个工作捆绑在一起。是否有可能形成不同大小的包装?

这就是情况

除一人外,所有特工都已完成任务。而我们必须等待优化完成,因为有一个代理。但有可能实现几乎同时终止所有代理商的工作。

例如,让我们考虑一下,如截图所示,8个代理和5376个任务。5376 / 8 = 672项任务。因此,你可以将336(=672/2)、168(672/4)或84(672/8)个工作捆绑在一起。然后所有特工将同时到达终点。


另一方面,128的数值并没有考虑到这种倍数。如果使用多个内核,这将导致优化时间增加。

总的来说,我支持这一点,但我认为更正确的做法是,如果有空闲的代理和5倍以上的工作,可以自动取消代理的工作(已经通过按下按钮禁止代理活动来实现),并重新将工作分配给所有代理,包括远程代理。

 

大家下午好!对不起,我的问题很愚蠢。伙计们,你们能不能告诉我如何使按钮的Pressed属性在左键单击时为真,在左键单击时为假。现在的情况是这样的,按下它不会发生任何事情,而松开它按下的时候,它的值就会变成相反的。

我知道我需要覆盖CButton::OnMouseUp 和CButton::OnMouseDown事件处理程序,但我不知道该在哪里做。请给我一个提示。提前感谢!