伯顿·马尔基尔(Burton Malkiel)在《华尔街的随机漫步》(1973年)中建议:“一只被蒙住眼睛的猴子在报纸的财务页上投掷飞镖,可以选择与专家精心挑选的投资组合一样好的投资组合。” 尽管进化可能使人在选股上不再聪明,但查尔斯·达尔文的理论被证明在更直接地应用时非常有效。
辅导:选股策略
什么是遗传算法?
遗传算法(GA)是模仿自然进化过程的问题解决方法(或启发式方法)。 与旨在像大脑中的神经元一样起作用的人工神经网络(ANN)不同,这些算法利用自然选择的概念来确定问题的最佳解决方案。 结果,GA通常用作优化器,用于调整参数以最小化或最大化某些反馈量度,然后可以独立使用它们或在ANN的构造中使用。 (要了解有关人工 神经网络的 更多信息,请参见: 神经网络:预测利润 。)
在金融市场中,遗传算法最常用于查找交易规则中参数的最佳组合值,并且可以将其构建到旨在挑选股票和识别交易的ANN模型中。 多项研究证明了这些方法的有效性,包括“遗传算法:股票评估的成因”(2004年)和“遗传算法在股票市场数据挖掘优化中的应用”(2004年)。 (有关更多信息,请参阅: 如何创建交易算法 。)
什么是遗传算法?
遗传算法如何工作
遗传算法是使用向量数学创建的,向量是具有方向和大小的量。 每个交易规则的参数都用一维向量表示,从遗传学角度来看,它可以视为染色体。 同时,可以将每个参数中使用的值视为基因,然后使用自然选择对其进行修改。
例如,交易规则可能涉及参数的使用,例如移动平均收敛散度(MACD),指数移动平均(EMA)和随机性。 然后,遗传算法会将值输入这些参数,以实现最大的净利润。 随着时间的流逝,会引入一些小的变化,而那些产生理想影响的变化会保留给下一代。
然后可以执行三种类型的遗传操作:
- 交叉代表生物学中的繁殖和交叉,从而使孩子具有其父母的某些特征。突变代表生物突变,并通过引入随机的微小变化来维持从一代人口到下一代的遗传多样性。从种群中选择单个基因组进行后续繁殖(重组或杂交)的阶段。
然后,将这三个操作分为五个步骤:
- 初始化一个随机种群,其中每个染色体为 n 长度,其中 n 为参数数。 也就是说,建立随机数的参数,每个参数包含 n个 元素。选择染色体或参数,以增加理想的结果(大概是纯利润)。将突变或交叉算子应用于选定的亲本并生成后代。当前的人口与选择运算符形成一个新的人口。重复步骤2至4。
随着时间的流逝,此过程将导致在交易规则中使用的染色体(或参数)越来越有利。 然后,在满足停止条件时终止该过程,该条件可以包括运行时间,适应性,世代数或其他条件。
在交易中使用遗传算法
虽然遗传算法主要由机构量化交易者使用,但是个体交易者可以使用市场上的几种软件包来利用遗传算法的功能,而无需一定程度的高级数学。 这些解决方案从面向金融市场的独立软件包到可以促进更多动手分析的Microsoft Excel附件。
使用这些应用程序时,交易者可以定义一组参数,然后使用遗传算法和一组历史数据对其进行优化。 一些应用程序可以优化使用哪些参数以及它们的值,而其他应用程序主要集中在简单地优化给定参数集的值。 (要了解有关这些程序派生策略的更多信息,请参见: 程序交易的力量 。)
曲线拟合(过度拟合)或围绕历史数据设计交易系统而不是识别可重复的行为,对于使用遗传算法的交易者而言,是潜在的风险。 任何使用GA的交易系统都应在实际使用前在纸上进行正向测试。
选择参数是该过程的重要组成部分,交易者应寻找与给定证券价格变化相关的参数。 例如,尝试不同的指标以查看是否有任何迹象与主要市场走势相关。 (有关更多信息,请参阅: 选择合适的算法交易软件 。)
底线
遗传算法是利用自然力量解决复杂问题的独特方法。 通过将这些方法用于预测证券价格,交易者可以通过识别用于给定证券的每个参数的最佳值来优化交易规则。 但是,这些算法不是圣杯,交易者应谨慎选择正确的参数,而不是曲线拟合。 (有关其他内容,请查看: 如何编写自己的算法交易机器人 。)