关于遗传优化的问题

 

我决定开始优化TS,但由于要优化的参数很多--13个,而TS是为M1设计的,每月的交易不超过10次,所以我决定使用遗传算法,取1个月的历史数据。

在第一次运行时,计算时间超过250小时,组合数量超过830亿。在 "MetaTrader 4中的遗传算法。与优化器直接搜索的比较》指出,我们不应该关注计算时间,因为它不符合遗传优化的实际情况,但这篇文章是很久以前写的,也许MT4的最新版本已经对应了?那么我应该等待吗?我在创建TS时预计优化方面不会有问题,但事实证明,TS似乎不错,但我无法手动设置,参数太多,参数的微小变化会导致系统的重大重组。

你能不能告诉我左下角的数字是什么意思:第一个数字是运行次数,括号里是组合次数,在/下它们之间是什么?

 
Angela >> :

我决定开始优化TS,但由于要优化的参数很多--13个,而TS是为M1设计的,每月的交易量不超过10个,所以我决定使用遗传算法,取1个月的历史数据。

在第一次运行时,计算时间超过250小时,组合数量超过830亿。在 "MetaTrader 4中的遗传算法。与优化器直接搜索的比较》指出,我们不应该关注计算时间;在遗传优化中,它不符合现实,但这篇文章是很久以前写的,也许最新的MT4版本已经符合了?那么我应该等待吗?我在创建TS时预计优化方面不会有问题,但事实证明,TS似乎不错,但我无法手动设置,参数太多,参数的微小变化会导致系统的重大重组。

还请告诉我,左下角的数字是什么意思:第一个数字是运行次数,括号里是组合次数,它们之间在/下是什么?

遗传学中的数字是指遗传学中的组合数量/组合方式。

这是一种自我宣传,以显示我们是多么伟大的MetaQuotesters,以及由于遗传学,我们可以节省多少时间。

\There are a lot of parameters to be optimised - 13 (我建议将这些参数分成一对和三对。

(这里你必须考虑什么与什么配对),并分步骤进行选择。

这样看二维优化图更方便。

一般来说,遗传学挑选的是分散的最大值,还是做简单的搜索比较好。

我个人使用遗传学来寻找我已经做了全面搜索的本地区域。

 
Urain писал(а)>>

在遗传学中,这些数字指的是遗传学中的配额/定额(直接采样的数量)。

这是一种自我宣传,以显示我们作为MetaQuoters有多酷,以及由于遗传学的存在,我们为你节省了多少时间。

\There are a lot of parameters to be optimized - 13 (我建议将这些参数分成几对和三对。

(你必须考虑什么与什么配对),并分步进行选择。

这样看二维优化图更方便。

一般来说,遗传学挑选的是分散的最大值,还是做简单的搜索比较好。

我个人使用遗传学来搜索一个局部区域,然后用它来做一个蛮力搜索。

问题是,大多数优化参数都是通过反馈相互关联的,改变一个参数会导致其他几个参数的重组,情况也会改变。该策略的设计方式是在所使用的参数的整个超平面内寻求最优。所以我可能不得不放弃这个策略,当然这很遗憾,在从2007年1月1日到现在的历史上运行,即使没有优化,TS也显示出稳定性,至少没有降到零,尽管它是为每周的过度优化而设计的。在过去的两年里,出现了周期性的起伏。

我将去减压,并开始制定一个新的战略。

 
在酒吧的开幕式上,尝试优化
 
830亿可能会让你走错地方。根据我的理解,一个测试人员,如果总的运行次数超过了一定的数量(你的当然也是),在遗传学上的运行次数不会超过10000次。也就是说,测试者可能在巨大的变体空间的某个地方得到积极的结果后,开始越过这些结果,可能只是没有时间去看真正的好结果......。你应该尝试增加参数的步骤。那么选择就会减少。然后,在初步了解情况后,更详细地考虑最感兴趣的领域。
 
Angela >> :

问题是,大多数优化参数通过反馈相互关联,改变一个参数会导致其他一些参数的重新排列,情况就会改变。

这一般来说是可以的。因此,通过二维优化图,你可以确定相关性,并通过代码中的系数来拼写它。

完全排除了一个优化术语。例如,你注意到二维图形上的最大值是对角线的。

这意味着,你可以在代码中使一个参数具有依赖性 ( x2 = x1 + 3 ),并且只优化x1。好运。

 

我不想等待优化的结束,所以我把它关掉了。虽然TS很稳定,并且在盈利的交易中显示出良好的效果,但为优化而等待数周的时间太长了。

例如,这里是上图所示的区间,但在过去两个月里。

此外,我有一个单独的优化买卖。此外,交易太少了,而且由于网络不好,我打算在晚上关掉我的交易系统,而我至少可以等待2-3个星期来等待交易。

所以我昨天消除了压力,开始开发新的TS。我将做得更简单,390行有逻辑条件的代码太多,而且刹车强烈,自2007年以来通过开盘价测试花了4.5小时。此外,在一个月内,我自己也不会理解这些逻辑条件nakochelya中的内容。

 
Angela >> :

此外,一个月后我甚至不知道我在这些逻辑条件下做了什么。

写下详细的评论。;-).由于TS被丢弃了,它可以作为一个例子公布在代码库中,也许会有重构的可能。

 

制作一个新版本的TS。做了一个区块,在继续进行之前,我决定优化一些参数,这样我就可以用或多或少的最佳初始设置进一步调整。我优化了7个参数,估计优化时间 - 106小时,尽管在优化运行后,它一点一点地增加,组合数 - 44,274,384,估计运行数 - 10,496。最初,我将历史记录设置为1个月,优化开始后,运行结果开始出现在"优化结果"窗口。我在一个月内得到了186笔交易。我决定将历史记录减半以加快优化速度,启动后的时间是57小时,但窗口的 "优化结果 "和 "优化时间表 "没有显示任何内容,问题出在哪里?

 
Angela >> :

制作一个新版本的TS。做了一个区块,在继续进行之前,我决定优化一些参数,这样我就可以用或多或少的最佳初始设置进一步调整。我优化了7个参数,估计优化时间--106小时,尽管在开始优化后它会逐步增加,组合数--44,274,384,估计运行数--10,496。最初,我将历史记录设置为1个月,优化开始后,运行结果开始出现在 "优化结果 "窗口中。我在一个月内得到了186笔交易。我决定将历史记录减半以加快优化速度,在我运行机器人57小时后,但窗口中的 "优化结果 "和 "优化时间表 "没有任何显示,这是什么问题?

1 "优化 "窗口中的参数可能是在约束条件下设置的,没有一次运行就能克服。

如果没有门槛的赢家,那就意味着没有什么可以选择。在 "最大利润 "旁边留下一个复选标记。

如果至少有一个运行将克服障碍,并至少带来一些利润,它将被显示出来。


2 如果你不能同时减少优化的参数数量,请增加步长。

然后在看到结果后(在什么值的领域)用更小的步长运行。

例如:Per { start, step, end}。

如果x1 {10,10,100},结果是,我们将看到x1上有一个从60到80的黑暗集群。

用参数x1 {60,1,80}做第二次运行,并找到最优。

(当我说到图形时,我指的是一个维度的图形)。

 
Angela >> :

>>有什么问题?

谁知道呢,奇迹会发生。通常,在我运行它进行优化之前,我会用预定的参数进行可视化运行,在注释中显示最大的所需数据。我设法一下子看到很多有趣的东西,以及在审查日志时也是如此。坏的历史,指标错误,专家顾问的错误,等等。在消除它们之后,对优化的准确性更有信心。