百色金融新闻网
您的位置:百色金融新闻网 > 理财保险 > 基于遗传编程自动进化开发交易策略5-自动交易

基于遗传编程自动进化开发交易策略5-自动交易

作者:百色金融新闻网

返回目录:理财保险

第五部分 适应度函数 FITNESS FUNCTIONS

基于遗传编程自动进化开发交易策略5

遗传编程(GP)的核心是适应度函数。 GP用适应度函数来指定进化过程要寻找什么。通过适应度函数的计算,为每个个体分配一个适应度值。 具有高适应度值的个体更有可能被选择用于繁殖并因此产生后代。 寻找“良好”的适应度函数是开发过程中最重要的设计方面之一。确定一个适应度函数需要对要解决的问题有深刻的理解。 以下列表包含一些必要的设计决策:

  • 最小化 vs. 最大化适应度值
  • 单目标 vs. 多目标
  • 适应度值的标准化
  • 为适应度函数的各个组件分配权重

最大化与最小化

适应度函数可以最大化某些目标方法,也可以最小化它们。 最大化的典型目标指标可以是总盈利,期值值,平均每笔盈利或正确率。 最小化的典型目标指标有最大亏损,最大连续亏损笔数或权益曲线的波动性。 常见的情况是最大化一些并同时最小化其他适应度值。

单目标与多目标

具有单个目标的适应度函数试图最大化(或最小化)单个适应度值。该适应度值可能是组合多个单独组件的数学公式的结果。例如,

最大化 利润 除以 最大亏损

此公式中的利润越高,适应度值也更高。适应度值和最大亏损之间的相关性是相反的:最大亏损越小,适应度值越高。当然,如果总回报实际上是负数,则该公式可能导致负适应度值。最好还得假设最大亏损只能用正值表示。换句话说,构成适合度值的各个组件通常仅在预定范围内有效。因此,适应度值本身也仅在预定范围内有效。

例如,如果总回报在范围(负无穷大,无穷大)和最大亏损范围(0,无穷大),则适应度值自动在(负无穷大,无穷大)范围内。 当然,计算机并不真正理解无穷大的概念,实际上可能需要防止溢出的情况。

在上面的适应度函数中,尽管也可以使用负值来表示最大亏损(认为亏损可以被解释为负回报)这是一个坏主意,因为这将是导致混乱。

在本文中,我将继续将这种“多个组件计算得来的适应度函数”称为单目标函数,因为最终适应度值是单个值。相反,多目标适应度函数不会尝试将多个目标度量聚合为单个适应度值,而是直接在多维搜索空间上工作而不减少维度的数量。 GP的多目标适应度函数实现起来相当复杂,但根据我的经验,与单目标相比,它们实际上可以产生更好的结果。我在之前的文章中已经提到了两个这样的适应度函数:非支配排序遗传算法(NSGA)和强度帕累托进化算法(SPEA),我认为这两者都非常强大。读者还应该知道,这两种算法的设计都预先确定了GP选择selection和变异mutation的操作方式。两种算法的实现实际上可以在ECJ库中找到。

基于遗传编程自动进化开发交易策略5

适应度值的标准化

有时需要将适应度值标准化到一个预定范围。 例如,如果存在几个与其他适应度值相差很远的离群数据,则可能是这种情况。 如果使用适应度按比例选择操作(fitness proportional selection operator),这些离群值很容易比其他所有其他值更占主要地位,这不是我们想看到的。 另一种方法是使用基于排名的适应度值(rank-based fitness values),它们不会发生这样的问题。

另一个问题是适应度值的组件的大小的相对差异。 考虑以下适应度函数:

最大化 总回报/平均亏损 

这个规则的适应度函数中,除数一般显著大于被除数,一个变量的变化会掩盖掉另一个变化的变化。如果总回报为50'000 $,那么2%的变化将导致被除数+/- 1000 $。 假设观察到的交易系统的平均损失为250美元,则2%的变化为+/- 5美元。 因为+/- 1000 $总是远远超过+/- 5 $。 即使平均损失从250美元大幅减少到125美元(平均损失减少125美元或50%),与此公式中总回报的变化相比,影响要小得多。

由于这些原因(特别是当使用由多个组件构建的单目标适应度函数时)这就很必要对各个组件进行归一化。 有三种处理方案:

1. 不使用标准化

如果适应度函数中的所有组件具有相似的分布(即,类似的均值和标准偏差),则可能不需要标准化。 然而,这种情况并不多见, 离群值实际上是一种普遍现象。

2、按比例距离对组件适应度值进行标准化

组件最好的适应度值预定义值是1.0,最差值为0.0, 所有其他适应度值按比例分布在这两者之间。 (Koza倾向于反向顺序,其中组件最佳适应度值是0.0和最差的是1.0。然后相应的任务是最小化该组件而不是最大化它。)如果还存在异常值,此过程仍然存在问题,但有时取决于选择操作如何选的——可能需要它只是最佳值与最差值之间的工作。

3、 对所有组件先排名再对组件的适应度值进行标准化

与先前程序一样,组件的最佳适应度值1.0和最差0.0(反之亦然)。 所有其他值根据他们的排名彼此间距离相等分布。 与方法2不同的是,这个方法也解决了异常离群值的问题。 然而,关于适应度值之间的相对距离的相关信息也不可逆转地丢失了。

