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

 
Andrey Dik:
您打算优化某些东西,对吗?因此,您需要以 FF 的形式呈现这个 "东西",例如,它可以是指标信号的盈利点数。这就是 FF。
关于 FF,我有一些问题要问,例如,如果像给出的建议那样,优化在哪里很重要,这个 UGA 是否可以保存已告知的利润可能性或其他东西,以及在设置最优指标参数时,是否应该像我看到的 EA 示例那样进行虚拟测试,如果这冒犯了您,请原谅,遗传算法是随机的,我们怎么能确定它是最优的,如果可能,我们进入一个良好的条件,使遗传算法优化参数 指标、例如,我们可以从历史买入和获利多少点的条件中提取,遗传算法在未来使用类似的数据并运行优化,这是不是一个好的使用方法,我想不出其他的方法,如果这是错的,请告诉我一个好的使用例子,如果没有因为,当它被执行时,最佳结果就出来了,例如输入随机数,u 现在幸运,再次输入随机数,然后失去,等等,是不是更多的是一种猜测。
 
SALEH:
我有一些问题想问,关于 FF,例如,如果像给出的建议一样,优化在哪里很重要,这个 UGA 是否可以保存已告知的盈利可能性或其他东西,以及在设置最优指标参数时,是否应该像我看到的 EA 示例一样进行虚拟测试,如果冒犯了,请原谅,遗传算法是随机的,我们如何确定它是最优的,如果可能,我们输入一个好的条件,使遗传算法优化参数 指标、例如,我们可以从历史买入和获利多少点的条件中提取,遗传算法在未来使用类似的数据并运行优化,这是不是一个好的使用方法,我想不出其他的方法,如果这是错的,请告诉我一个好的使用例子,如果没有因为,当它被执行时,最优的结果就出来了,例如输入随机数,u 现在幸运,再次输入随机数,然后失去,等等,是不是更多的是一种猜测。

遗传算法使用的不是随机数本身,而是使用概率分布。因为没有人知道未来,所以人们总是使用概率分布来做出 ANY 决定。你可以使用参数的全部迭代,但不会全部使用。你需要决定使用哪个选项,不是吗?- 未来应用这种人工选择的结果事先是不确定的,也就是说,它不是确定的。

 
Andrey Dik:

遗传算法使用的不是随机数本身,而是概率分布。因为没有人知道未来,所以人们总是使用概率分布来做出任何决定。你可以使用参数的全部迭代,但不会全部使用。你需要决定使用哪个选项,不是吗?- 未来应用这种人工选择的结果事先是不确定的,也就是说,它不是确定的。

如果是这样,请给我建议,哪种方式更适合优化,如果是参数 指标问题,我略有异议,因为参数经常变化。感谢您的回复,如果您有任何建议,也请一并提出。我想分享一下实验结果,也许对进一步尝试 UGA 有一点帮助。
 
SALEH:
如果是这样,请给我建议,优化哪一个比较好,如果是参数指标的问题,我略有异议,因为参数经常变化。感谢您的回复,如果您有任何建议,也请一并提出。我想分享一下实验结果,也许对进一步尝试 UGA 有一点帮助。

在对交易系统一无所知的情况下很难给出建议

 
祝贺您的内容!不过,我无法编译代码或提到的示例。错误似乎出在 "ServiceFunction ();" 这一行上。
 
Rafael Ladeia:
祝贺您的内容!不过,我无法编译代码或提到的示例。错误似乎出在 "ServiceFunction ();" 一行。

非常感谢您 11 年来的反馈!)))不幸的是,错误可能会发生。看来我只有在有时间的时候才能更新代码了......

 

我目前遇到了一个优化问题,我正在尝试使用这个库,看看它是否能帮到我。遗憾的是,我不太清楚如何正确设置这个库。

在我的例子中,我想计算手数的最佳(最大)组合,使自己的风险最小。

为此,我简单地选择了 6 个字符进行测试,并为这些字符找到最佳的批量大小。在适配函数中,我计算这些资产的预期投资回报率,以及 UGA 建议手数的预期风险...

