2018年秋季,有幸和七禾网的各位读者特别是《程序化模型精品课》学员们深度交流,关注学习难点、解答学习中的疑惑。在此过程中,我总结部分了典型疑问,认为可以公开和读者们分享。也看到很多读者观看了5节免费课程,大家都对于程序化模型的构建有很高热情,基于此撰写这篇文章,分享给各位。 一、回测中的坑非常多,绩效不一定准确 有一种观点认为我们基于足够的历史数据,获得了稳定的模型(包括参数),可以直接挂实盘交易。只可惜在国内目前的期货数据长度和质量前提下,我们建议从2010年开始回测主要交易品种(2010年后市场交易者行为相对于稳定),如果你构建的是小时线或日线中频交易模型,数据量并不够,难以得到稳定统计特征。所以数据不足,是第一个需要注意的问题。 数据一旦不足,牵扯到你的回测要打问号,特别是针对单品种的参数优化回测。 我明确表示过“不优化参数”的观点,因为难以寻找到稳健特征。所以在日频模型上,推荐多用市场通用参数,比如20日的现实意义是大致一个月交易时间的市场均价,60日是一个季度,5日是一周。另一个方法是,同时加载超过20个品种的历史数据,然后尝试整体优化(或者说观察)参数稳健性,必须在主流品种上构成一个性能(净利润、收益风险比或夏普比率)均值显著大于0的参数平原,这个参数才能在各品种上被接受。 如上图:我测试过日频上,主要商品期货品种的入场高低点周期参数和出场ATR幅度参数,最终仅仅发现了非常弱的统计规律:出场比入场重要。而难以得到某个入场参数是最优的,因为各品种的参数高原图都不一样。我们寻找公共较优区间的优化初衷几乎失败。 任何回测行为,都是在使用历史去代表未来。而历史不会简单出现,金融数据最大的疑问在于其高噪音和时序路径不确定,你的回测绩效在实盘中大概率要衰减,做好这个心理准备。 二、动量类模型中,ATR负相关头寸意义显著 时间序列动量(将模型挂在单独合约上运行)模型对于波动率的异常升高不能很好适应,尤其是很多时候波动率的提升并非意味着机会,而是风险,大部分时间是这样。 由此我们得到期货中几种开仓头寸管理方法,如波动率倒数头寸管理就是其中最重要、最显著的一种。因为波动率的短期均值回复(忽高忽低)特性,高波动意味着不确定性,低波动相反意味着下阶段会回到高波动状态。所以在低波动情况下,要开更大仓位。 有读者在学习《程序化模型精品课》后不理解,认为“这样岂不是在大行情来临的时候,没有开足够的大仓位?” 我的回答是,大行情不等于短期高波动,大行情等价于大幅度的价格漂移和低波动率。而大幅度价格漂移几乎是无法预测的,但是短期高波动率大概率意味着高风险。所以我们最终得到这样的头寸管理,你可以理解为:量化投资的核心是防守,防守反击,寻找机会,降低亏损才是王道。 之前我撰写的文章中,选择了8个品种,让模型参数在一个合理区域内变化,以避免单独参数引发的拟合特性,丰富我们的统计样本,测试ATR倒数调节前后的夏普比率,得到如下结果: 在每个品种不同的参数面上,ATR头寸都带来了显著夏普比率提升,如果统计参数面性能均值,ATR负相关头寸管理方式的性能优势。各品种平均性能获得27.79%幅度提升。在小时频和日频动量系统上,这种头寸管理方法带来的性能提升,甚至要超过模型本身对于参数的优化,或者构建其他的滤网等方法,毕竟仅考虑价格一个维度,不如同时考虑价格和波动率。 三、活跃思路,继续开发新模型 当我们观看15节《程序化模型精品课》之后,不妨再动动脑筋开发更多模型,这里提供几个思路: 1、把单次出场变为多次出场(比如止盈出场+止损出场),出场对于性能帮助极大。我们尝试着统计价格波动规律,设置一个由ATR度量,或者由其他方式触发的止盈条件,能够在非常好的位置降低持仓量,止盈离场。 该逻辑能够显著提升模型收益风险比,但是会损失利润,如果条件设置过于简单刚性,则大幅度影响模型利润,带来了回撤降低难以弥补利润降低的损失。所以要多思考,除了单品种自己的波动幅度要求我们做止盈出场,还有哪些市场特征会提示我们高风险来临,应该做避险? 2,把代码里的数字变量或参数,尝试用某种方法自适应。就像一个工程器械,自动化。 我记忆最深刻的是,第7课在录制过程中,我还是保留了两个参数,中轨计算周期和止损幅度。但是在最终发布课程时,我把第一个参数消除了。消除的方法就是求出了每日的K线数量,然后乘以20这个经验参数。 消除之后,我们可以更好地观察另一个参数的性能影响和稳健性,也可以确保系统在未来尽可能降低过拟合风险,绩效的保持性更强。而且我们惊讶地发现,消除后性能没有显著下降,基本稳定。 在模型中我们都能找到各种各样的参数,他们控制模型对某段数据高度拟合,带来未来的不适应风险,而我们缺乏应对过拟合能力或者主观上,我们搜寻到一个高性能新参数(组合)后,如获至宝,不忍心放弃。与其这样,还不如在构建初期,就放弃对于不合理参数的追求。 四、尝试开发期限结构等低波动模型 如果进一步学习期货模型开发,读者们可以接触到很多收益来源的分析,比如carry策略(期限结构策略)。业界学者Fabozzi、Fuss和Kaiser(2008)在讨论商品alpha的来源的时候,提出商品买卖的基本规则:买多backward远期贴水的商品,卖空contango远期升水的商品。 动量策略是基于标的资产价格的动量效应而设计的交易策略,即预先对资产的动量因子设定过滤准则,当资产过去一段时间的收益满足过滤准则就买入或卖出相应资产的投资策略。而期限结构策略是利用基差或者近远月合约价差计算展期收益来判断市场的升贴水结构,并构建不同参数的多空组合,即买入展期收益最高的一篮子期货合约,卖出展期收益最低的一篮子期货合约,持有各商品的主力合约组合可获得期限结构的展期收益。 这种模型有一个典型特征是,它的低波动率特性,可以很好和趋势模型构成互补。存在互补关系是由于他们的策略收益源及原理导致。我们做交易,做一段可持续的资金曲线,就是在寻找这种低同源,有互补特性的资产或模型。 总而言之,希望各位《程序化模型精品课》的关注者和学习者,能够持续在模型开发上投入精力,思考模型的有效性,参数的有效性,思考量化投资的边界,找到我们作为交易者的最大优势。 作者介绍:濮元恺 2009年开始专注于程序化模型研究,随后经历股票多因子模型、商品期货时间序列模型等开发工作。 2016年加入中国量化投资学会专家委员会。 随后作为励京投资管理(北京)有限公司创始团队,发行了多只阳光化私募基金产品。 2018年撰写的《量化投资 技术分析实战》图书获得众多业内人士推荐成为畅销书,帮助很多量化投资交易者走上了起步之路。 七禾网联合量化交易高手濮元恺先生制作和推出了15节量化学习的精品视频课程,同时在视频中详细地分享了9套量化交易策略源码,带您零基础学习量化交易! 相关链接:15节精品课、9套策略源码分享,带您零基础学量化! 责任编辑:傅旭鹏 |
【免责声明】本文仅代表作者本人观点,与本网站无关。本网站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。
本网站凡是注明“来源:七禾网”的文章均为七禾网 www.7hcn.com版权所有,相关网站或媒体若要转载须经七禾网同意0571-88212938,并注明出处。若本网站相关内容涉及到其他媒体或公司的版权,请联系0571-88212938,我们将及时调整或删除。
七禾研究中心负责人:刘健伟/翁建平
电话:0571-88212938
Email:57124514@qq.com
七禾科技中心负责人:李贺/相升澳
电话:15068166275
Email:1573338006@qq.com
七禾产业中心负责人:果圆/王婷
电话:18258198313
七禾研究员:唐正璐/李烨
电话:0571-88212938
Email:7hcn@163.com
七禾财富管理中心
电话:13732204374(微信同号)
电话:18657157586(微信同号)
七禾网 | 沈良宏观 | 七禾调研 | 价值投资君 | 七禾网APP安卓&鸿蒙 | 七禾网APP苹果 | 七禾网投顾平台 | 傅海棠自媒体 | 沈良自媒体 |
© 七禾网 浙ICP备09012462号-1 浙公网安备 33010802010119号 增值电信业务经营许可证[浙B2-20110481] 广播电视节目制作经营许可证[浙字第05637号]