machine learning and the stock market 论文阅读
Abstract
- 从业人员投入大量资源进行技术分析,而学术的市场有效理论则排除了技术交易的盈利能力。
- 我们通过应用一系列多样化的机器学习算法来研究这个长期存在的难题。结果显示,投资者可以利用过去的价格找到盈利的技术交易规则,并且这种样本外的盈利能力随着时间逐渐减少,表明市场随时间变得更加有效。
- 此外,我们发现进化遗传算法在不回避错误预测的态度上具有优势,使其在构建盈利策略方面优于那些严格专注于最小化损失的机器学习算法。
在本文中,我们利用机器学习技术来寻找盈利的交易规则。我们采用了一套多样化的机器学习方法,除了标准的损失最小化算法(例如支持向量机、决策树、随机森林和集成学习)之外,还包括进化遗传算法。此外,我们的实验伴随着严格的数据窥探和交易成本控制。结果表明,投资者本可以事先找到盈利的技术交易规则,但这种样本外的盈利能力随着时间逐渐减少。而且,我们的发现提倡使用进化遗传算法而非基于损失最小化的机器学习算法(如随机森林和决策树)。
Searching for Profitable Trading Rules
本文主要是使用遗传算法去搜索交易规则,搜索重点在于基于过去价格寻找盈利的技术交易规则。
- 一个技术交易规则的例子是移动平均策略(Han 等 (2013), Han, Zhou, 和 Zhu (2016)),它通过基于价格模式产生买入和卖出信号来运作。Han 等 (2013) 发现,移动平均策略随着时间推移能够产生正向且统计显著的异常收益。
我们的目标是找到具有最高风险调整回报率(阿尔法)的策略。约束条件为:
- 风险调整后的回报必须是正的且统计显著;
- 产生的交易成本要低于特定水平;
Trading Rule Representation
任何交易规则的表示都应具备三个主要特征。
- 首先,为了在搜索过程开始之前能够触及所有可能的情况,它应该覆盖大量的可行技术交易规则。
- 其次,这些交易规则应该是可行的。随机整合函数和操作符可能会产生无意义的规则,这只会增加搜索过程的计算复杂性。因此,交易规则应当遵循预定义的结构,以确保生成合理的交易规则。
- 第三,任何大的规则集都应该包含知名的技术交易规则。
我们的交易规则表示保证了这些特性。我们采用了树形格式来表示解决方案候选者。然而,这种表示方式缺乏对交易规则的明确强制结构,导致生成无意义的交易规则,使算法寻找最优解的过程变得繁琐。改进后的表示方法确保生成的解决方案候选者是合理的。而不是盲目地组合函数和操作符来构建交易规则,我们确认生成的交易规则是有效且可接受的(提高了解决方案候选者的闭合属性,使得所有树都是合成有效的复合函数)。我们通过在交易规则上施加层次结构来确保有效性,在每个层次上包括一组确定的函数和操作符。下表中描述了交易规则编码以及各层次中的函数和操作符列表。
树结构有四个层级。在根节点(第一层),我们使用布尔运算符和函数(If-then-else, and, or)来建立买入或卖出信号。第二层,我们引入关系运算符(>, <)返回0或1值。第三层,我们加入了实数函数(平均值、最大值、最小值、中位数、滞后、波动率、RSI 和过滤器)。
- 波动率函数将选定天数内的基础变量波动率与整个输入信息长度的波动率进行比较。
- 相对强弱指数(RSI)是一个技术指标,用于确定股票是否超买或超卖。它的计算公式为 ,其中 是基础变量高于其平均值的天数平均值除以低于其平均值的天数平均值。假设基础变量是资产价格,当RSI超过70时认为资产被超买,而低于30则表示超卖。
- 过滤器操作符负责生成类似于技术分析中的过滤规则的交易信号。假设价格是该操作符的基础变量,过滤器操作符接收两个参数:Pr(一个介于-1到1之间的值)和Days(天数),并产生作为输出。其中,是过去Days天的价格。通过比较今天的实际价格与计算出的价格,规则生成一个交易信号。
交易规则树结构的第四层包含了输入变量。我们将价格和收益作为插入信号生成过程的市场信息。输入到交易规则中的观测数量取决于终端Days,它指定了当前日期前的天数。此外,如果在第三层选择了实数函数Filter,我们还将Pr(一个-1到1之间的随机数)作为交易规则的输入。
下图展示了一个交易规则示例。这个规则由两个分支组成。左侧分支生成做空信号。根据规则,如果价格低于过去80天的平均价格,则做空资产。右侧分支负责买入信号。如果今天的价格高于过去20天的平均价格,则买入标的资产。当两个分支生成相反的信号(买入和卖出)时,我们持有无风险资产。
4级交易规则表示使用仅来自过去100天的数据可以生成多达1.3亿种可能的规则。此外,该机制能够产生诸如过滤、移动平均线、支撑与阻力以及突破等知名技术交易规则。
除此之外,还有and操作符的交易规则,如下图所示
Fitness Value
遗传算法一般都是根据适应度值进行优化的。适应度值衡量一个个体的优劣程度,遗传算法通过迭代的方式不断调整个体的基因,使得适应度值最大化。
对于一个交易规则,零成本组合的收益是通过从买入并持有策略的收益()中减去交易规则的收益()来计算的。组合的收益为 。接下来,我们将零成本组合收益回归到Fama和French四因子组合收益上:
其中、、 和 分别是市场、规模、价值和动量组合的收益。
我们也考虑到了交易成本。按照Balduzzi和Lynch (1999), Lynch和Balduzzi (2000), Han (2006),以及Han等 (2013)的研究,当交易基础资产(多头或空头)时假设会发生交易成本。我们假设交易30天国债时没有成本。我们计算使交易策略收益()平均等于零的盈亏平衡交易成本(BETC)值。Balduzzi和Lynch (1999) 使用1个基点(bps)和50个基点(bps)作为交易成本的下限和上限。
所以,我们可以定义适应度值如下:
如果一个交易规则不满足这些条件,它将被赋予一个非常低的适应度值(-M),从而在遗传算法的迭代过程中被淘汰。这样的机制有助于筛选出稳健且潜在有利可图的交易策略。
Optimization Procedure
我们首先从所有可能的交易规则中随机生成一组交易规则,称为初始集合。这个初始集合代表在任何优化过程发生之前的原始交易规则集。通过遗传算法产生新的群体,同时确保最适应的规则能够生存下来。
为了创建新的进化交易规则群体,我们使用交叉和变异操作符。交叉操作符旨在利用现有群体成员的特点来产生新的交易规则。在交叉过程中,我们随机选择现有群体中的两条规则(在遗传算法上下文中被称为“父母”),并将一条规则的买入分支与另一条规则的卖出分支进行交换。
由交叉和变异操作产生的三个新群体具有现有(存活)群体的特点以及一些随机特性以保持基因多样性。新生成的群体与现有群体合并,并评估其适应度值。接下来,我们根据适应度值对规则进行排序,并选出适应度值最高的规则群体。
将算法应用于特定时间段可能会引入数据窥探问题。我们在优化过程中发现的任何盈利规则可能仅对用于优化的数据点有效。为了解决这个数据窥探问题,我们将算法信息输入的时间跨度分为两个时期:训练期和选择期。选择期作为验证期,以确保在训练期内找到的盈利规则不仅仅是数据窥探的例子。我们首先在训练期内进行搜索以构建新群体;在选择了训练期内最适应的交易规则后,我们在选择期内重新评估它们。选择期内成功的规则被添加到最终数据集中,即最终集合。在后续世代中,最终集合中的成员不断更新,直到达到停止标准(在我们的案例中,是最大世代数)。
下表描述了这个完整过程
影响优化过程性能的两个参数是群体大小 |POP|(群体集中规则的数量)和世代数 |GEN|(使用交叉和变异操作符繁殖群体的次数)。
- 我们遵循Allen和Karjalainen (1999),并选择500作为群体规模,这是一个足够大的数字,可以有意义地评估算法性能,同时仍然计算上可管理。在稳健性测试中,我们用其他群体规模(100, 1000, 2000)进行了有限数量的实验,结果在经济上相似。
- 较高的 |GEN| 会导致表现更好的规则,但也意味着更高的计算成本。我们报告的结果是基于20代的实验。我们也使用了50代和100代进行了一些有限数量的稳健性测试,结果在质量上是相似的。
Results
Data
对于基准分析,我们使用了从1965年7月1日至2014年12月31日的10个NYSE/AMEX波动率十分位组合作为测试资产。波动率十分位组合捕捉了不同股票间信息不确定性上的变化。当信息不确定性较高时,投资者倾向于对公开信息反应不足(Zhang (2006))并且更依赖技术信号而非基本面信号(Han等 (2013))。因此,使用波动率十分位组合为我们提供了一个实验室环境,以观察更高的不确定性(或噪音与信号比率)是否会导致更有利可图的交易规则。
我们假设一个5年的训练期和一个5年的选择期。滚动分析如下:我们从1965年开始,使用5年的训练期(1965-1969年)和5年的选择期(1970-1974年)作为算法的输入。优化后,我们在样本外的一年(1975年)测试交易规则的表现。接下来,我们将输入数据向前滚动一年,并使用5年的训练期(1966-1970年)和5年的选择期(1971-1975年)作为算法的输入,并评估算法输出规则在样本外一年(1976年)的表现。我们重复这一过程直到2014年。此外,在每个滚动窗口内,我们执行分析20次(即20次模拟),以确保结果不是由一次偶然的算法运行所驱动。
作为benchmark,我们使用了Han等 (2013) 中列出的移动平均策略集,他们表明移动平均(MA)策略在低交易成本下产生了正向且经济和统计上显著的CAPM、Fama-French三因子和Fama-French四因子阿尔法。他们使用的移动平均策略列表中的滞后长度从3到200。我们遵循相同的程序并生成了一组滞后长度在3到100之间的移动平均策略,我们称之为移动平均集合(Moving-Average Set)。
Asset-by-Asset Performance
下表报告了波动率十分位组合中三组交易规则的年度化样本外四因子阿尔法的汇总统计。
上表有四个重要之处:
- 最终集合的表现优于其他交易规则集:在波动率十分位组合中,最终集合(Final Set)产生的平均阿尔法值高于其他两组交易规则。例如,在最低波动率的十分位组合中,最终集合产生了14.27%的年化异常回报,而移动平均集合(Moving-Average Set)和初始集合(Primary Set)分别产生了4.76%和1.26%的异常回报。
- 随着投资组合波动性的增加,最终集合和移动平均集合的平均阿尔法值也增加:例如,在最低波动率的十分位组合中,最终集合产生14.27%的回报;而在最高波动率的十分位组合中,它产生22.98%的回报。这表明在信息不确定性更高的环境中,算法找到的交易规则可能更加有效。
- 最终集合与初始集合之间的平均阿尔法差异证实了算法的价值:最终集合包含产生正异常回报的策略,而初始集合则没有。例如,在最低波动率的十分位组合中,初始集合产生平均1.26%的回报,而最终集合产生平均14.27%的回报,显示算法成功地进行了优化。
- 算法找到的规则数量少于可能的最大规则数:对于最低波动率的投资组合,算法只找到了332条满足搜索标准的独特交易规则,而不是群体规模中的最大可能数500条。这表明算法能够有效地筛选出最有效的规则,而不是简单地生成大量的规则。
注意
:这里找出来的Final Set个数为332(以最低波动率的十分位组合为例),是指里面有332个交易规则,这些规则都能满足搜索标准。也许这些规则不相同,也许有重复的规则,但总数为332。
Portfolio Performance
相比于单独投资每项资产,创建一个多元化的投资组合在现实中更为实际。这里我们考虑一种情况,即我们在所有波动率十分位组合中进行多元化投资。分析假设投资者使用算法,找到针对每个资产优化的规则,并在这些规则上平均分配投资。
通过最终集合中的规则进行多元化的投资组合产生了25.8%的年化平均阿尔法值,高于移动平均集合的4.2%阿尔法值和初始集合的1.3%阿尔法值。
虽然整体平均统计数据有助于确定不同集合的整体表现,但时间序列动态同样值得关注。下图展示了随着时间推移,在波动率十分位资产中多元化的投资组合中不同交易规则集的年化样本外阿尔法值的平均值。
图中最终集合的阿尔法值显示,该算法在大多数年份都产生正向阿尔法。此外,尽管移动平均集合通常也会随着时间产生正回报,但其水平低于最终集合,并且出现负阿尔法的年份更频繁且幅度更大。初始集合则一贯地产生接近零或负异常回报。不出所料,盲目使用随机生成的技术交易规则进行投资并不优于Fama和French的三因子基准。
图2中最终集合的阿尔法生成似乎随着时间呈现下降趋势。为了测试这种负面的时间趋势是否具有统计学意义,我们进行了简单的OLS回归。我们构建了一个时间趋势变量yeart,它从1975年(样本外结果的第一年)开始取值为1,并每年递增1单位直到2014年。我们计算了最终集合在每个样本外年度的平均样本外阿尔法值。我们将平均年度阿尔法值对时间趋势变量进行回归。
我们关注第一行的整体结果。时间趋势上的估计系数是负的并且统计显著。负系数-0.63意味着随着时间的推移,一组优化后的交易规则的表现每年减少0.63%。
样本外阿尔法的减少与Dugast和Foucault (2020)的理论发现一致。他们表明计算能力的提升导致了
- 预测器平均质量的提高;
- 价格信息性的增加;
接下来,我们通过计算原始超额收益(而非阿尔法)上的夏普比率来检验风险-回报权衡。我们每年为波动率十分位组合的多元化投资组合计算跨模拟的规则的样本外夏普比率的平均值。
图表显示,使用机器学习算法可以导致随着时间推移持续大于1的显著正向夏普比率,但该比率随着时间逐渐减少。1975年的平均夏普比率约为4.2,到2014年降至约1。
然后,我们测试交易策略是否可执行,或者交易成本是否会抵消阿尔法。我们考虑单边交易成本为5个基点。对于每次发生的交易,我们从回报中扣除5个基点。当我们从持有资产的多头仓位、无风险资产持仓到空头仓位之间转换时,我们扣除了合理的交易成本。
下图展示了在考虑交易成本后,跨越波动率十分位组合的多元化投资组合的异常回报结果。该图显示,即使在计入交易成本之后,优化后的交易规则的盈利能力仍然存在。
Characterizing the Trading Signals
本节检查最终集合中优化后的交易规则的特性。首先,我们观察这些规则随时间持有的头寸方向。接下来,我们评估是买入还是卖出信号驱动了表现。我们还研究了优化规则中使用的不同类型的底层函数。
Signal Direction
我们的搜索算法在选择投资方向上具有灵活性。在这个小节中,我们研究了优化规则生成的买入、卖出和持有无风险资产信号的频率。对于样本外期间的每条规则,我们统计了所有模拟中平均的买入、卖出和市场外信号的数量。结果见下图。
- 在样本期内,买入、卖出和中性信号的频率相对稳定。
- 买入信号约占可执行信号的大约40%,而卖出和持有无风险资产信号各占大约30%。
接下来,我们考察交易规则的表现是否来自多头和空头仓位,或者其中一个主导另一个。在下表中,我们查看了由买入、卖出和持有无风险资产信号生成的波动率组合中的收益汇总统计。
表中的数值是在t日根据信号类型(买入、持有、卖出)条件下的t+1日收益,在样本外年份和模拟中取平均值。对于十分位1到8,多头信号占比超过50%,而空头信号占比不到25%。在十分位9和10,多头信号少于50%,而空头信号出现的频率超过25%。
表中显示,无论是空头还是多头信号都能预测未来的回报,并且都对算法的成功有所贡献。针对最低和最高波动率十分位组合的优化规则分别产生了平均每日0.113%(年化28.48%)和0.245%(年化61.74%)的平均回报。
相比之下,简单的买入并持有策略对于最低和最高波动率十分位组合分别产生了0.049%和0.183%的日均回报。
- 对于买入信号,所有策略在最低和最高波动率十分位组合中的平均次日回报分别为0.168%和0.245%。
- 基于卖空信号的平均次日回报,在最低和最高波动率十分位组合中分别为0.130%和0.197%。
Signal Functions
我们进一步探讨交易规则中使用的函数和变量类型。优化后的规则是否倾向于在其结构中利用特定的函数或变量?下表总结了当基础资产是最低和最高NYSE/AMEX波动率十分位组合时,最终集合中交易规则的特征。所有数值都是在20次模拟中的滚动样本外窗口上取平均值。
我们重点关注最低波动率十分位组合的结果(最高波动率十分位组合遵循类似的模式)。一个函数或实际变量(价格或收益)可以被使用的最大次数是1,884次(当每个交易规则的买卖方是一个二分支树时,理论上的最大次数)。然而,规则也可能在买卖方只有一条分支。
- 函数Minimum和Median使用得最多。
- 作为优化交易规则的输入,Price比Return使用得更多。
Portfolio Allocation
我们考虑了该算法如何在10个波动率十分位投资组合中分配资源。回想一下,投资组合的分配取决于每个波动率十分位中存活到最终集合(Final Set)的交易规则数量。因此,询问算法如何在波动率十分位之间分配资源等同于询问每个波动率十分位中有多少交易规则能够进入最终集合。
下图展示了随着时间推移,不同波动率十分位投资组合之间的权重分配情况。
图7显示,在大部分样本期间,我们在波动率十分位之间平均分配权重。每年每项资产大约获得10%的权重。然而,从2005年开始,各十分位投资组合间的权重分配发生了变化。2005年后,最低和最高波动率十分位的投资组合成为主要的投资工具。例如,在2014年,35%的交易规则来自最低波动率十分位的投资组合,另有30%来自最高波动率十分位。虽然解释2005年后投资组合分配明显转变的原因超出了本文的范围,但我们发现这是一个引人入胜的现象。
此外,为了考察是否相同的可预测机制驱动着不同波动率十分位投资组合的交易规则,我们将每个波动率十分位投资组合的最终规则应用于其他波动率十分位投资组合。结果报告在下图中,表明较高波动率十分位投资组合中的交易规则当应用于其他十分位投资组合时会产生更高的平均样本外阿尔法值。因此,我们可以得出结论:不同的可预测机制驱动着各个十分位投资组合中发现的规则集。
Robustness
placebo test
结果可能由某种机械的回归过程或仅仅是规则对数据的幸运适应所驱动。为了解决这个担忧,我们进行了以下实验:我们将数据集沿着时间维度打乱,并将优化程序应用于打乱后的数据。任何来自价格的可预测性应该在数据集中被打破,因此应用优化程序不应能够成功识别出交易规则。我们使用1965年7月1日至2014年12月31日的10个NYSE/AMEX波动率十分位投资组合。我们为每个时间段分配一个随机数,并根据随机数对数据进行排序。我们使用的算法设置与第二节中的基线分析相同,即5年的训练期、5年的选择期、1年的样本外期、20次模拟、群体规模为500以及20代。结果见下表。
样本外平均阿尔法值为负,符合预期。如果优化程序的表现是由于检测到趋势,正如我们所主张的那样,那么打乱数据会导致优化程序无法成功。正如预期的那样,我们发现最终集合始终产生负阿尔法值。
Choice of Asset Pricing Model
我们使用Fama和French的四因子资产定价模型作为基准来计算阿尔法值。有可能结果是由某些未建模的风险因素驱动的。为了解决这个问题,我们重新评估了第二节中最终集合内优化交易规则的样本外表现,使用CAPM(市场组合)、三因子模型(市场、规模和价值组合,Fama和French (1993))以及五因子模型(市场、规模、价值、盈利能力和投资组合,Fama和French (2015))。
最终集合中的优化规则继续一致地产生异常回报,并且表现优于初始集合和移动平均集合。
Choice of Underlying Asset
搜索程序可能表现良好是因为选择了底层资产(10个波动率十分位投资组合)。为了排除这种可能性,并作为额外的样本外测试,我们在NYSE/NASDAQ/AMEX规模十分位投资组合以及个股上重复了分析。
表中的最后一行显示了跨规模十分位投资组合规则的多样化投资组合的结果。最终集合的平均阿尔法高于移动平均集合和初级集合的基准值。虽然移动平均集合获得了9.97%的平均年化阿尔法,但最终集合中的改进规则平均产生了32.32%的样本外阿尔法。
我们也将我们的算法应用于个股。由于运行算法计算成本较高,我们专注于1965年至2014年间每年在NYSE/AMEX/NYSE中市值最大的100只股票(价格高于$5且过去10年内没有缺失价格)。除了价格之外,我们还将每日成交量作为算法的输入。
对于个股,我们使用两个独立的适应度函数:
- 平均超额收益;对于平均超额收益,如果零假设(均值等于零)的t统计量大于2,则我们将适应度函数设为超过无风险利率的平均收益;否则,适应度函数等于-M(M是一个大数值)。
- 夏普比率。对于夏普比率,如果平均夏普比率的零假设t统计量大于2(通过引导每个规则的日收益率进行此测试),则我们将适应度函数设为此比率;否则,适应度值是一个大的负数(-M)。
对于每只股票,我们应用算法在过去10年中搜索优化规则(5年的训练期和5年的选择期),然后计算1年的样本外回报。我们对每个适应度函数(即平均超额收益和夏普比率)进行了10次模拟。
下图 显示了最大化夏普比率时的样本外结果。下图的A图报告了平均超额收益,而B图展示了在扣除交易成本后,最终集合中优化交易规则的夏普比率,该值是在规则、股票和模拟上取平均后的结果。扣除交易成本后的平均超额收益在1990年前始终为正,而在1990年后,我们可以看到样本外表现下降。这种下降在2000年后更为明显。此外,扣除交易成本后的样本外夏普比率在1990年左右持续为正并高于0.5,直到2005年仍高于零。总体而言,两种绩效指标在2000年后的表现下降是显而易见的。
与机器学习算法比较
遗传算法在采用不同的目标函数方面具有灵活性(例如,在我们的文章中,我们使用遗传算法来最大化样本外阿尔法值以及夏普比率)。此外,遗传算法能够在非线性环境中同时搜索模型结构和模型参数。其随机性质推动了对全局最优解的搜索,避免了收敛到局部最优解。另一方面,标准的机器学习模型,如KNN或随机森林,是由损失最小化目标函数(最小化预测误差或均方误差)指导的,这限制了搜索过程中的创造性。总体而言,遗传算法在寻找最优解时的适应性和随机性为其在优化过程中提供了优势。
使用的机器学习算法:
- SVM + Logistic (正则化SVM+逻辑回归)
- 决策树 (Decision Tree)
- K近邻 (KNN)
- 随机森林 (Random Forest)
- 集成学习者 (Ensemble)
- 长短期记忆网络 (LSTM Network)
因变量:对于每一天t,我们创建一个0-1变量,如果当天的回报为正,则该变量等于1,否则为0。
特征集:对于正则化SVM+逻辑回归、决策树、KNN、随机森林和集成方法,我们使用价格和收益的函数作为特征集。这个特征集包括过去10天、25天、50天和100天的平均回报、波动率、偏度、峰度和自相关(总共20个特征)。对于LSTM网络,我们使用最后100天的价格数据,这类似于遗传算法的输入。
训练过程:对于每个样本外年份,我们使用前10年的数据来训练机器学习算法(采用10折交叉验证)。我们使用从1965年至2017年的10个NYSE/AMEX波动率十分位投资组合。从1975年起的每一年,我们都使用之前的10年来训练机器学习算法。利用训练好的算法,我们在样本外期间预测买入和卖出信号。这一过程针对每个波动率十分位投资组合实施。在计算样本外回报时,我们假设固定的5个基点(bps)交易成本。我们计算每年每个波动率十分位投资组合的样本外阿尔法值,并报告跨投资组合的等权重阿尔法值。
为了稳健性检查,我们还包括了一个随机投资策略,其中我们在每个样本外的日子里随机创建信号。
下图展示了扣除成本后的样本外四因子异常回报。结果显示随着时间推移,这些算法的表现模式类似于遗传算法。对于所有标准机器学习算法,早期年份(1970年代)的样本外阿尔法值显示出有希望的表现,但随着时间推移性能下降。其中,LSTM网络和SVM + Logistic线性算法在2000年前表现出色,每年净收益高达60%。然而,2000年后样本外表现有所下降,这与遗传算法的结果相符。总体而言,所有机器学习算法的结果表明市场效率随时间增加。
接下来,我们将标准机器学习算法的表现与遗传算法进行比较。为此,我们将遗传算法的样本外回报与解决相同问题时的标准机器学习算法回报进行回归分析:即从1975年至2014年投资于10个NYSE/AMEX波动率十分位投资组合。
由于我们将遗传算法的样本外回报与不同标准机器学习算法的回报进行了回归,因此一个正且显著的截距(广义阿尔法)意味着遗传算法相对于标准机器学习算法有更好的表现。下表中的结果清楚地显示了遗传算法相对于大多数标准机器学习算法的优越表现。例如,相对于SVM + Logistic算法,遗传算法获得了2.62%的广义阿尔法(t = 3.24)。此外,在标准机器学习算法中,LSTM网络表现出与遗传算法相当的净收益(广义阿尔法为1.56%,t = 1.17)。
Conclusion
近期文献对于技术交易规则的盈利能力提供了相互矛盾的证据。一些研究发现技术交易是有利可图的(例如,Sullivan, Timmermann, 和 White (1999)),而其他研究则没有发现这一点(例如,Bajgrowicz 和 Scaillet (2012))。Bajgrowicz 和 Scaillet (2012) 的一项最近研究表明,投资者无法事先挑选出在扣除交易成本后样本外有利可图的技术交易规则。
在本文中,我们通过机器学习算法来挑战这一论点,这些算法旨在寻找扣除交易成本后样本外盈利的技术交易规则。
- 首先,我们的结果显示,在计算能力充足的情况下,技术交易可以是盈利的。这在应用我们的机器学习算法早期年份的结果中尤为明显,并且与Dugast和Foucault (2020) 的理论发现一致,即更好的计算能力提高了预测器的平均质量,从而增加了盈利性。
- 其次,我们展示了技术交易确实是可以盈利的。这通过1995年至2005年间正的样本外异常回报得到证实。
- 第三,我们表明由我们的机器学习算法发现的技术交易在近年来变得不那么盈利。这一点从2005年后算法表现不佳的结果中显而易见。这也符合Dugast和Foucault (2020) 的结论,即更高的计算能力增加了价格信息含量,导致预测器的盈利能力下降。
本文还比较了进化遗传算法与标准损失最小化机器学习算法(如决策树和随机森林)在寻找盈利技术交易信号方面的表现。样本外结果显示,遗传算法在设定搜索空间、经济目标以及附加约束方面的灵活性使其相对于标准机器学习算法具有优势。