量化策略开发步骤系列(4)参数分析和过度拟合
- 参数分析
- 过度拟合
这是量化交易系列文章的第二系列——量化策略开发步骤,第一系列请参考专栏: 量化交易系统。很多朋友反馈最近的文章代码太多,看不懂。
这一部分将实现零代码分享,尽可能简单地介绍量化策略开发的步骤,以便任何交易员或投资者都能理解。我们将讨论概念和结果,以文字和图表形式进行展示,而不是沉浸在代码中。
本文是量化交易系列文章的第四部分。我的目标是以简化和非程序化的方式介绍量化交易项目所涉及的步骤。在第 1 部分中,我们定义了我们的假设,即我们可以将交易结果与之进行比较的市场基准,并构建了我们的数据以在后续阶段使用。第 2 部分介绍了量化交易中的初始回测和一些隐性成本。在第 3 部分中,我们分析了一些投资组合指标,用来了解我们策略的更多细节。
以下是该系列内容大纲:
- 第 1 部分——假设和基准(可跳转)
- 第 2 部分——回测和隐性成本(可跳转)
- 第 3 部分——关键投资组合指标(可跳转)
- 第 4 部分——参数分析和过度拟合
- 第 5 部分——前向测试和统计意义
免责声明:本文仅供参考,不构成任何交易建议。
感兴趣的关注下公众号,优先发布,接收后续的更新内容会更及时奥
公众号:码上助君
让我们回顾一下第三部分末尾回测所获得的结果:
在我看来,尽管回报高于基准,但我们的算法缺乏一致性,交易过于频繁。我相信有办法改进这一点,那么我们能做什么呢?
参数分析
参数分析是一个测试模型参数变化的过程,用来了解它们对模型属性的影响。实际上,我们希望通过改变策略参数来分析投资组合指标的行为。在许多情况下,需要更改参数以确保策略在实时交易情况下可行,同时考虑到流动性和计算能力等现实中的限制。让我们看一个使用三个不同参数集的回测性能示例:
- 组合1:SMA_S:15,SMA_M:50,SMA_L:200
- 组合2:SMA_S:30,SMA_M:100,SMA_L:200
- 组合3:SMA_S:30,SMA_M:200,SMA_L:500
我们可以看到,改变参数对策略的结果有相当大的影响。为了了解这种影响的大小,我们将定义我们想要研究的参数,定义我们的移动平均线可以达到的值范围,然后运行算法,使用所有参数组合对我们的策略进行回测,存储结果以便以后进行比较。让我们使用以下值来分析移动平均线的组合:
- SMA_S:10、20、30
- SMA_M:50、100、150
- SMA_L:200、400、600、800
这些值加起来有 36 种组合,结果表如下所示(截断为 20 行):
我们可以看到,分析结果呈现出了各种各样的绩效结果。所以我们必须找到结果最好的那个,并将其用于我们的交易策略,以最大化我们的利润。除此之外,模型开发中的另外一个重要主题也需要关心。
过度拟合
Investopedia 将过度拟合定义为:
过度拟合是统计学中的一种建模错误,当函数与一组有限的数据点过于接近时就会发生这种情况。因此,该模型仅适用于其初始数据集,而不适用于任何其他数据集
在设计模型时,我们希望它能够适用于新数据,因此我们必须尽可能避免过度拟合,而最好的方法是进行样本外测试。简而言之,样本外测试是在处理模型开发中未使用的数据时检查模型的质量。过度拟合的模型通常会表现出较高的样本内性能和较差的样本外性能。
因此,让我们检查一下研究中是否存在过度拟合。我们将使用 2018 年至 2021 年的数据对我们的策略进行参数分析,并检查在倍数方面提供前 5 个结果的参数。
现在让我们进行样本外测试,检查最佳参数组合(20、150、600)在 2021 年至 2022 年之间的一年内的表现如何。
在那个窗口期间,我们的策略实际上亏损了。通过在这个窗口期间运行参数分析,我们可以看到我们选择的参数组合甚至不在前 5 名之内。这些结果强烈表明存在过度拟合。
现在我们知道如何检测过度拟合,但如何避免呢?
以下多年积累总结的做法,希望会对你有所帮助:
- 尝试开发具有尽可能少参数的模型。参数越多,过度拟合就越严重。
- 参数调整不是选择性能最佳的组合。而是了解你的假设似乎成立的领域。寻找稳健性,而不是性能。
- 使用其他资产测试您的策略。通用模型将通过不同的资产实现一致的表现。
- 对出色的结果持怀疑态度。制定有利可图的交易策略需要时间和实践。
- 在实际投入资金之前,先模拟交易您的策略。
参数分析是量化交易策略开发的重要组成部分,但无论如何都要避免过度拟合。样本外测试是一种非常有用的程序,可以检查过度拟合,也可以模拟更真实的结果,我们将在第 5 部分对此进行更多讨论!
免责声明:本文仅供参考,不构成任何交易建议。
感兴趣的关注下公众号,优先发布,接收后续的更新内容会更及时奥
公众号:码上助君