通过开发程序化模型来驾驭波动,将其转化成交易利润,已经成为越来越多人的选择。不论新入市的学生还是期货老手,很多人都打磨过自己的交易系统,尝试使之程序化。交易新手构建程序化模型时,往往容易出现很多障碍和误区,很多错误的思路和思考方式让我们都曾经误入歧途,浪费了时间精力,还没有得到有效的模型框架。 同样是作为交易者,从蹒跚学步到管理程序化账户,再到管理公司的基金产品,以及配置其他交易员的账户作为基金资产配置,我希望通过这篇文章贡献一点自己的体会和交易逻辑。 我相信做程序化的交易者、模型开发者,大部分都是聪明且勤奋的人,这条路虽然不好走,但是坚持走下去,在困难中总结经验,不断产生和验证假设,广开阅读和交流渠道,终会有所收获。 相关链接:15节精品课、9套策略源码分享,带您零基础学量化! 1、过度挖掘时间序列信息 对于数据的过度挖掘,会造成模型在建模阶段表现优异,但实盘最终失效。这个道理很多人都懂,但总是无法控制自己要去过度使用一段期货时间序列数据,无论是优化参数还是让模型结构过度复杂,其实都是对于数据的过度挖掘。 我们在之前撰写的资料里,和一些公开的课程中,都尽量让各位读者了解到,期货市场很大很丰富,数据有很多个维度,今天简单展开几个维度来讲解。 A、期货品种时间序列的不同周期。1分钟线、15分钟线、1小时线、日线,都蕴含着不同信息,而且有不同的噪音和信号比率,一般我们倾向于选择信号比率更高的、相对较慢的周期去构建模型,并试图寻找到各品种通用的、比较安全的参数。 B、期货品种之间的相关性和动量特性。螺纹钢和热卷,都是钢铁厂的产品,都需要铁矿石,需要焦炭来炼制。螺纹和热卷可以做类似的套利交易,也可以用一者反应另一者的波动强弱,做相关操作,这样就引入了不仅一个品种自己的时间序列,而是引入了更多信息。 C、每个品种不仅像经济学统计数据那样只有点数据,而是有多个价格可以采用。特别是开盘价,它透露了集合竞价的信息,这个信息和收盘价同样重要,还有日线结算价,它是不是也可以做一些分析?需要反复思考。最高最低价呢?他们除了可以作为突破类模型的成交点位,还可以成为衡量日内波动范围的重要参考信息。 D、全市场信息值得关注。海龟交易法则也说过全市场同向波动很大的时候,需要注意风险,我们也经历了2016年双11期货黑暗的剧烈震荡行情,能否通过全市场数据分析得到现在的风险度,然后做一些交易上的控制? E、我们应该注意到,成交量可以作为反馈交易热度的数据,特别是成交量的快速变化。由此可以想到,它不仅能够作为一个参数调节模型,还能够作为一种方式来重构数据,比如有机构投资者提到的“等量线”,这要求我们有较强的IT能力。还有持仓量,如果在一轮巨大的上涨中,多头在某个阶段总是降低持仓,说明前期的筹码发生了松动,是值得警惕的信号,也许意味着,我们需要更谨慎面对市场波动。还有成交量和持仓量的一致性关系。 F、价格的多头和空头,模型的多头和空头,其实在很多细节上是有差异的,是需要分开应对的。这造成了我们的模型可能要拆分多空构建,要给予多头空头不同参数控制模型关键组件,不要担心这是一个危险的优化,实际上这是符合行为金融学的。 2、偏爱高噪音的小周期 这也是程序化模型的陷阱,很重要的一个陷阱。在我最初学习模型构建的时候,总觉得自己要建立一套快速反馈市场波动的模型,心里想着高频交易等关键字,仿佛我们的目标就是追求速度,和市场赛跑。然而实际上并非如此,高频领域的噪音很严重,时间序列变得难以捉摸和统计得到一个稳定的特征。 在七禾网即将上线的《15节精品课、9套策略源码分享,带您零基础学量化!》中的第8课上,我们讲解了周期和噪音的关系。 相关链接:15节精品课、9套策略源码分享,带您零基础学量化! 首先我们将持续较长地、波动方向一致的价格变化称之为趋势,或者大势。相对应的,在此过程中呈现短期相反方向的就是噪音。 商品期货时间序列的趋势会突破很多个价格区间,走出波澜壮阔的行情,非常有利于方向性投机交易者获得利润。但是与此同时,小幅度震荡甚至大幅度震荡也是显著存在的,这是导致利润流失的主要原因,甚至成为很多账户持续无法盈利最终衰败的主要原因。 我们使用ER效率系数作为工具,测算了类似信噪比(SIGNAL-NOISE RATIO)的概念,结论可以这样说,在等效窗口期长度下,越大的周期趋势性越显著;越小的周期趋势性越弱,噪音越高。 这打破了很多交易者认为的小周期做程序化有优势的想法。实际上不仅小周期不能做开平仓的点位,也无法统计到其他稳定的统计量,甚至我们计算ATR平均真实波动周期,也倾向于选择日线或者小时线级别的ATR,而不用分钟线上的ATR。因为分钟线要获得稳定统计量,就要加大窗口期。而平均数作为计算工具,加大窗口期后会造成系统对于近期的数据很不敏感。 大周期虽然样本量更小,交易次数或许也降低,但是大周期的数据含金量显著高于小周期,这是需要我们权衡的。 3、以均线为主的动量策略思路单一 由于我们最早的分析工具——道氏理论使用均线做价格分析,并且均线的计算方式简单、交易方法多样,深入人心。所以很多投资者构成了强烈的先入为主思维方式,认为做趋势就是做均线,殊不知均线虽然很重要,但是我们依然可以有其他方法把握控制动量。 动量效应,简单说就是波动方向和之前一致,并且维持下去,我们做方向性交易因此可以获得盈利。我们一定要明白动量是可以分析观测、并且把握的,而反转则是更倾向于随机的。随机波动非常可怕,这是我们大部分利润被消耗的核心原因,所以做模型、选品种、选周期一定要尽可能避免随机波动,且数据量尽可能大,这样才能准确观测把握动量波动。 商品期货时间序列,特别是在小时线日线级别,动量特征显著。 期货市场的时间序列动量表达,主要是这样几种方法。 1、回溯期和持有期(最基础的动量表达方法) 2、均线、双均线、自适应均线 3、高低点价格位突破、ATR突破 4、布林带、肯特钠通道 5、多因子打分动量 我们的实盘模型思路产生,也大致是基于上述几种思路。其中我最关注的,也是我们工作中使用最多的动量模型,就是均线类模型和突破类模型. 均线类模型原理简单透彻,它衡量了价格近期均值,然后用当前价格是否高于或者低于均值,来做出信号判断。这里可以在均线的计算方面做一些文章,比如说使用等权计算的MA或者使用权重随时间变化的WMA和EMA,还可以使用自适应变化的AMA。另一种方案是在规则方面做文章,使用单均线规则、使用双均线规则、或者使用多重均线规则,甚至构建出震荡规则或打分规则。 突破类模型,首先要选择一个基准,如使用今日开盘价做基准,或者使用昨日收盘价做基准,或者使用近期均价做基准。然后制定一个突破位置,可以是ATR位置,也可以是近期高低点。价格延续趋势后突破新的价格位,这就是突破类模型的赢利点。技术较好的交易者可以构建短期,甚至日内突破交易模型,用开盘价做基准,上下ATR突破加其他精细迭代,本教程(《15节精品课、9套策略源码分享,带您零基础学量化!》)有相关内容。 布林带、肯特钠通道类策略相对中长期一些,构建通道,然后依然是突破类交易思路。 最后一种是打分模型。采用很多动量因子,通过打分法,对各品种的强弱度评分,然后交易。这种模式可能拟合度较低,但是鲁棒性强,不容易失效,而且可以并行考虑很多因素的影响,值得持续探索。 虽然也有很多反动量思路,但是不仅从市场特征检测,更是从交易者心态来分析,动量都非常重要。动量能够被驾驭,而且能够被解释。虽然做动量类交易比较折磨人,但是我们可看到市场低潮和高潮,能够妥善应对自己的盈亏,这是坚持交易的重要支撑。所以一定要活学活用,了解更多的趋势或者说动量的表达方式,让模型更加不同源。 4、将少数特性当做稳定统计量 这也是程序化模型中要注意不能犯的错误,但是很多交易者经常犯。因为在于,我们认为自己使用了量化工具,自然地就是构造统计类模型,已经避免了像手工交易者一样陷入小样本的认知偏差。 实际上,如果我们统计到的特征较少,并且有效应对这些较少特征,产生了很多亏损的降低和盈利的增加,这一样是一种过度使用数据和认知偏差。 那么哪些行为是典型的短时间或者小样本特征?哪些行为会造成对波动的不完整认知?举几个例子。 A、在过去10年的数据中,发现了不足10个时间点上有显著的风险,并剔除了风险。或者发现了10个机会点,并有效驾驭机会开仓获利。这需要我们再斟酌一下,是否模型在少数高风险时间点上产生了效果,毕竟10年有2000多个交易日,这些现象如果不是频繁发生,以后模型依然能保持较好绩效,并保持对于风险的控制?或者对于这类机会的把握? B、某些较特殊的参数组合,构建出的绩效胜率超过50%甚至60%,但是在更大的参数面上,平均胜率只有40%。说明这些特殊的参数组合,或者略过,或者使用其他方式,回避了很多应该产生交易的位置,仅抓住了最优质的交易机会并产生了利润。这种较少的统计特征,难以认为是稳定的统计量。 C、我们用一段很冗长的代码,识别出了某种K线组合形态,并且不断修饰代码使之更加精准。这也是典型的较为危险的方法,特别是涉及到形态识别,而且是用非通用方法,强行去拟合出历史上的K线走势,试图在实盘交易中也发挥功效。我自己建模过程中也走入过这一误区,但是后来发现数量并不多的统计样本造成了我们的条件在样本外无法维持绩效。 既然少数统计特征不稳定,那么什么样的特征稳定?我们认为,一个特征必须在大多数活跃品种上,大致8年以上的测试周期中,都出现多次,才能够说它可以被驾驭,并且驾驭的方法一定是非常简单有效的程序化语句,而非是冗长的语句。一定要思考如何让自己的模型又简单又有效,可以为了简单而失去一些性能,因为你换回了更宝贵的稳健性。 参数优化的问题在今天文章里就不提了,这个问题太多人分享过自己的经验和教训,我们很多时候都倾向于不优化参数,而是构建模型的不同部分。程序化交易,不仅是打造一个交易信号的发生器,这仅是第一步,还要打造品种选择模型,打造市场风控模型,才能将不同模块结合起来,站立于市场上。所以当你看到还有很多工作没做的时候,就发现单纯地在时间序列上做文章,的确是一件很无聊的事情,要学会拓展自己。 5、缺乏对于收益的妥善归因 CTA程序化模型到底赚了哪部分钱,是很多人都想知道的。我们可以大致认为中长期趋势交易类模型获取的是波动率升高带来的反应过度收益。并且是有一定漂移的,相对于之前的走势滞后的出现趋势,模型才能够把握的波动率,而不是短时间内大幅度箱体震荡,这虽然也是波动率,但是做多这种波动率不会有任何收益。 日内交易策略常用的一种方法,是在当日开盘价的基础上加上一个区间宽度值得到上突破价,减去区间宽度值得到下突破价。这就是区间突破策略,即当价格突破某一价位时,采取做多做法,当价格跌破某一价位时,采取做空做法。它要求价格在突破开盘价加减某个区间,模型开仓后,继续延这个方向波动,才有可能获利。 还有一类反趋势策略,可以称作均值回复策略。相比较趋势追踪策略,CTA均值回复策略的主要特点是捕捉小机会,先把菜捡到篮子里,而且胜率较高,但单笔交易的收益率并不高。它交易的核心在于如何寻找一对在历史上走势基本一致而且又长期稳定关系的资产。当然如果市场出现极端行情,回复性变成了大单边趋势,则选择止损或者直接进行趋势交易。 总体来看,CTA是做多波动率的一种策略,它不预测趋势,而是只跟随趋势,市场上涨时做多,市场下跌时做空。因此,该策略比较适合趋势较明显的市场。但是也有一些行业高手认为,高波动率并不适合获利,一定要高的漂移率,也就是逐渐形成一个显著的方向性波动,程序化模型才能获利。我非常支持这种观点,刚才也说过了,短期剧烈震荡也是高波动,难以获利,大家要一起承受亏损。而如果在波动率低的时候,出现了一次延续型强的同向价格运行,这样的环境才能够真正获利。 在单时间序列上,部署一个趋势交易模型,这种收益我个人更愿意归结为商品期货的Beta收益,是一种应该获得的,但是波动较高的收益。我们使用ATR通道、使用均线、使用海龟交易法则,都是获取这类收益。 还有一类收益叫做期限结构收益。期货的合约和合约之间有差价,利用同一个品种不同合约之间的价格关系来赚钱就是期限结构的本质,也是量化CTA重要的收益来源之一。我个人更愿意将此认为是Alpha收益,是较为稀缺的,并且低波动率环境下的收益。 6、更加理性并有把握地度过回撤期 由于我们在初学程序化模型时,往往难以将模型部署在很多个品种上,也难以构造很多不同类型的模型,造成了同源性强、波动率获取的来源单一。所以我们容易遇到回撤,并且一旦遇到就是较长时间的回撤期。 当波动率低于某个临界点时,大部分模型(以及参数配置方法)都无法盈利。当波动率过小时,方向的维持周期会缩减,方向的维持力度也会缩减,时间序列上捕捉动量和反转的模型基本上都无法盈利。这对于商品期货模型尤为适用,比如说在慢慢长阴下跌阶段,有时你会发现空头模型(或组合模型的空头部分)竟然也没有盈利(或者盈利微弱),这是令人十分尴尬的,也是很多交易者忽略的,并非商品期货能做空,空头就一定能够盈利。 比如说2017年上半年橡胶出现很大幅度的下跌调整时,我们发现空头盈利不多,没能妥善对冲多头亏损。而我们在实盘中往往希望,当价格处于阶段性高位,一旦开始下跌时,我们的空头部分能够为模型甚至是产品净值带来强有力的提升,实际上这很困难。如果一旦净值目标设计失误,导致仓位设计失误,可能面临继续净值亏损。 每年总有几个阶段是这样,在中国市场,时间点春节附近,由于流动性的减弱以及长假影响(部分头寸要平仓),价格波动率都很低。再比如经过了一个大幅度波动之后,市场也会走向低波动率,比如牛市后的漫漫长熊,以及期货市场上主要品种释放了宽幅波动后,价格开始趋于平稳。 波动率不足时会回撤,但是在市场资金充裕的情况下,模型绩效表现又有可能超预期,超回测绩效。所以偏差是大概率会出现的,我们在预估模型绩效的时候,一定不要仅看回测特别是多品种组合后的效果(虽然这些资金曲线都非常好看),而是要考虑单品种在某个参数区间可能达到的平均绩效,以及组合没有带来回撤相抵的情况下的绩效,也就是说要计算出最坏的情况。 所以心态一定要稳定,要知道模型在历史上也遇到过类似难题,所以我们的反应应该是度过这段时间,等待净值回升,甚至净值的下阶段大幅度跃升。 回撤并不可怕,可怕的是我们轻敌了。在向投资人描述业绩的时候,我们总喜欢放大优势,掩盖劣势。在向团队汇报新模型绩效时,我们也有类似问题。这会造成资金风险偏好错配,头寸过大配置,或者双方彼此对于困难估计不足,为之后埋下隐患。其实这个时候你再看一眼模型的最大回撤,也许还没有达到历史最大回撤。可想而知如果达到最大回撤会引发更大的恐慌。 我在撰写《量化投资技术分析实战》这本书时,写到了这样一段话,有价值分享给各位读者共勉:放大对于困难的估计,获得一个健康的绩效预期,逐步承认系统不是在所有市场条件下都有效(不完美的模型),进而承认自己的能力有限(不完美的自己),是赚钱的第一步。获得这种顿悟,和开发一套好的模型同样重要。获得这种能力,非常依赖长期实盘经验和对绩效可信度的把握,更依赖强大的内心和自制力。 我回忆自己学习过程中,也有一两年是极其艰难的,看不到盈利,甚至看不到方向。后来逐渐增加测试,增加假设,增加策略思路来源,获得了一些提升,在此过程中自己创立的“量化投资训练营”公众号,不仅是对外交流的一扇窗,也是鼓励前进的动力,让我知道还有很多朋友们在关注着,在思考着。直到2016年2017年,策略思路逐渐清晰,也产生了较为稳定的收益。 在2018年入秋时点,这个期货行情踌躇不前的阶段,应七禾网邀请撰写此文,希望各位读者们构建出自己满意的模型,不断体会市场波动的真谛,更长久地交易下去,用程序化交易创造盈利,充实自己的工作和生活。 作者介绍:濮元恺,2009年开始专注于程序化模型研究,随后经历股票多因子模型、商品期货时间序列模型等开发工作,2016年加入中国量化投资学会专家委员会。随后作为励京投资管理(北京)有限公司创始团队,发行了多只阳光化私募基金产品。2018年撰写的《量化投资技术分析实战》图书获得众多业内人士推荐成为畅销书,帮助很多量化投资交易者走上了起步之路。 相关链接: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号]