美文网首页真格量化
回测曲线要上天?其实你只是在过拟合!

回测曲线要上天?其实你只是在过拟合!

作者: ce2a5fc7b1e4 | 来源:发表于2019-05-22 20:41 被阅读0次

    在量化交易建模过程中很多策略研究者都会经历过度拟合的情况。过拟合其实是机器学习领域和统计学领域的一个概念。一般被用来描述一个模型在测试时表现的非常好,但是在实盘中成绩却不如预期。我们一再强调量化交易者在进行模型开发时要避免过拟合。那么究竟过度拟合会对交易产生怎样的影响呢?

    过拟合对交易产生的最直接影响就是模型建立之后,在测试中表现良好但是到了样本外(比如开始实盘交易)就会出现亏损的情况。

    对于某些的机器学习的应用场景过拟合表现不是很明显。比如传统的分类问题,一般训练集准确度99%,测试集即使性能下降大概也还有95%,而且有些场景即使出错,后果也不严重(比如将狗识别为猫,且不涉及刷脸支付),所以影响并不是大。

    但是金融数据却不一样,时间序列特征和数据的高噪音特性就会造成训练数据和测试数据出现非常大的差异,且损失的可能就是真金白银。所以,我们在进行建模时一定要尽力避免过度拟合的情况发生。

    量化建模如何避免过度拟合?

    科学的态度是我们在建立模型时必备的要素。一个设计良好的量化交易建模体系能够规避大多数的过拟合情况。那么如何取避免过拟合情况的发生呢?我们可以采用以下几个方法:

    1.避免数据的重复使用

    通常情况下我们说历史数据往往测试第一次(或规定的较少次数时)时是合理的,如果反复使用同一段数据进行测试和模型优化(拟合)就容易造成过拟合的问题。此时应当扩大数据选取范围而不应与一段数据“死磕到底”。

    2.保证一定的交易次数

    做期货策略的交易者都知道,如果进行分品种回测的话,不活跃的品种可能一年之内都没有多少次交易,即便是几年的时间下来也交易信号可能也不到100次。依据这样少的交易量所作出的回测结果通常是意义不大,并且非常容易造成过拟合。特别是对于日线级别以上的套利类策略,因为其持仓的时间会更长,一年也就几次的交易信号,这样回测的可靠性就偏低。所以我们在进行策略的回测时最好选择一些交易次数较多,样本较大的策略,一般来说300次以上的交易次数才能比较可靠地验证策略是否有效。

    3.保证一定的单笔交易利润

    有些策略我们在验证之后会发现交易的次数比较多,业绩表现也不错但是单笔利润过低。有些投资者可能会觉得,平均利润低有什么关系呢,只要总体盈利就可以了呀。但是,我们除了要注意1,盈利还会受滑点的影响,如果单笔盈利过低,那么就非常有可能受到滑点的影响。稳定盈利的量化交易策略一旦遭遇手续费调整就会变成稳定亏损的策略。2,如果盈利仅依靠一两次交易产生,那可能在实盘里同样的盈利机会很久都不出现,投资者将忍受长时间的策略“无所事事”甚至“稳定回撤”(比如一些押注黑天鹅事件的买深度虚值期权策略)。所以在其他指标类似的情况下,我们应优先考虑那些单笔利润较高的策略,才能更好的避免滑点以及交易机会分布不均带来的影响。

    我们一直在强调要避免过度拟合的情况发生,但是我们还没谈到过拟合究竟为什么会发生。其实过拟合之所会发生就是因为我们在研究过程中,初始的模型总是很难达到满意的效果,所以采用一步一步的过度优化和完善。例如,我们从教科书或研报上照搬的模型在样本外的表现总是不尽如人意,但我们又非常渴望制造一个夏普大于2的策略。我们就不得不将对样本外的一段数据进行持续的优化来提高其表现。又或者交易次数一旦增加单笔利润就减少,出现了多个目标无法平衡的情况。

    关于提高模型质量我们可以采取以下四个方式:

    1.提高因子质量

    模型的基础就是因子,如果我们的模型因子质量过差,即使我们的模型再复杂,背后的理论再先进都没有办法得到想要的结果。所以我们要先逐一检查因子的质量。比如第一步可以采用单个因子建模的方式,查看是否会出现过度拟合的情况。一般情况下单个因子的模型是最简单的模型结构,所以不容易出现出现过度拟合的情况。但是如果单个因子建模的质量不佳,那么可能说明这个因子只是个随机噪音。这时候我们就可以先将这个因子剔除,再试试其他因子。

    2.增加策略多样性

    市场行情是随时都在发生变化的,过去表现优异的模型并不代表未来还会表现良好。例如均值方差模型是过去的投资组合理论中非常喜欢应用的模型,但是它的收益均值非常的难以把控。所以在近几年人们逐渐采用风险平价模型来代替均值方差模型。所以我们在进行策略选择的时候,不要特别执着于模型过去的业绩或者教科书对其的美誉,否则我们就很容易得到与市场相关性非常高的、大家都在使用的策略。我们可以通过各个不同的维度(比如时间周期、品种、国别)来进行策略设计,以增加量化交易策略的多样性,来提高投资组合在“主力策略”失效之后的生存能力。

    3.优化筛选标准

    很多投资者在样本内挑选策略时都非常苛刻,标准过高更容易挑出过拟合的策略,而其往往在样本外碰壁。并且如果某个品种的策略表现是和该品种价格走势高度相关的话,那么这个品种走势不理想时,策略表现不佳也是正常的。那么如果开发者一味要求在缺乏合理交易机会的不利行情中找到“表现好”的策略,那只会增加策略过拟合的风险。

    4.金融数据的时间序列特征

    由于金融数据存在时间序列的特征,所以我们在建模的时候最好采用滚动向前的方法。这样可以保证足够的样本容量,训练的时间也足够长。如果测试的结果对测试集和训练的划分过于敏感,那么就很有可能是长度不够或者交易次数不够导致的。

    最后对于量化交易初学者,可以先使用简单的模型,模型参数越多去判断过拟合难度也越大。如果一个策略的原理能够简单的几句话阐明,那就会比一个数据挖据造出的黑盒子更容易维护。回测时,应当多关注策略的稳健性(在不利情况下不要大亏),而非只关注收益率。另外,对于模型参数,与其追求其精确性,想要一次成型,不如设计一些能根据市场状况去主动对其调整的方法。

    — — — — — — E N D — — — — — —

    往期文章:

    Numpy处理tick级别数据技巧

    真正赚钱的期权策略曲线是这样的

    多品种历史波动率计算

    如何实现全市场自动盯盘

    AI是怎样看懂研报的

    真格量化策略debug秘籍

    真格量化对接实盘交易

    常见高频交易策略简介

    如何用撤单函数改进套利成交

    Deque提高处理队列效率

    策略编程选Python还是C++

    如何用Python继承机制节约代码量

    十大机器学习算法

    如何调用策略附件数据

    如何使用智能单

    如何扫描全市场跨月价差

    如何筛选策略最适合的品种

    活用订单类型规避频繁撤单风险

    真格量化回测撮合机制简介

    如何调用外部数据

    如何处理回测与实盘差别

    如何利用趋势必然终结获利

    常见量化策略介绍

    期权交易“七宗罪”

    波动率交易介绍

    推高波动率的因素

    波动率的预测之道

    趋势交易面临挑战

    如何构建知识图谱

    机器学习就是现代统计学

    AI技术在金融行业的应用

    真格量化可访问:

    https://quant.pobo.net.cn

    真格量化微信公众号,长按关注:

    遇到了技术问题?欢迎加入真格量化Python技术交流QQ群  726895887

    相关文章

      网友评论

        本文标题:回测曲线要上天?其实你只是在过拟合!

        本文链接:https://www.haomeiwen.com/subject/ewjpzqtx.html