基于艾略特波浪理论的交易策略 - 页 67

 
可能在实时情况下,这样的数字是可以接受的(虽然没有完美的限制:),但就我所知,对于历史测试,情况相当困难,即使是短样本。我希望你不要怀疑我是一个反对使用计算机计算的人?:).只是在读完这个主题后,我的印象是,最好能大大加快算法的速度。

当然,毫无疑问,我们希望得到一个更快的计算算法,特别是历史测试,但另一方面,这种方法不需要在测试器上运行数百万次,因为它需要在历史数据上进行传统的拟合,大多数MT4用户喜欢用这种方法来刻意攻击这个产品的创造者(给更多贪婪的药丸!!);o)。有必要认识到,用这种方法创建的专家顾问的一次运行,在结果的适用性方面,将明显优于1000000000次运行的优化EA,其作者甚至在这一生中都能等待其结果;o)))。我只是根据我创建随机猜测系统的经验说的,上面在这个主题的最开始就描述了。基于Matstatistics方法的专家顾问的优化 主要包括对算法的逻辑改进,将拟合的参数降到最低(每个参数也有一个有限的变化区域),而不是像标准历史拟合所要求的那样,在n维空间中寻找不同震荡器和移动平均线的一些 "最佳 "值以及在全球最大值上找到一些比率。上述帖子中显示的获得的结果可能是通过在现有历史上进行不超过50次完整的算法运行获得的。每次运行后,该算法都得到了完善和改进。而在目前,我仍然在做同样的事情。我每天做2-3次运行,分析结果并改进算法。我还没有完全完成,但我已经在真实账户上推出了第一个或多或少可以工作的版本。我还没有在这上面做交易。专家顾问正在等待欧元转为下跌。
 
solandr,为了加快/优化测试时间--你是否使用了一个自定义指标或包含X,X^2等的数组?
 
我不使用自定义指标,因为我写的是它的每一次调用都打在测试员的日志里。我在专家顾问本身中引入了一个Murray水平指标。我还没有发明专门用来加快专家顾问计算速度 的数组。坦率地说,我不知道可以发明什么。以前的条形图(通道边界)的计算信息自然存储在数组中,不会在新条形图上重新计算。我想在速度方面,我实际上已经用尽了我所有的算法,不会再有更快的速度了。但我对包含X,X^2的数组不是很清楚。在X,X^2的大数组上找值能在多大程度上减少计算时间(平方)?你有计算的比较数据吗?看一看它们会很有趣。
 
那就是在每个新通道的每个新条形 上的Y=A*X+B?

现在我看了看,明白了--有可能对EA进行优化。增益应该是(N+1)/2 ,其中N是最大的通道长度(你目前的版本使用300 - 所以增益应该是150倍)。
 
据我所知,你打算组织一个立方体数组,每一行都是几百万,并在其中寻找有3个不同参数A、X、B的准备好的答案Y?还是我不确定我是否理解这个想法?
 
不,我只是建议对每个柱状图只做一次计算,然后使用该值N次(毫无疑问,形成一个数组:)。
 
如果我们在每个柱子上都有通道轻微移动,改变它们的边界,这怎么可能呢?
 
我不能完全取代算法(我仍然需要做一些严肃的工作),但我可以将优化的算法一点点粘贴到常规算法中。这意味着所有优化算法的初步计算已经完成,但通道的计算是以常规方式进行的。这里是日志。
2006.07.04 23:04:37 ChannelStDev3 GBPCHF,M15: Execute deinit()<br / translate="no"> 2006.07.04 23:04:37 ChannelStDev3 GBPCHF,M15: 正常脚本时间+优化579 ms
2006.07.04 23:04:36 ChannelStDev3 GBPCHF,M15: a=-0.0001 b=2.2628 lastBar1 firstBar=105 StDev=0.001
2006.07.04 23:04:36 ChannelStDev3 GBPCHF,M15: 在1000根柱子上发现140个符合标准的通道。
2006.07.04 23:04:36 ChannelStDev3 GBPCHF,M15: 它们在1个系列中。
2006.07.04 23:04:36 ChannelStDev3 GBPCHF,M15: 已初始化
2006.07.04 23:04:35 ChannelStDev3 GBPCHF,M15:加载成功
2006.07.04 23:04:28 ChannelStDev GBPCHF,M15: 删除
2006.07.04 23:04:28 ChannelStDev GBPCHF,M15: 取消初始化
2006.07.04 23:04:28 ChannelStDev GBPCHF,M15: 正在执行deinit()。
2006.07.04 23:04:28 ChannelStDev GBPCHF,M15: 正常脚本时间 547 ms
2006.07.04 23:04:27 ChannelStDev GBPCHF,M15: a=-0.0001 b=2.2628 lastBar1 firstBar=105 StDev=0.001
2006.07.04 23:04:27 ChannelStDev GBPCHF,M15: 在1000条以上发现140个符合标准的通道。


