文章 "遗传算法 - 很简单!" - 页 14

 
下午好!
我读了关于使用遗传算法的 文章。印象非常深刻!!!

我有几个关于使用 ZigZag 指标的问题,但最重要的一个问题是,如何从指标中获得信号用于训练?

该指标有一个可变步长。
先此致谢。
 
Debugger:
1) 我读了关于使用遗传算法 的文章。印象非常深刻!!!

2) 如何从指标中输入 信号进行训练?

3) 指标有一个可变步长。

很抱歉,我对您的留言稍有改正。希望您能理解。谢谢。:)

那么

1) 谢谢。

2) 我没有以任何方式投其所好。这篇文章搜索另类 ZZ 的极值,并将总利润(点数)与ZZ 指标 的利润进行比较(ZZ 指标 是由一个特殊脚本预先设置的,考虑到点差)。

3) 这对于展示 UGA 功能并不重要。:)


ZЫ.如果我没有完全回答您的问题,请提出更多问题 - 我会尽我所能帮助您(或者那些已经了解 UGA 算法工作的人会回答)。

 

文章写得很好,我正在找类似的文章。

有一点需要澄清:

3.10 GenoMerging. Заимствование генов

这个 GA 运算符没有自然等价物

这不完全正确。

自然界中的这一过程被称为水平基因转移

总的来说--尊重作者,只是有必要将该库封装在一个类中,以确保使用的流动性。

关于将 bool 转换为 double - 是否会增加计算量?

根据我的理解,所有基因都有相同的变化范围和相同的精确度。 变化范围并没有什么特殊作用,任何需要的变化范围都可以 "挤 "进所需的变化范围。但精确度就比较困难了,它必须达到最大值。如果你需要为某个变量搜索 1000 个不同的值,那么所有其他变量,甚至是 bool 变量,都会自动分配到相同的搜索范围。这样一来,算法岂不是要花费大量的计算资源来计算这样一个变量的值吗?比方说,如果我们有一个 bool 变量,取值范围从 -10 到 10,精度为 0.1,那么对于这个变量的算法来说,就会有 100 个不同的 "真 "值和 100 个不同的 "假 "值,给出相同的两个适应度函数值。此外,种群本身可能包含许多不同的个体,根据算法本身,这些个体在这个变量上是不同的,但由于 double 的实际值是 bool,所以是相同的。

我们是不是应该再引入一个数组,至少为每个基因设置精度?

 
Laryx:

1- 这篇文章很棒,我正在寻找这样的文章。

2.根据我的理解,所有基因都设定了相同的变化范围和相同的精确度。 变化范围并不重要,任何所需的变化范围都可以 "挤 "进所需的变化范围。但精确度就比较困难了,它必须达到最大值。如果需要为某个变量搜索 1000 个不同的值,那么所有其他变量,甚至是 bool 变量,都会自动分配到相同的搜索范围。这样一来,算法岂不是要花费很大一部分计算资源来计算这样一个变量的值吗?比方说,如果我们有一个 bool 变量,取值范围从 -10 到 10,精度为 0.1,那么对算法来说,这个变量就会有 100 个不同的 "真 "值和 100 个不同的 "假 "值,给出相同的两个适应度函数值。此外,种群本身可能包含许多不同的个体,根据算法本身,这些个体在这个变量上是不同的,但由于 double 的实际值是 bool,所以是相同的。

3.我们是否应该引入另一个数组,至少指定每个基因的精度?

1.谢谢。

2.为了便于读者理解,本文尽量保持算法简单(开源项目)。这是一个起点,可以根据需要进行改进和润色。

3.当然,我自己也对每个基因(封闭项目)使用可定制的步骤(精度)。

 

GA 的发展当然值得关注)。

更重要的是,与 MT4 不同,MT5 的优化只能持续到倒数第二天。考虑到这一细微差别,神经顾问的用户和开发人员将越来越关注这一话题。当然,毫无疑问,遗传算法与神经网络的数学模型密不可分,就像左脚与右脚的鞋子一样。)

因此,我想问一个问题。安德烈,请告诉我,基于这些测试和实验(我毫不怀疑你已经做了足够多的测试和实验),在你看来,在你的 EA 中(也许不仅仅是在你的 EA 中),哪种方法的优化效果最好?您的 GA 还是终端的内部 GA?

感谢您的回答。

 
wiantin:

......在您看来,与您的 EA 有关(也许不仅仅是您的 EA),哪种优化方式效果最好?您的 GA 还是终端的内部 GA?

我的 GA 效果更好。它的可定制性更强。

而且最新版本实现了多标准搜索和精英选择。

但内部优化器也很不错,如果它有更多设置和多标准搜索,那就不值一提了。

 
joo:

而最新版本则实现了带有精英选择元素的多标准搜索。

有没有可能熟悉一下它们?
 

UGAlib.mqh 中的数组超出范围(264,24)

我不知道如何增加允许的基因数,谁知道库中有更好的提示。

更新 错误不仅在增加基因数时开始出现...

更新 2 发现问题不在库中,而是 mql5 不接受我设置的大小的阵列。

 
wiantin:
有什么方法可以让你熟悉它们吗?
没有,除非我想写一篇后续文章
 
ozer-man:

UGAlib.mqh 中的数组超出范围 (264,24)

我不知道如何增加允许的基因数,谁知道库中有更好的提示。

更新 错误不仅在增加基因数时开始出现...

更新 2 发现问题不在库中,而是 mql5 不接受我设置的大小的阵列。

出错的原因是第二个维度的大小是固定的 array[][const]。

要摆脱这种限制,你需要使用结构(或类),就像这样:

struct Сhromosome //染色体
  {
    float Gene[]; //genes.
  };
Сhromosome Population[]; // 人口


为什么我错过了整整两篇文章?:)