如果风险小于我的阈值,我就会在 Colony[0][chromos]..... 中存储要最大化的预期投资回报率。

以下是我的代码:

void CPortfolioRiskMan::GetOptimalWeights()
  {

   double ReplicationPortion_P  = 100.0;
   double NMutationPortion_P    = 10.0;
   double ArtificialMutation_P  = 10.0;
   double GenoMergingPortion_P  = 20.0;
   double CrossingOverPortion_P = 20.0;
   double ReplicationOffset_P   = 0.5;
   double NMutationProbability_P= 5.0;
//-----------------------Variables-------------------------------------
//为 UGA 准备全局变量
   ChromosomeCount=6; //菌落中的染色体数
   GeneCount      =6;       //基因数量
   RangeMinimum   =0.01;    //搜索范围的最小值
   RangeMaximum   =1;    //搜索范围的最大值
   Precision      =0.01;       /搜索步骤
   OptimizeMethod =2;  //1-最小值,任何其他-最大值

   ArrayResize(Chromosome,GeneCount+1);
   ArrayInitialize(Chromosome,0);
   Epoch=50;                     //没有改进的历时数




//启动 UGA 的主功能
   UGA
   (
      ReplicationPortion_P, /复制的比例。
      NMutationPortion_P,   //自然变异的比例。
      ArtificialMutation_P, //人工突变的比例。
      GenoMergingPortion_P, //采用基因的比例。
      CrossingOverPortion_P,//Portion of crossing over.
      ReplicationOffset_P,  //区间边界的移动速度
      NMutationProbability_P//每个基因突变的概率(百分比
   );



  }



void FitnessFunction(int chromos)
  {
//-----------------------Variables-------------------------------------

   double weight=0.0;
   double ClosePrices[]= {1.21,0.98,1.31,1.22,0.99,0.86};
   string symbols[]= {"EURUSD","GBPUSD","AUDNZD","EURAUD","NZDJPY","GBPJPY"};
   double tickvalues[]= {0.94,0.78,0.56,0.76,0.45,0.94};
   double tickstep=0.00001;
   double Lotsizes[6];
   double av_return=0;

//----------------------------------------------------------------------


   for(int u=1; u<=GeneCount; u++)
     {
      Lotsizes[u-1]=Colony[u][chromos];
      av_return+=Lotsizes[u-1]*tickvalues[u-1]*tickstep*ClosePrices[u-1];
     }

   double risk=CalculateVaR(symbols, Lotsizes);

   if(risk>50)
      Colony[0][chromos]=-10000000.0;
   else
      Colony[0][chromos]=NormalizeDouble(av_return,2);


   AmountStartsFF++;
  }
 
Filip #:

我目前遇到了一个优化问题,我正在尝试使用这个库,看看它是否能帮到我。遗憾的是,我不太清楚如何正确配置这个库。

在我的例子中,我想计算手数的最佳(最大)组合,使自己的风险最小。

为此,我简单地选择了 6 个字符进行测试,并为这些字符找到最佳的批量大小。在拟合函数中,我将计算这些资产的预期投资回报率,以及 UGA 建议手数的预期风险...

如果风险小于我的阈值,我就在 Colony[0][chromos]..... 中保持预期投资回报率最大化

以下是我的代码:

我不明白问题的意思,请解释一下。

一般来说,这是一个非常老的算法版本,它(这个版本)并不符合当前 "种群优化算法 "文章中更便于应用的算法方案。

我可以推荐使用 SDS 算法或表中的其他算法,或者等待 UGA 的更新版本(我不知道在这篇关于这个古老但非常强大的算法的文章中发表新的外观是否合适)。

一般来说,我会以新的方式重写这篇文章,将 UGA 纳入排名表中,但我不知道这样做是否可行,是否有必要。

我认为不可能重写现有文章,因为它已经被翻译成多种语言。

 
无法编译。
 
gardee005 #:
无法编译。
我看 错误列表代码非常 没有任何 东西可以 破解 ,甚至 14 之后