因此,优化算法的时间应该是大约(579-547)=32毫秒。粗略计算,收益是547/32=17倍。 这当然不是我假设的500次,你仍然需要检查。也许我没有考虑到不可压缩的程序,它比我想象的要花更多的时间。我明天会试着检查。
 
分别测量了两块计算结果。
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: deinitialized<br/ translate="no"> 2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: Execute deinit()
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: a=0.0071 b=146.7474 lastBar1 firstBar=50 StDev=0.1056
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: 发现820个符合标准的通道超过1000条
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: 他们在8个系列
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: 常规算法的时间390 ms
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: 优化算法时间0 ms
2006.07.05 14:34:17 ChannelStDev3 EURJPY,M15: 初始化
2006.07.05 14:34:15 ChannelStDev3 EURJPY,M15: 载入成功


优化后的区块是否能正确计算,还有待观察。同时,我发现处理对象 需要相当多的时间(几乎是非优化变体的三分之一)--在回测中绘制是不可取的。虽然
 
重新做了,用印刷品
<br/ translate="no"> 14:54:04 ChannelStDev3 EURJPY,M15: k=64 a=0.002 b=146.8379 sigma=1370529.6008
14:54:04 ChannelStDev3 EURJPY,M15: k=63 a=0.0025 b=146.829 sigma=-1348950.2071
14:54:04 ChannelStDev3 EURJPY,M15: k=62 a=0.0029 b=146.8197 sigma=-1327370.2369
14:54:04 ChannelStDev3 EURJPY,M15: k=61 a=0.0033 b=146.8105 sigma=-1305795.8008
14:54:04 ChannelStDev3 EURJPY,M15: k=60 a=0.0038 b=146.8016 sigma=-1284233.323
14:54:04 ChannelStDev3 EURJPY,M15: k=59 a=0.0042 b=146.7921 sigma=-1262664.9732
14:54:04 ChannelStDev3 EURJPY,M15: k=58 a=0.0046 b=146。7844 sigma=-1241133.5221
14:54:04 ChannelStDev3 EURJPY,M15: k=57 a=0.005 b=146.7769 sigma=-1219610.1431
14:54:04 ChannelStDev3 EURJPY,M15: k=56 a=0。0055 b=146.7678 sigma=-1198064.4492
14:54:04 ChannelStDev3 EURJPY,M15: k=55 a=0.0058 b=146.7611 sigma=-1176563.0841
14:54:04 ChannelStDev3 EURJPY,M15: k=54 a=0.0062 b=146.754 sigma=-1155059.1345
14:54:04 ChannelStDev3 EURJPY,M15: k=53 a=0.0066 b=146.7469 sigma=-1133558.635
14:54:04 ChannelStDev3 EURJPY,M15: k=52 a=0.007 b=146.7398 sigma=-1112061.7881
14:54:04 ChannelStDev3 EURJPY,M15: k=51 a=0.0073 b=146.7342 sigma=-1090593.6002
14:54:04 ChannelStDev3 EURJPY,M15: k=50 a=0.0074 b=146.7327 sigma=-1069186.857
14:54:04 ChannelStDev3 EURJPY,M15: k=49 a=0.0074 b=146.733 sigma=-1047808.1245
14:54:04 ChannelStDev3 EURJPY,M15: k=48 a=0。0073 b=146.7346 sigma=-1026446.748
14:54:04 ChannelStDev3 EURJPY,M15: k=47 a=0.0069 b=146.7404 sigma=-1005141.2611
14:54:04 ChannelStDev3 EURJPY,M15: k=46 a=0.0064 b=146.7494 sigma=-983876.6836
14:54:04 ChannelStDev3 EURJPY,M15: 优化算法时间31毫秒
14:54:05 ChannelStDev3 EURJPY,M15: 普通算法时间875毫秒
14:54:05 ChannelStDev3 EURJPY,M15: 他们在6个系列
14:54:05 ChannelStDev3 EURJPY,M15: 发现824条符合标准的通道,超过1000条
14:54:05 ChannelStDev3 EURJPY,M15: a=0。0064 b=146.7494 lastBar1 firstBar=46 StDev=0.1044
14:54:05 ChannelStDev3 EURJPY,M15: Execute deinit()
14:54:05 ChannelStDev3 EURJPY,M15: deinitialized
14:54:05 ChannelStDev3 EURJPY,M15: removed


虽然有西格玛的问题 :)