策略测试仪的优化 - 页 8

 

现在,上述例子的测试运行在启动时有大约1.5秒的系统开销,以准备所有数据(授权和计算数据的同步)。问题是,测试代理 是完全独立的,与终端脱钩,这导致需要完全传输和同步所有使用的数据。

我们不能说遗传优化器或测试器在几秒钟内的超快计算是缓慢的,因为系统开销对最终计算时间有严重影响。在每次运行20秒以上的长时间计算中,系统开销的影响会降低到可以忽略不计的数值。

在每次构建时,我们通过在代理中直接缓存大部分数据来减少这一时间。我想我们很快就会解决这个问题。

 
Urain:
来自joo的GA已经比标准的快,当代码被Studio 10(适应多核CPU)转移到CPP时,加速又快了6倍。

在没有市场环境的情况下,人们可以为一项具体的任务安排一个定制的速度计算器。

但是,当你试图制作一个通用的交易引擎,按需提供任何多币种的poti数据,并自动计算利润/限额和报告时,速度将立即下降2-3-4个数量级。

 
Renat:

现在在上述例子上运行测试,在开始时有大约1.5秒的系统开销来准备所有的数据(授权和计算数据的同步)。问题是,测试代理是完全独立的,与终端脱钩,这导致需要完全传输和同步所有使用的数据。

我们不能说遗传优化器或测试器在几秒钟内的超高速计算是缓慢的,因为系统开销对最终计算时间有严重影响。在每次运行20秒以上的长时间计算中,系统开销的影响会降低到可以忽略不计的数值。

在每次构建时,我们通过在代理中直接缓存大部分数据来减少这一时间。我想我们很快就会解决这个问题。

雷纳特

在没有市场环境的情况下,有可能为一项具体的任务设置一个定制的快速计数器。

但是,当试图制作一个通用的交易引擎,按需提供任何多货币数据,并自动计算利润/限额和报告时,速度将立即下降2-3-4个数量级。

雷纳特,我的意思不是说需要时间来准备市场环境和其他不可避免的 "刹车",我在前一页写道。

最有可能的是,如此巨大的差异是由于测试仪除了直接计算FF外,还需要写日志、显示信息等,即存在 "强制制动"

2010.11.28 17:38:30 核心 1 遗传传递 (424, 98130899813578) 在2059 ms内返回结果48.16
2010.11.28 17:38:30 核心 2 遗传通 (426, 990006720) 启动
2010.11.28 17:38:30 core 2 genetic pass (425, 56291461) returned result 26.67 in 2012 ms
2010.11.28 17:38:28 core 2 genetic pass (425, 56291461) started
2010.11.28 17:38:28 core 2 genetic pass (423, 1510001908) returned result 49.98 in 2028 ms
2010.11.28 17:38:28 核心 1 遗传密码(424, 98130899813578)启动
2010.11.28 17:38:28 core 1 genetic pass (422, 1668020166802) returned result 48.36 in 2013 ms
2010.11.28 17:38:26 core 2 genetic pass (423, 1510001908) started
2010.11.28 17:38:26 core 2 genetic pass (419, 99260769921339) returned result 49.22 in 1935 ms
2010.11.28 17:38:26 核心 1 遗传密码(422, 1668020166802)启动
2010.11.28 17:38:26 core 1 genetic pass (418, 32073563420604) returned result 26.13 in 1934 ms
2010.11.28 17:38:24 在缓存中发现测试者的遗传密码(421,730000073),结果为50.00。
2010.11.28 17:38:24 在缓存中发现测试者的遗传密码(420, 2080000208),结果为50.00
2010.11.28 17:38:24 核心 2 遗传通 (419, 99260769921339) 启动
2010.11.28 17:38:24 2010/11/28 17:38:24 核心 2 遗传传递 (417, 99249619924961) 在2059 ms内返回结果49.26
2010.11.28 17:38:24 核心 1 遗传密码(418, 32073563420604)启动
2010.11.28 17:38:24 核心 1 遗传传递 (416, 2479846771) 返回结果 48.49 in 2309 ms
2010.11.28 17:38:22 核心 2 遗传密码 (417, 99249619924961) 启动

也就是说,计算裸露的FF需要2秒多的时间,而这是在完全没有参考市场环境的情况下。

优化器在第500次 "通过 "时解决了f(x1,x2)=x1*x1+x2*x2这样一个简单的任务,并不断尝试各种变体,因为它已经定义了1000多种要计算的变体。

而且没有任何设置可以影响算法的搜索能力,此外,64个可优化参数的限制也令人沮丧。

 
Renat:

可以在没有市场环境的情况下,为特定的任务设置一个自定义的速度计算器。

但是,当试图制作一个通用的交易引擎,根据需求提供任何多货币数据,并自动计算利润/限额和报告时,速度将立即下降2-3-4个数量级。

我不打算争论,但如果能扩大算法的控制参数,同样的搜索出口设置和搜索参数的数量,那就更好了。

我们在mql5正在研究搜索3000个参数的算法,这不是极限,当然不是二进制编码,而是连续平面。

而你的手中仍然有一个SRR。

我曾试图用二进制编码来做,但在这样的情况下,GA在mql5上输了。连续搜索是好的,因为它本身就减少了收敛时的步骤。另外,我们不需要编码/解码的资源。好吧,一般来说,我们需要正确的测试,现在说什么都还为时过早。

 
遗传优化器可以变得更加定制化+系统开销降到最低。
 
Renat:
遗传优化器可能会变得更加可定制+我们会尽量减少系统开销。

非常感谢你。这实际上是非常重要的,比许多人可能认为的更重要。

希望我们也能在某个时候忘记 "门槛64"。

 

在新的366版本中(周一发布),我们已经将系统开销降低到最低值。

上面的遗传学专家现在每次传递的时间在200到300毫秒之间,而不是2秒。

 
joo:

非常感谢你。它真的非常重要,比许多人可能认为的更重要。

而且希望我们也能在某个时候忘记《门槛64》。

现在算了吧,在4个参数到8位数的时候,测试仪会给出一个警告,说超长的长度已经超过了。

因此,对于测试EA 以外的需求,可以编写一个自定义优化器。

而64个参数对于优化EA来说是相当足够的。

 

是的,我已经读了这个主题,他们从哪里得到的顾问有这么多参数:)

 
marker:

是的,我已经读了这个主题,他们从哪里得到的顾问有这么多参数:)

一些标准的MT EAs甚至没有足够的超调。