策略测试仪的优化 - 页 16

 
Renat:

在最新的版本中,我们已经完全摆脱了任务运行的系统开销,将其从近2000毫秒减少到零。

以下是运行计算任务的结果,这是由joo建议的。

设置(日期是故意设置的,以便不使用图表历史)。

要运行的参数。

使用的代理(4个本地代理)。

优化的结果。

优化只花了25秒,并进行了18,432次传递。

回到以前的 交易策略测试器的优化任务

对425年建设的总体规划的改进导致。

  • 减少系统开销,为通过做准备
  • 在模拟类型选择中增加了一个明确的 "数学计算 "模式,简化了设置。

同样的硬件(4个本地代理)和425构建中的清洁缓存。

Tester	optimization passed in 0 minutes 07 seconds
Tester	genetic optimization finished on pass 19456 (of 100000020000001)
Tester	result cache was used 10124 times
Tester	genetics is over

最初提出的问题(每次开销为2秒)相比,我们成功地解决了这个问题。同样的任务在7秒内开始计数,而不是25秒。

打击系统开销的基础是批处理任务。现在每个代理都有其执行速度的测量,一批1-64个任务已经给了我们计算。因此,准备测试和获得结果所需的时间按比例减少。快速代理比慢速代理获得更多的任务和更大的批处理量。这对快速计算任务特别有利,有用的计算时间与测试准备和结果转发时间相当。

优化代理人维护的工作还没有完成。对于MQL5云计算网络中远程代理的高效工作,减少通信成本是主要问题。

 

帮助理解!

以下代码块在模拟账户的终端中工作正常,但在测试时却出现了错误信息4109

if(!ChartGetDouble(0,CHART_PRICE_MAX,0,price_max))
 {
  printf(__FUNCTION__,": Не получены данные по максимальной цене. Ошибка: %g.",GetLastError());
 }

同样的情况发生在

if(!ChartGetDouble(0,CHART_PRICE_MIN,0,price_min))
 {
  printf(__FUNCTION__,": Не получены данные по минимальной цене. Ошибка: %g.",GetLastError());
 }
 
slyusar:

帮助理解!

以下代码块在模拟账户的终端中工作正常,但在测试时却出现了错误信息4109

同样的情况发生在

在测试过程中不对图表和图形对象进行建模,因为这大大降低了测试速度。
 
Renat:
在测试过程中不对图表和图形对象进行建模,因为这将灾难性地降低测试的速度。
我明白了,谢谢你。有什么办法可以摆脱这种局面吗?
 
Renat:
在测试过程中不对图表和图形对象进行建模,因为这将灾难性地降低测试的速度。
我真的希望这种没有图形的模拟只能在没有 "可视化 "的模式下进行。
 
sergeev:
我真的希望这种没有图形的建模只能在没有 "可视化 "的模式下进行。
完全支持,图形有时非常需要...
 
Renat:

回到优化交易策略测试器的老任务 上。

对425号建筑的整体计划进行改进的结果是:。

  • 减少系统开销,为通过做准备
  • 在模拟类型选择中增加了明确的 "数学计算 "模式,从而简化了设置。

另一个结果是在相同的硬件(4个本地代理)和425构建中的清洁缓存。

最初提出的问题(每次开销为2秒)相比,我们成功地解决了这个问题。同样的任务在7秒内开始计数,而不是25秒。

打击系统开销的基础是批处理任务。现在每个代理都有其执行速度的测量,一批1-64个任务已经给了我们计算。因此,准备测试和获得结果所需的时间按比例减少。快速代理比慢速代理获得更多的任务和更大的批处理量。对于快速计算任务来说,效果尤其好,有用的计算时间与测试准备和结果发送的时间相当。

优化代理人维护的工作还没有结束。对于MQL5云计算网络中远程代理的高效工作,降低提供通信的成本是主要问题。

一个非常严肃的变化,是为了更好的发展--谢谢你。

64个参数的限制是什么?这是唯一的因素,至少对我来说,它限制了优化器的全面使用。我已经想忘记所有的麻烦,为 "真实 "的世界而写,这样测试者就可以在不改变代码的情况下进行优化。

 
我们将在运行测试展示台后处理这些参数。
 
joo:

一个非常认真的改进变化--谢谢你。

64个参数的限制是怎么回事?这是唯一的因素,至少对我来说,它限制了优化器的全面使用。还有,我多么想忘记所有的麻烦,马上为 "真实世界 "写作,这样我就可以在测试器中进行优化,而不需要对代码进行任何修改。

我支持你。
雷纳特
我们将在测试展示台开始后处理参数问题。
谢谢你!我们将等待。
 
Renat:

回到优化交易策略测试器的老问题 上。

接下来的结果是在相同的硬件(4个本地代理)和425构建中的清洁缓存。

最初提出的问题(每次开销为2秒)相比,我们已经成功地解决了这个问题。同样的问题现在是7秒,而不是25秒。

在即将发布的下一个版本中,我们做了大量的工作来优化数学问题的质量计算。系统开销已减少到零。

现在,同样的问题在同样的硬件(英特尔Q9400,4个本地核心)下进行~18000次计算需要1秒(上次是7秒,而之前需要25秒)。

2011.04.04 20:12:34    Tester    optimization passed in 0 minutes 01 seconds
2011.04.04 20:12:34    Tester    genetic optimization finished on pass 18432 (of 1000000002000000001)
2011.04.04 20:12:34    Tester    result cache was used 9718 times
2011.04.04 20:12:34    Tester    genetics is over


为了比较,我可以显示在相同的硬件上,同样的数学任务花了多少时间来计算400万次(通过减少步骤到0.005,总的计算次数变成了400万次,这允许运行一个完整的计算)。



2011.04.04 20:10:34    Tester    optimization passed in 0 minutes 46 seconds
2011.04.04 20:10:34    Tester    optimization finished, total passes 4004001


在46秒内,400万个任务的全部误算发生了,优化结果窗口显示了所有400万行的结果,整个表格在任何字段上都被即时排序,优化图正在轻快地渲染所有400万个值,三维图正在从相同的结果中绘制一个三维表面,并以不同的角度旋转。