文章 "利用 MQL5 云网络加速计算"

 

新文章 利用 MQL5 云网络加速计算已发布:

您的家用电脑是几核的?优化一项交易策略,您可以运用多少计算机?我们在此展示如何利用MQL5云网络,点击鼠标即可获取遍及全球的计算能力,并通过这种方式加速计算。每过去一年,时间就是金钱这句话都会成为更被热议的话题,我们不能承受重要运算几十小时甚或几天的等候。

您可以长长地列举出新型 MetaTrader 5 交易平台的所有优势,也可以提出它比金融市场中其它技术分析程序都要更好的诸多理由。而该平台还有一个更加无可辩驳的支持论据:即 MetaTrader 5 客户端中的策略测试仪。我们会在本文中为您讲述其绝佳的功能,您也就能明白,是什么样的功能能够让 MetaQuotes 软件公司的开发人员如此骄傲。

第 5 代的客户端不仅配备了一种强大且快速的新型 MQL5 编程交易策略语言,还有一种从头开始设计的绝对全新的“策略测试仪”。此测试仪不仅用于接收基于历史数据的交易策略测试的结果,还允许对其实施优化,即,找到最优参数。

策略优化是某交易策略在同一历史时段上的多路运行,带有其所依赖的不同参数组。这是一种标准的大量运算任务,可以并行,而且您可能已经猜到了 - MetaTrader 5 中的测试仪为多线程!实际上也就是说,我们现在该来看看来自标准发行包的某“EA 交易”的优化示例了。

在 MQL5 云网络中执行计算

作者:MetaQuotes Software Corp.

 

那么遗传学呢?在那里,"100 倍 "是不可能实现的。那么,如果是 20-30 倍,甚至更少。

 
notused:

那么遗传学呢?在那里,"100 倍 "是不可能实现的。能达到 20-30 倍就不错了,甚至更低


https://www.mql5.com/ru/forum/4927/page114 

stringo 2012.02.02 15:50


遗传算法 的计算过程中,整个下一代(64 到 256 个计算作业)都会交给云计算

在全搜索中,每个云服务器都会收到 512 个作业。然后,当完成一定数量的工作时,会增加一倍的工作数量(例如,云服务器报告完成了 5 个工作,就会立即增加 10 个工作)。

因此,GA 的加速不是 20-30 倍,而是至少 64 倍,最多 256 倍。

 
Urain:
因此,GA 的加速度不是 20-30 倍,而是至少 64 倍,最多 256 倍。
GA 不可能比枚举类似数量的参数更快。GA 的瓶颈在于等待最慢的代理。它(平均)出现在 10240 / 256 到 10240 / 64 次之间(根据 stringo 数据,从 40 到 160 次不等)。正是最慢的代理决定了速度。此外,在文章中,Rosh 有 4 个自己的本地代理 -> GA 的加速极限可能是 256 / 4 = 64 倍(这是指可比较的值),但在生活中要小得多。
 
notused:
GA 不可能比枚举类似数量的参数更快。GA 的瓶颈在于等待最慢的代理。它(平均)出现在 10240 / 256 到 10240 / 64 次之间(根据 stringo 数据,从 40 到 160 次不等)。正是最慢的代理决定了速度。此外,在文章中,Rosh 有 4 个自己的本地代理-->GA 的提速极限可能是 256 / 4 = 64 倍(这是就可比数值而言),但在生活中要少得多。

正如许多人注意到的那样,云服务器会自动检测速度慢的代理,并将 "速度慢 "的通行证重新分配给其他代理(在完全枚举和遗传学中都是如此)。

此外,在遗传学中,PR>100 的代理会被接受,这大大降低了使用慢速代理的后果。

 
我会像罗什那样做,但我会设置更多的参数界限,这样就会有遗传。一切完成后,我会立即向您汇报。
 

因此,测试条件为:4 核 Intel Core i5-2500 @ 3.3 GHz、4GB 内存、Windows XP 64 位、终端 x64 bild 581(PR = 160-180)。测试期间,运行浏览器并观看电影。使用了与文章中相同的条件(Moving Avarege Expert Advisor, H1, on OHLC at 1 m. + genetics)。设置:设置

