伯顿·马尔基尔在1973年出版的《漫步华尔街》一书中写道:“一只蒙着眼睛的猴子向报纸的财经版面投掷飞镖,就能选出一个与专家精心挑选的投资组合表现一样好的投资组合。” 虽然进化并没有让人类在选股方面变得更聪明,但事实证明,如果更直接地应用查尔斯·达尔文的理论,它依然是有效的。
遗传算法是利用自然力量解决复杂问题的独特方法。通过将这些方法应用于预测证券价格,交易者可以确定特定证券每个参数的最佳值,从而优化交易规则。
重点摘要
- 基于遗传学和进化论规则的复杂计算机算法最近在证券交易中取得了一些成功。
- 通过应用这些方法来预测证券价格,交易者可以优化交易规则并制定新的策略。
- 个人交易者可以利用市场上的多种软件包来发挥遗传算法的强大功能。
什么是遗传算法?
遗传算法 (GA) 是一种模拟自然进化过程的问题解决方法(或启发式方法)。与旨在模拟大脑神经元功能的人工神经网络(ANN) 不同,这些算法利用自然选择的概念来确定问题的最佳解决方案。
因此,遗传算法 (GA) 通常用作优化器,通过调整参数来最小化或最大化某些反馈指标,这些指标可以独立使用,也可以用于构建人工神经网络 (ANN)。(要了解更多关于 ANN 的信息,请参阅:神经网络:利润预测。)
在金融市场中,遗传算法最常用于寻找交易规则中参数的最佳组合值,并且可以将其构建到用于挑选股票和识别交易的 ANN 模型中。
多项研究已证实这些方法的有效性,包括《遗传算法:股票估值的起源》(2004 年)和《遗传算法在股票市场数据挖掘优化中的应用》(2004 年)。(更多信息,请参阅:交易算法是如何创建的。)
遗传算法的工作原理
遗传算法是用向量(向量是具有方向和大小的量)在数学上创建的。每个交易规则的参数都用一个一维向量表示,这个向量在遗传学上可以被认为是染色体。同时,每个参数中使用的值可以被认为是基因,然后通过自然选择进行修改。
例如,交易规则可能涉及使用诸如移动平均线收敛散度(MACD)、指数移动平均线(EMA) 和随机指标等参数。然后,遗传算法会将数值输入这些参数,以实现净利润最大化。随着时间的推移,会引入一些细微的变化,而那些能够产生良好影响的变化则会保留到下一代。
(另请参阅:算法交易基础知识。)
然后可以执行三种类型的遗传操作:
- 交叉代表生物学中的繁殖和交叉,即孩子会继承其父母的某些特征。
- 突变代表生物变异,通过引入随机的小变化来维持从一代种群到下一代种群的遗传多样性。
- 选择是从群体中选择单个基因组以供后期繁殖(重组或交叉)的阶段。
这三个操作随后用于五个步骤中:
- 初始化一个随机种群,其中每个染色体的长度为 n,n 为参数的数量。也就是说,每个参数由 n 个元素组成,并随机设置一个参数个数。
- 选择能够增加理想结果(大概是净利润)的染色体或参数。
- 对选定的父母应用变异或交叉算子并生成后代。
- 利用选择算子将后代与当前种群重新组合,形成一个新的种群。
- 重复第二至四步。
随着时间的推移,这个过程将产生越来越有利于交易规则使用的染色体(或参数)。当满足停止条件时,该过程将终止,停止条件可以包括运行时间、适应度、代数或其他条件。
在交易中使用遗传算法
虽然遗传算法主要由机构量化交易者使用,但个人交易者也可以利用市场上的几种软件包来驾驭遗传算法的强大功能(无需高等数学学位)。
这些解决方案包括面向金融市场的独立软件包以及可以促进更多实际分析的 Microsoft Excel 附加组件。
使用这些应用程序时,交易者可以定义一组参数,然后使用遗传算法和一组历史数据进行优化。有些应用程序可以优化所使用的参数及其值,而有些应用程序则主要专注于优化给定参数集的值。
曲线拟合(即过度拟合),即围绕历史数据而非识别可重复行为来设计交易系统,对于使用遗传算法的交易者来说,存在潜在风险。任何使用遗传算法的交易系统在实际使用前都应进行纸面前瞻性测试。
选择参数是整个过程的重要组成部分,交易者应该寻找与特定证券价格变化相关的参数。例如,尝试不同的指标,看看是否有任何指标与市场的主要转折相关。
综述
这些算法并不是圣杯,交易者应该小心选择正确的参数而不是曲线拟合。
(如需更多阅读,请查看:选择正确的算法交易软件、程序交易的力量以及如何编写自己的算法交易机器人。)