常见的陷阱

根据我的经验,初学者考虑适应度函数设计时有一些常见缺陷。 典型的一种情形是是初学者可能尝试应用单目标适应度函数并尝试最大化总回报。 这很容易理解。 毕竟,最终它是交易策略产生的利润。 事实证明,这种方法很少能带来好结果。 尽管所应用的逻辑是有效的,但是存在最大化总回报的各种未解决的问题。 以下是需要考虑的几点:

策略只有很少的交易

在价格上涨的市场中,通常难以击败市场并获得真正的阿尔法。买入和持有策略的优势在于交易成本非常低。因此,在这种情况下,最佳表现的交易策略通常只是在开始时买入并持续到结束。相应的最佳进化的交易策略可能只有很少几笔的交易。这些交易策略并不代表能成功复制的交易方式。他们基本上只是避免发交易成本。请注意,这种“懒惰的交易策略”也可能意味着具有比您预期更高的波动性。这是因为他们只是通过买入和持有策略而简单地复制市场价格的运行。

出于这个原因,可以尝试改进适应度函数,用交易笔数来调整,例如标准化总回报和标准化交易笔数的总和或乘积。向适应度函数的每个组件添加权重也值得研究。

策略取决于很少的盈利交易

一个相关的问题是进化出的策略,有很多亏损交易,严重依赖几笔盈利交易胜出。从理论上讲,这是一个合理的策略,只要总体预期值仍为正值(见下文)。但是,需要非常谨慎。如果获胜的交易太少,那么该策略可能还是不能成功复制的方式。换句话说,盈利与亏损交易的分配也很重要。如果你在1987年10月19日的黑色星期一之前卖空了道琼斯工业平均指数(DJIA),你可以赚到一大笔钱。 (仅在那一天,道琼斯工业平均指数就下跌了22.61%。)如果你在策略回测中只有类似于这样的一笔交易,它可能仍会弥补多年的小损失。但是,由于数学统计上发生这种程度的波动非常非常罕见,所以你不能完全依赖它。 (尽管如此,你必须做好市场发生不利方面的准备,否则一次这样的损失就可能消灭你。)

离群值主导了适应度值比例选择的过程

另一个问题是存在离群值。相对经常发生的是,少数个体在这一代中比其他所有个体都优先,尽管他们不代表全局最优,但他们倾向于掩盖了其他个体的作用。在使用适应度比例选择操作而不是基于排序的选择操作的情况下,离群值具有被选择用于繁殖的更高机会。

这可以通过单目标和多目标适应度函数来实现。有时,在多目标适应度函数中,单个适应度会师可能位于适应度值范围的“边界”,例如一个组件的适应度值是所有值的最大值而另一个是零。绘制适应度值的相对分布图以获得一个直观的印象,通常很有帮助。

建议使用的适应度函数

这是我个人认为值得尝试的适应度函数列表。

基于遗传编程自动进化开发交易策略5

最大化 期望收益expected value(EV):公式为

EV =平均每笔盈利* 胜率 - 平均每笔亏损* 错误率,

平均每笔盈利(亏损)是盈利(亏损)交易的平均回报,而胜率是获胜的概率交易,当然,胜率= 1.0 - 错误率。期望收益必须是正数 - 如果不是,那么从长远来看系统肯定会亏本!我认为这是对每个交易系统最大化的最直接和最直观的措施。

最小化最大亏损:没有人喜欢在市场上亏钱。一个常见的问题是知道何时关闭交易策略,因为它可能不再有效。因此,交易也总是一种心理游戏,你真的相信你的策略吗?大幅回撤可能会使您的账户破产。

最大化交易笔数:这是一个棘手的问题,初学者可能不会轻易提出。每笔交易都有手续费。有时,GP可能会为只有几笔但全是盈利的交策略分配非常高的适应度函数。但此类策略不代表有意义的,不能被成功复制。最大化交易数量与期望收益相结合是对这一问题的对策。然而,这一措施可能存在问题,因为它优先考虑许多短线交易。因此,在使用此适应度时,必须考虑交易费用和可能的滑点。

最大化总回报:虽然非常简单直观,但最大化总回报单独使用几乎没有价值,通常只是与其他适应度函数相结合来使用。

最小化GP树大小:这也是一个棘手的问题。所述目标当然是为了防止代码膨胀导致过度拟合。我们将在后面的文章中介绍简约性约束parsimony pressure。我个人认为,尝试在适应度函数中惩罚GP树规则的复杂性并不会产生非常好的结果。当然,这种措施也可以与其他措施相结合,例如最大化总回报除以GP树大小。不过我仍有我的担忧。我认为,使用简约性约束 “机械地”阻止构建大型GP决策树方法远远优于惩罚适应度函数的复杂性。

(未完待续...)

基于遗传编程自动进化开发交易策略1

基于遗传编程自动进化开发交易策略2

基于遗传编程自动进化开发交易策略3

基于遗传编程自动进化开发交易策略4

基于遗传编程自动进化开发交易策略5

相关阅读

关键词不能为空

经济新闻_金融新闻_财经要闻_理财投资_理财保险_百色金融新闻网