在本地内核上测试:

本地核心

在云上测试:

云

我们毫不犹豫地看到,云计算的速度快了 8.7 倍。仅此而已。但事实上,由于使用了计算缓存,网络速度更慢。

因此,本地内核在 30 分钟内执行了 8704 - 3666 = 5038 次。2 秒 = 1802 秒 -> 平均每次 0.3577 秒。

云运行 8704 - 4455 = 4249 次,耗时 3 分钟。28 秒 = 208 秒 -> 云计算平均每次通过的等待时间为 0.049 秒。

总计,云计算将计算速度提高了 0.3577 / 0.049 = 7.3 倍(!)。

我最初假设这个数字可能会达到 20 倍,但事实证明这有点乐观。而且,我们甚至还谈不上几百倍。

是的,我使用了强大的内核,也就是说,我做了一点手脚。但事实是,即使是 4249 次基因测试,网络也只用了 208 秒,而 14040 次全面搜索只用了 164 秒(一次测试的等待时间为 0.0117 秒)。总之,在云上进行一次遗传测试的平均速度比蛮力测试(以相关 EA 为例)慢 0.049 / 0.0177 = 2.8 倍。

 

我并不是在批评网络--当然,云网络 是交易软件诞生以来做得最好的一件事。也是非常必要的(虽然使用不多,但随着时间的推移会越来越多)。

我希望广告语更加正确。好了,过去的就过去了

 

如果测试一次通过的时间小于一秒,则必须考虑网络延迟,而网络延迟往往大于或等于 "快速 "任务的时间。为了通过批处理任务来消除网络延迟带来的系统开销,我们付出了很多努力。虽然这个问题无法完全解决,但我们已经取得了成功。

您的例子充分说明,您已经在短期内完成了已知传输时间小于网络延迟的任务。要真正评估 claud 的威力,你需要从执行时间 小于一秒的任务转向成本更高的任务。

我已经在 i7 处理器上运行了类似任务的基因,但通过时间超过 10 秒。我将在一小时内公布完成结果。

 

在 3 分 28 秒的网络使用过程中,我被收取了 2 或 3 美分的费用(在终端 - 3,在网站 - 2,3 被冻结。在使用网络的 3 分 28 秒中,我被收取了 2 或 3 美分的费用(在终端 - 3 美分,在网站 - 2 美分,冻结 3 美分)。就当是 3 分钱吧,或者为了简单起见,使用网络遗传一分钟的费用是 1 分钱。一小时总共 60 美分,24 小时 = 14.4 美元。在我看来,这听起来非常昂贵。价格至少应该降低三倍,这样才能对消费者有吸引力(很多人都在测试 EA,但并不是每个人都能/愿意每天为云支付 15 美元左右的费用,如果是 5 美元或更低,会有更多人愿意支付)。

此外,我自己已经想出了如何预先估算优化任何 EA 的成本(当然是平均成本)。遗传学算法(类似于蛮力算法):

1) 在本地核心(也可连接远程代理)上运行 "移动平均值 "遗传算法;最后,计算一次通过的等待时间 -> T1

2) 计算 T1 / 0.049 = T2 - 云计算中的遗传学加快了优化的多少倍。

3) 在所需 EA 的本地内核(也可连接远程代理,配置与步骤 1 相同)上运行优化,例如等待 100 次。计算一次通过的时间(通过日志--查找第一条和最后一条记录)-> T3

4) 10240 * T3 / T2 = T4 -> 以云为单位的预计测试时间。

5) T4 / 60 = 以分为单位的测试成本。

(您也可以考虑您的内核,为此我们使用 T2' = T2 + 1)。

这只是基于移动平均优化的估算。也许一两个月后,会有更强大的内核上线,数字和成本也会随之改变。

我想我的思路已经很清晰了

 
Renat:

你的例子完全表明,你是在进行一场已知通过时间小于网络延迟的 短期战斗。

是的,我怀疑过,但没有考虑过。让我们等待您的结果吧。

我上一篇文章的第第 2 段将在您的测试后进行更正。