文章 "构建一个用于实现带约束条件的自定义最大值的通用优化公式(GOF)"

 

新文章 构建一个用于实现带约束条件的自定义最大值的通用优化公式(GOF)已发布:

在这篇文章中,我们将介绍一种在MetaTrader 5终端的设置选项卡中选择“自定义最大值”时,实现具有多个目标和约束的优化问题的方法。举例来说,优化问题可以是:最大化利润因子、净利润和恢复因子,同时满足以下条件:回撤小于10%,连续亏损次数少于5次,每周交易次数多于5次。

一般而言,优化算法主要有两种类型。第一种类型更为经典,基于优化问题中所有函数的梯度计算(这种方法可以追溯到艾萨克·牛顿的时代)。第二种类型则较为新近(自20世纪70年代左右起),完全不使用梯度信息。介于这两者之间,可能还有一些结合上述两种方法的算法,但我们在这里无需讨论它们。MetaTrader 5设置选项卡中的“基于快速遗传的算法”属于第二种类型。这使我们能够无需计算目标函数和约束函数的梯度。更进一步的是,由于MetaTrader 5的算法无需考虑梯度,因此我们能够考虑那些不适用于梯度算法的约束函数。关于这一点,下面将进行更详细的讨论。 

重要的一点是,MetaTrader 5中的“慢速完整算法”实际上并不是一种优化算法,而是一种暴力求解法,即在侧约束条件下,对所有输入变量所有可能值的组合进行穷举评估。

作者:Sssszoiz F Ffo

 
首先,非常感谢你撰写了如此重要和有趣的 mql5 文章以及相应的 mql5 库,这无疑是非常值得赞赏的。如果可能的话,我将非常感激您能告诉我,或者更好地对您现有的通用优化公式(GOF)mql5 库做两个小小的改进或修改。第一项是:如何在您的 GOF mql5 mqh 库中加入一个新的目标函数--股票缩水(以百分比表示),与其他潜在的目标函数一起最小化,这些潜在的目标函数可以在一个具有 2 个或更多性能指标的组合总体目标函数中最大化。最后但并非最不重要的一点是,如果可行的话,第二个要求是:虽然你们已经定义的目标可以用来模拟某种 "归一化 "目标函数,但是否有可能真正实现单个 Xi 值的正确归一化(即 Z 变换)?通过将我们事先计算出的样本平均值减去每个单独的 Xi 值,再将前一个单独的结果除以该特定性能指标的样本标准偏差,当然,我们需要将每个性能指标作为输入提供给通用优化公式 mql5 库(即我们希望采用的每个单独目标函数的计算样本的平均值和标准偏差)。再次感谢您的及时反馈和支持。