技术分析
关于量化交易的一些感悟
you和me 2022-02-18 15:54 1961次浏览
全民炼股争霸赛-全民分赛场
cofool小编 进行中 29452人参赛

    作者:人称仲哥        来源:知乎


      本来没有打算写这篇文章,在写股票短期动量因子回测一文时,想写点量化经验和感悟作为结尾,没想到文思如尿崩,于是干脆另开炉灶。

      我接触量化不算早,大概从2017年开始,那时候量化交易的关注度已经上来了。

      2015年之前的量化交易者应该是用文华财经、交易开拓者等商业软件,这些软件自带数据,内嵌的语言也不难,有点类似于Excel公式或者VBA,这些软件至今仍有不少程序化交易者在使用。

      基于技术分析的趋势跟踪系统在西方发展了几十年,已有大量理论和实证。这种策略大多是机械交易系统,很容易程序化。

      早期的量化交易主要做期货,因为期货的交易接口外接容易,不像股票存在一些不可描述的障碍,此外大A股T+1交易、停牌等影响流动性的机制也导致了这种择时策略在股票市场上无法广泛应用。

      后来,python这门语言在数据分析和人工智能上开始热起来,基于python的量化模块也如雨后春笋,量化交易在业余投资者里的热度逐渐提升。

                                python:要你命3000(来源谷歌搜索,侵权删)

      当时线上回测系统Quantopian的国内版各种宽也开始遍地开花,吸引了不少业务爱好者。我最早也是从这些线上回测平台开始入门的,后面发现这些平台在批量回测,参数优化上有诸多不便,并且回测速度慢,再加上不满足只做API Caller(俗称API调用侠),于是开始自学python,不久接触到了vnpy,后来这个框架就成为了主要的研究和交易工具。

      专业赛道上,随着国内量化的兴起,不少高学历本土派以及有国外从业经验的海龟们开始转战国内市场,量化私募开始逐渐兴起。


关于金融市场和量化

      要谈量化,其实还是要讲一下金融市场。

      很早以前,经济学家抛出了随机漫步和有效市场假说,他们认为市场参与者都是理性的,价格已经反应了各种情况,市场价格就是一个随机游走的过程,和投硬币差不多,没有什么规律和信号,所以投资者只要吃饭睡觉玩游戏就好了,别浪费时间了。

      当然,资产管理行业一直存在并且持续带来超额收益这个实践证明了有效市场假说是不完全对的。目前多数人认同强有效市场是不可能的,行为金融学和群体心理学认为市场参与者是不理性的。

      市场有效性和市场的发达程度正相关,市场越发达就越有效,想获取超额收益就越困难。但是市场不可能完全有效,即使是美国这样高度发达的市场,也存在超额收益,只是确实不易,所以美国很多量化机构凭借着低廉的资金疯狂加杠杆,用杠杆的方式提升绝对超额收益。

      目前中国市场的有效性还是低于美国,明汯老板说中国的投资人是幸福的,从有效市场这个理论来说不无道理,中国公募基金的历史业绩也证明了这点。

      现在还有一种理论认为市场是分形和混沌的。混沌理论里面有个著名的蝴蝶效应,我以前很疑惑,为什么蝴蝶会引发龙卷风。后来特意去看了混沌理论后才知道这是一种误解。请看维基百科的解释:

蝴蝶效应(英语:Butterfly effect)是指在一个动态系统中,初始条件的微小变化,将能带动整个系统长期且巨大的链式反应,是一种混沌的现象。

      这句话的重点是初始值的轻微改变造成的长期链式影响是非常巨大的,也就是不论是蝴蝶扇动翅膀,还是蚂蚁伸了伸腿,这些都会造成初始值发生轻微改变,从而使长期的天气系统发生翻天覆地的改变。并不是说因为蝴蝶扇动了翅膀才引起了龙卷风。

      一个双杆摆动画呈现混沌行为。 从开始略微不同的初始条件摆杆将导致一个完全不同的轨迹。双杆摆是具有混沌方案最简单的动力系统之一。(来源:维基百科)

      以天气预报这种一级混沌系统举例,越短期的天气预报越准确,越长期越不准确。就是因为初始值轻微变化,短期的影响比较小,但是长期链式影响越来越大。换句话说,长期准确的天气预报是不可能的。

      天气预报只是一级混沌系统,一级混沌是指参与者的行为对系统运行没有影响,比如天气预报员的预报行为对天气不会有影响。而投资交易市场是属于二级混沌系统,即参与者对系统的运行会产生影响。

      二级混沌系统更加复杂,因为混沌理论认为,初始值的轻微改变在长期会带来巨大的影响,所以假设作为散户的你只买卖了100股股票,如果有平行宇宙的话,时间拉长了看,有这个买卖行为的宇宙市场的走势和没有这个行为的走势会天差地别。

      类比天气预报,混沌理论认为金融市场的长期预测更不可能。短期预测有相对可能,这可以解释为什么高频交易,T+0交易可以实现超高稳定盈利,而中低频的交易则很难保证盈利的稳定性。

      既然只有短期预测相对可行,那能否只做短期交易呢?

      短期交易有三个特点:交易成本大,收益不高(价格运动在短期内幅度有限),流动性不足

      期限越短,这三个特点越明显。因为投资是二级混沌,每个投资者的短期交易行为对初始值会造成巨大改变,而不仅仅是轻微改变。所以综合下来,金融市场的短期预测也很困难。

      因此,混沌理论也可以解释,为什么T+0或高频交易的收益和市场活跃度呈现明显正相关的关系。因为当市场参与者众多的时候,高频交易者的交易行为对整个混沌系统初始值的改变相对而言比较轻微,因此高频交易者预测信号的有效性就得到提升。

      总结几个观点:金融市场是高度随机、高度复杂的。市场的预测几乎是一件不可能的事情。市场的有效程度和自身的发达程度有关,大部分金融市场起码都是弱有效市场,赚取超额收益理论上是可行的,但实践并不容易。


关于量化研究交易能解决的问题

      量化相对主观而言,能解决的问题主要有两点:海量信息的加工和处理能力、交易执行的纪律性

      相比主观而言,量化在交易之前一般要先进行数量化分析,不管什么样的策略,对历史数据的分析都必不可少。为了让分析结果具备统计意义,数据量不能太少。完成后很多人还会做样本外检验。一整套工作下来,处理的信息可能是海量的,人脑无法完成这种任务。

      但是根据上一节对金融市场的理解,掌握了海量信息的量化研究并不一定比掌握信息较少的主观研究更具有优势海量信息一是容易失去重点,二是如果不注意避坑的话,极有可能陷入过度拟合。这会让研究者在错误的研究基础上产生了虚幻的安全感,这比信息较少还致命。

      另外,主观交易者在决策过程中可能参考了其它维度的信息,虽然量化在量价方面的信息量很大,但是里面有不少是重复信息。考虑信息维度的话,整体信息量的优势不见得比主观大。

      总而言之,如果你认为量化可以让你掌握更多的信息,并且认为掌握更多的信息能让你具备更大的优势,那么量化研究交易可以解决你的问题。

      至于交易执行的纪律性问题,量化其实只解决了一半,因为即使是全自动的程序化交易,你仍然可以随时启动或停止策略,或是临时调整策略参数。不过相比主观交易而言,对于一些反人性的交易,程序化确实可以有效执行。


      下面再说几个误区:

  • 只要具备数理背景、IT能力就完全可以做好量化。这些是做好量化的充分非必要条件,运气也很重要。此外,假如有这方面优势,也可以考虑学术研究、基础研究、互联网公司等,你们选择可以很多。
  • 量化交易门槛高,有优势。量化相对主观的门槛确实更高,但是在投资交易的过程中,大家仍然在同一个赛道上,门槛并没有把其它竞争者从市场排除掉。而且技术门槛在高度复杂的市场中未必有什么优势。
  • 从事量化有职业光环。这种幻想更要尽早抛弃。不论自营还是资产管理,唯一的光环就是要能赚钱,其它全部是虚幻的。


关于CTA策略

      说到量化策略,CTA策略是避不开的,这也是多数散户相对好切入量化的策略。期货本身自带杠杆,一般是10倍以内,这使得小资金也可以尝试。同时因为期货的程序化接口特别友好,交易框架也多,所以CTA策略就成为了散户研究量化的首选。

      CTA策略从名字定义上是指商品投资顾问策略,一般是交易商品期货或股指期货。策略可以做趋势跟踪、均值回归或套利。市场的主流还是趋势跟踪,因此说CTA策略,通常就是指期货趋势跟踪策略。

      趋势跟踪策略从逻辑来讲是靠谱的,并且长期靠谱,只是收益多少和等待时间能不能熬住的问题。市场无非是震荡或趋势,一般是震荡更多。未来一定是在这两种行情中来回切换,只是什么时候切换无法得知。

      一个品种不可能永远走趋势也不可能永远震荡(但是可能会震荡很久),时间久了,大行情必定会出现。另外,金融市场的收益分布普遍认同的是尖峰厚尾,即小概率事件不难发生。直白一点就是大行情还是比较容易出现。

      所以,趋势跟踪的原理就是天上一定会掉馅饼并且概率不算特别小,掉的时候会掉很多馅饼。但是什么时候掉不好说,你要保证在馅饼掉下来之前别饿死,开始掉馅饼了就吃饱囤好,然后继续等待下一次。如果碰到长时间不掉馅饼,所有人都很难熬,但是如果熬过去了,得到的馅饼往往也比较大。

      趋势跟踪是一种动量策略、做多波动的策略,也就是俗话说的追涨杀跌,这种策略不预测行情,它在行情的必经之路上面候着,有点像守株待兔。

      有的策略会加信号过滤,这样可能会过滤掉一些假信号,减少震荡时期的亏损,但是有得必有失,过滤信号有可能会错过一轮真正的大行情。有的策略会在过滤信号的同时增加一个二次入场机制,防止错失行情,但是这也没办法完美解决假信号的问题,因为二次入场信号也可能是个假信号。

      一般来说,窄幅震荡的行情比较容易过滤,即使不过滤,单次止损金额也不大;宽幅震荡比较麻烦,信号放太窄容易触发,信号放太宽也有可能完美触碰,并且单次止损金额会比较大。宽幅震荡行情是趋势跟踪策略的噩梦,全品种宽幅震荡,那就是噩梦中的噩梦了。

      平时没行情的时候,趋势跟踪经常会面临止损,做得不好的策略会一直小亏,做得好的策略不怎么亏或亏得少,但是当大行情来的时候会有较大的盈利,可以覆盖掉过往的亏损。表现出低胜率,高盈亏比、不惧怕黑天鹅的特点。

      来看一下朝阳永续的CTA指数的绩效表现,下面的引用是官方的介绍。

朝阳永续联合市场中31家CTA类或以CTA策略为主且资产管理规模超5亿的私募基金管理人,共同打造了中国私募基金系列指数之五亿私募CTA指数。

      这个指数走势图代表了国内CTA策略较高水平,因为入选机构的专业水平较高。从净值曲线也可看出。2015年-2016年底有一波行情,2017年-2019年底多数商品处于震荡期,2019年底至今又走出了一波牛市,震荡期指数的回撤不算大,属于没行情期间不怎么亏钱的情况。

                                            朝阳永续5亿私募cta指数

      表面上看策略的绝对收益不大,但是据我了解,一般资管机构的仓位都不高,杠杆水平在1-2倍左右,如果可以容忍更大回撤的话,还有加大杠杆的空间。

      因为资管对净值波动的要求和自营是完全不同的,所以资管账户通常会更保守。对于个人自营而言,如果你的表现能够接近这个指数的话,完全可以再加杠杆,以追逐更高的绝对收益。现在流行的MOM模式,其实也是利用了资管软件分仓功能,间接实现了加杠杆的操作。

      CTA策略对资金量小的散户而言,确实比较友好,但是我知乎某个回答里面有提过,其实资金量对策略收益是有影响的,因为资金量太小能操作的合约就相对有限,通过多品种多策略多合约来降低净值波动的方式对小资金账户就不可行。

      很多单品种策略的绩效表现可能不会太神奇,但是通过多样化的方式,整个投资组合也能取得不俗的表现。

      编程能力一般的可以用TB等商业软件,基本都能实现回测、参数优化、交易执行的一整套工作。编程能力再强一点的可以选择vnpy。对速度或者系统架构有更高要求的自己写系统也可以,但是我觉得没这个必要。

      趋势跟踪策略多数是中低频策略,对技术要求不高,赚钱与否还是在于策略本身,IT技术的边际影响是递减的。因此如果技术特别强的话可以做其他事情,中低频交易没必要花时间重构交易执行系统。

      关于CTA策略的周期选择,我认为不要选择特别高频率的。频率超过1h的不要轻易尝试了,一般基于技术指标类的趋势跟踪系统在中高频上面的信号有效性都很一般,大部分是噪音,收益相对频率的提升是递减的,与此同时,交易成本的提升却是递增的。

      很多人在回测的时候低估了交易滑点,一般会把滑点设为1个tick。以1h的周期为例,1个tick的滑点一般都不够,我之前统计过一两个账户,印象中滑点好像是在2个tick附近。交易滑点有可能会达到手续费的几倍之多。

      当你的策略是日线级别的时候,你的滑点不一定会增大多少,但是交易次数少了很多,整体交易成本低了很多。

      通常随便一个趋势跟踪系统,均线也好通道也罢,在中低频的数据里,只要用参数遍历大法,尚能拟合出可以接受的净值曲线(前提是回测区间起码需要有一个趋势行情),但是频率超过1h的策略,往往设置不同的交易成本会带来大相径庭的净值曲线,这些策略即使你遍历了很多参数组,得到的多数也是稳定亏损的曲线(稳定亏交易成本)。

      所以对于刚入门量化的散户,交易频率不要太高,还是推荐日线为主。中低频的历史回测结果对未来的适用性虽然不确定,但是不确定能否赚钱起码比确定亏损来的要好。万一开始跑实盘的时候来一波行情,即使策略一般,赚钱也是大概率事件。

      行情来了双均线10-20的策略都要飞起。当然趋势跟踪策略好不好还是看没行情的时候亏得怎么样。


关于股票的量化策略

      (评论区有些朋友指出我对股票量化理解有偏差,确实,我自己并没有从事股票交易,所以是一知半解,为避免误导其他朋友,大家股票方面的内容随便看看就好)

          个最大市场。股票量化以多因子策略为主。近些年,随着知名量化私募资金量的扩大,期货CTA中低频策略虽然资金容量不算低,但是还是赶不上资金的增长速度,所以这些私募也开始转战股票策略。

      因子听上去让人感觉有些困惑,其实顾名思义就是原因的意思,即某个东西是影响股票收益的原因。比如市值因子,就是说股票市值的大小对股票的未来收益有影响,动量因子,即股票最近的涨跌情况对未来收益有影响,其它什么行业因子、风格因子以此类推。

      因为股票在每个因子下面都有风险暴露,所以整个投资组合也都是有多个因子的风险暴露。但是可以通过金融工具对冲掉某些因子的暴露,做中性处理。比如,投资组合包含了很多大盘股,你认为市值大的股票未来会有不错的收益,但是中国的大盘股有不少是银行股,你对银行这个行业信心不足,不太想承担这里面的行业风险,而只希望保留市值因子。

      如果条件允许你做空银行ETF的话,你就等于部分对冲了里面的行业风险。实际上受限于政策和工具,有些因子的中性化并不好实现。当然你也可以简单粗暴的把银行股都去掉,保留非银行大盘股,这也是中性化处理的一种方式。

      不同于期货CTA策略以择时为主,股票量化策略更多的是选股策略,通过多种因子选出股票,然后定期或不定期做调仓。因子有的会暴露多个,有的会对一些不想要的因子做中性处理。

      股票量化策略对资金量要求比较大。股票没有杠杆,如果通过量化把净值波动抑制的话,收益也相应被拉低了。对资金量特别大的机构而言,平滑净值波动,扩大资金容量特别有意义。但是对散户来说,做股票量化几乎没有太大的意义,票太分散,还不如直接买基金。

      股票量化我几乎没涉猎,只知道一个模糊的大概。


关于期权的波动率策略、类做市策略以及套利类交易

      期权相对其它投资品种而言,知识点比较多,如果完全没有交易过期权或不具备期权基础知识的人,下面的内容可能看不太懂,这个没有关系,可以跳过不看。

      我是从2019年开始接触期权,接触时间不算长,目前还在做主观的期权交易,主要是交易50和300ETF期权,可以算是单品种多策略的交易。

      一般时候,较少裸买和裸卖,以买卖结合为主,卖期权的时候,风控主要是靠卖Call买Put或卖Put买Call的方式,戴一个低成本的保护套。

      IV高的时候偏做卖方赚取IV下降的收益;IV在历史均值附近时,主做一些方向性交易并且部分卖期权来降低买权成本;IV很低的时候基本不怎么卖期权,但是也比较少裸买或双买,IV低时常用虚值的牛差,轻微留正delta、正gamma、正vega敞口。

      事件驱动前的升波双买加刮gamma基本不做,事件落地后的降波看IV拉升情况做一点。

方向性上,对于指数ETF期权,基本不做空,最多就是用低成本或零成本的方式买一些深虚的Put做保护。

      期权的波动率策略主要有两个:偏度Skew和期限结构Term structure

      做波动率策略除了需要关注delta、gamma和vega之外,还需要关注一些二阶希腊值,因为波动率套利的交易我做得少,只有特别明显的机会才做。所以这些二阶希腊值我一般都记不住。

      但是不管有没有做波动率交易,几个比较关键的二阶希腊值还是要知道的,你可以不知道这些希腊值叫什么,但是要知道因为这些希腊值的存在,会造成下面几种情况,因为这几种情况是发生在时间维度和波动率维度尚,平常看T型报价是体会不到的,所以我特意拿出来说一下:

  • 虚值期权的delta随着时间流逝越来越趋于0,实值期权则越来越趋于1,虚值期权的delta随着IV的增大会变大,随IV减小而变小。
  • 虚值期权和实值期权的gamma随时间流逝变小,平值期权随时间流逝变大,虚值期权的gamma随着IV增大而变大,随IV减小而变小。
  • 所有期权的vega都会随时间流逝变小,虚值期权的vega随着IV增大而变大,随IV减小而变小。

      偏度套利:做同一个月份不同行权价的IV套利,主要做法是如果25%delta的otm期权相对50%的atm期权IV相差超过历史阈值的时候,就买atm卖otm并定期或不定期的进行delta中性处理。有的做得更精细一点的还会对不同到期日做标准化处理,常用的skew策略是比例价差策略。

      期限结构套利:做不同月份的IV套利,主要做法就是看近月期权的IV相比远月期权的IV是否超过历史阈值,超过就相应的做买近卖远或者卖近买远并且定期或不定期进行delta中性处理。一般规律是出行情了近月的IV涨得比较狠,没行情了近月的IV跌的比较狠,简而言之就是近月IV反应更加灵敏一些,常用的期限结构套利主要是日历价差策略。

      虽然这两种波动率套利策略看上去不难,但是实际上影响盈亏的因素很多。比如在套取两个期权的IV差的时候,其他的风险敞口(比如整体的vega、gamma敞口)是没办法完全中性化处理的。

      在持仓的过程中始终存在着其他风险暴露,有可能你在IV差上面的收益会被其他风险敞口吃掉了。所以最终即使IV差如你预期回归了,但是你也不一定能赚到钱。这是和其他的套利交易不一样的地方。有经验的交易员,一般是看IV差的同时也会结合整体IV、标的行情,进行分批入场和出场。

      做期权波动率交易,量化研究肯定是要的,起码你需要构建历史数据库,还需要区分出每个交易日的实值、平值和虚值期权,并计算好对应的希腊值和IV值。工作量还是比较大的。

      有了这些数据库之后,一旦确定好交易策略,手动交易也是可以的,当然专业的机构肯定是直接用程序下单的。通常来说,波动率交易策略是整体IV越高,行情波动越大,交易利润就越大。IV特别低的时候,所有的期权权利金都很低,套利空间自然小很多。

      vnpy的option master模块有一个类做市的电子眼功能,但是波动率套利交易是没有现成的模块可以使用。如果真的有兴趣的话,通过改写option master、portfolio_strategy、spread_trading这三个模块应该都可能可行。具体的话,还是要去阅读源码,看看哪个模块改起来最方便。这块因为我觉得利润比较低(虽然风险也比较低),所以一直都没有太高的兴趣。

      说到期权的类做市套利交易,其实就是纠正市场的短时间定价错误,一般在交易特别狂热、有些人不顾一切狂扫价格或者干脆下错单,就会出现了价格有利可图的情况。

      因为期权有不同行权日和行权价,单纯看权利金无法知道这个价格是否合理,就像看股票的价格无法知道是否合理一样。期权的IV就是标准化的价格,不同行权价不同月份的IV构成了一张波动率曲面。

      这个波动率曲面有一定的规律,它的规律是由一些无风险或有风险的套利交易维系的。因此一旦出现明显不符合规律的价格时,这个期权的IV就会在曲面上形成一个异常的凸点或凹点,而类做市的系统就是用来抓取这些异常机会的。

      从上面的描述可以知道,类做市的核心技术就是要有较强的理论定价能力和强大的IT技术。很抱歉这些都和散户都没有太大关系,所以后会有期byebye。虽然vnpy的电子眼有这个功能,但是我个人觉得散户不好应用。

                            波动率曲面。来源谷歌图片,侵权删

      另外一些量化交易策略是套利交易。

      比如期权的无风险PCP套利,以前流行的期货期现套利。无风险套利我觉得不用尝试了,因为基本上机构们都已经套得差不多了,没什么机会可以留给散户。

      当你发现某个价格有不错的无风险套利空间的时,一般要么是根本没办法套,要么是可能哪些因素你没考虑到,要么是算上隐形成本(机会成本),其实也没有很大意义。

      而一些有风险的统计类套利交易,存在赚小亏大的情况,并且因为赚钱多数是小笔盈利的累积,如果资金量不大或杠杆不高的话,这个绝对收益难以令人满意的,所以对于此类交易,散户也可以跳过。


关于过度拟合

      量化交易有不少陷阱在里面,比较为大家所熟知的主要有:未来函数、幸存者偏差、过度拟合、交易成本、流动性。

      未来函数比较容易解决,事件式回测一般不容易出现,向量式回测比较容易出现,但是只要仔细检查,一般都能发现逻辑错误。

      交易成本,一般来说手续费是可以准确估算的,但交易滑点相对不好预估,而且不同策略滑点模型是不一样的,如果估算不好就会出现高估或低估的情况,不过一般还是低估的情况更多一些。

      流动性也是回测的一个问题,比如有的信号是在涨跌停的位置根本无法成交,有的合约流动性比较差,实盘中较难成交。还有人用非逐笔成交的数据(快照tick)去回测高频交易,回测都按可以成交计算,这显然很不合理。因为很多高频交易的核心是在于你速度够不够快,能不能吃到单子。

      幸存者偏差和过度拟合是比较阴险的,但是相对过度拟合来说,幸存者偏差就像一个天真灿烂的儿童一样。过度拟合经常在不知不觉中毒害你。过度拟合的害处主要是精确描绘了过去,但是未来很难重复这么精确的过去,所以策略就很大概率会失效。

      一旦开始做量化研究,就必然存在拟合的问题,只是程度多少而已。量化策略的研究本身就是拟合过去历史数据的过程。

      欠拟合的危害比较小,因为欠拟合的话,回测结果可能不会令人满意,因此也不会上实盘。但是要上实盘,策略必定是在历史数据里面表现较好的,这个时候过度拟合就悄悄的渗入了,过度拟合会让人误以为找到了圣杯。

      可以说过度拟合到目前为止仍然是量化研究的最大陷阱。完美的解决方法是没有的,目前常见的思路是下面几个:

      降低未来的预期。

      不要根据回测成果去期待未来有对应的收益,尤其是回测结果越漂亮越应该有清醒的认识。历史会重复的是一些宽泛的东西,比如人性,但是反应到具体的价格图表上,简单的形态或模式的重复其实是比较少的。

      策略不要加入过多的条件和参数。

      天文学家托勒密用了均轮本轮来拟合天体运动轨迹,只要轮的数量多了,就可以拟合出复杂的轨迹了。同理,规则型策略只要参数够多了,也可以准确拟合出历史的轨迹,至于深度学习神经网络这种非规则性的黑箱策略,精确拟合历史数据是易如反掌的事情。

      但是预测天体运动轨迹和预测市场走势完全是两码事,千万别这么做。

      数据尽可能多一些,尽可能包含不同的行情。

      可以用拉长回测期间、增加测试品种等方式,但是弊端是可能花费很大功夫也只能找到一个平庸的策略。

      普遍适用性和优秀的历史表现不好兼得。其实这仍然是欠拟合和过度拟合的问题,两者之间的平衡点并不好把握。

      如果历史数据已经包含了很多种市场行情或跑了很多品种,但是你的策略表现似乎都非常完美,能够适应各种市场环境,那一定要小心,这种情况很可能是用了过于复杂的参数和条件,开启强力挖掘数据的结果,过度拟合的概率非常大,一般很少有哪种策略可以通吃天下的。

      谨慎看待样本外测试。

      样本外测试用来检验策略是否过度拟合不一定靠谱。因为样本外的数据通常比训练数据少,对于金融市场这种变幻多端的数据来说,如果样本外数据和训练数据相差特别大的话(这种情况太常见了),很容易发生误判。

      比如一些需要较长时间才能看出是否有盈利能力的策略,如果样本外的时间太短,很容易一棍子打死本来可以的策略。

      所以做投资研究,不能高估样本外测试的作用,样本外测试比较有用的是在人脸识别、语音识别这些领域。

      总之,想要避免过度拟合就有可能因为欠拟合而研发不出好的策略,研发出好策略就一定有过度拟合的风险。

      策略研发的核心还是在于思考你的策略能够盈利的逻辑,强行数据挖掘在投资领域绝对不靠谱。


关于回测结果

      看回测结果,无非就是想知道这策略行还是不行。

      先看下回测的样本量,如果是中低频的策略,样本量不太充足,统计意义不显著,策略的结果很难说明它未来到底行还是不行。

      如果是样本量比较充足的中高频交易,策略表现不好的结果比策略表现好的结果更加具有说服力。如果发现它表现不好,在未来很有可能也表现不好。但是如果表现好,并且排除了交易成本方面的偏差后,未来也未必会有类似良好的表现,但是已经可以进入不妨尝试一下的阶段了。

      至于高频交易,一般人还是不要在这上面花心思了,普通tick快照的回测结果没有任何意义。

      回测结果要结合策略的盈亏逻辑看,否则不管结果如何还是无法判断策略到底可行不可行。每个策略都有它适用的市场行情也有它不适用的市场行情,道理就像飞机天上跑、轮船水里游一样。

      在研发策略的时候得知道这个策略在什么样的行情下会盈利,在什么样的行情下会亏损,然后再看看做回测的历史数据包含了什么样的行情,这种行情在未来是否有重现的可能性。

      举例来说,对于趋势跟踪策略,我们知道只要历史数据中间有一波行情,震荡时间不要太久,一般它的表现都不会太差。如果你的回测数据没有包含趋势行情的话,回测结果肯定是不行的,但是你没办法断定这个策略未来不行。反之,如果你的历史数据就是只有一波完整的大牛市,那真的是猫狗都要飞上天了,未来碰到震荡了再优秀的策略也只能吃土。

      如果你能明确知道趋势跟踪的盈亏逻辑后,再看一下回测区间的历史数据包含了什么行情,就能对回测结果有一个清晰的判断了。

      其实说到底,还是和上一节说的一样,好好思考交易策略的盈亏逻辑,再结合历史数据来看待回测结果。


关于机器学习

      机器学习在金融领域的最大弊端还是过度拟合。

      这几年机器学习比较热门,很多专业的量化私募也开始布局这块,当然这里面也有不少私募纯粹就是打着机器学习的噱头吸引资金的。

      机器学习里面的深度学习、神经网络在模式特征识别上确实大放异彩,但是投资交易并不是严谨的自然科学,其复杂程度远超这些领域。

      市场并不是一成不变的固定模式,机器学习这种用历史数据去学习规则的方式,永远只会学习出过去的模式。技术分析的支持者认为,历史会重复(虽然不是简单重复),这是技术分析有效的根基之一,而其实这更是机器学习这种模式能够有效的根基。

      机器学习的优势是可以通过海量数据精确拟合历史的特征,这很难不陷入过度拟合的陷阱。过度拟合对未来交易没有太大帮助这应该是量化常识了。

      如果认为不能过度拟合,而应该只抓取一些不变的东西(比如人性、群体不理性等),这其实是一种欠拟合,欠拟合根本没有必要用到机器学习,普通的规则性交易系统甚至是主观交易模糊的规律都足够适用。

                        市场模式变化示例,来源谷歌图片,侵权删

      所以我个人认为,机器学习在中低频的量化交易上面并没有什么帮助,只会让你陷入过度拟合不能自拔。

      而在高频交易领域,比如股票T+0(其实严格来讲也不能算高频交易,这里暂且放宽高频的定义),机器学习或许有一定的作用。

      因为我曾经做过一段时间的人工股票T+0交易,人工T+0在稳定盈利上面是毋庸置疑的,这是有大量的实践支撑的。因此可以推断出人脑在这种纠正短时定价错误的交易上面,确实能够识别出一些共性并且一直相对不变的东西。

      也就是说在日内交易上面,或许确实存在着相对不变的盈利模式,而这种模式用条件或规则很难定义,机器学习这种从数据倒推规则的黑箱方式可能就恰好适用,尤其是深度学习神经网络这种本身就是借鉴人脑的方法。

      不过这种模式下,机器学习可能需要不断的更新数据,不断的调参,人脑在应对市场变化反应肯定是更快的,并且人脑可能还多了一个消息面的维度。这个维度,机器学习目前估计比较难用上。长期来看,我还是更看好人工交易员在T+0领域的绩效表现。

      以前我在学习机器学习基础知识的时候,对一句话印象比较深刻。原话记不住了,大概意思是人类专家解决不了的问题,机器学习也解决不了。而投资领域,恰恰是这样,或许有不少大佬在投资上面赚了很多钱,但是谁也不敢说这里面没有一点运气成分,谁也不敢保证自己的过往经历就是永恒的圣杯。其实,现在也有不少人认同社会科学领域没有专家这个观点。

      总结来说,就是机器学习在高频领域或许有一席之地,在中低频交易上面用处不太大。从行业看,实打实用机器学习做交易的机构应该有,但是不多,更多的只是把机器学习当作一种吸引资金的噱头。


关于一些建议

      本来作为一个不算成功的量化研究爱好者看似不应该给出什么建议,但是也不妨写写,希望对一些和我有着相似经历的朋友能有一点帮助吧。

      当然每个人都应该经过自己的独立思考再来看待这些建议。不管是谁,不管他的财富地位如何,每个人都受限于自己的认知和经历,都有可能抛出一些错误的观点,不用踩低不成功的人也不必迷信大佬。

      先说下我自己的经历:我毕业于某理工大学,但是我的专业其实是文科专业,2013年左右开始接触金融,但是与交易无关,主要是运营类的工作,2017年才开始自学接触交易,现在就职于小型的私募公司,不过公司并无量化方面的研究,因此量化研究仍然是业余的,主观交易主要是做ETF期权,后续主要思路是期货期权结合做中长线的交易。

      如果是知名院校、有深厚的数理功底及强大的编程能力的人,可以考虑一些知名头部私募或互联网公司的数据分析工作。

      如果经历和我类似,想在专业量化私募机构就职并不太容易。头部量化私募一般都要求名校研究生应届毕业,并且对数理和编程能力有较高要求,小型私募则是要有能直接赚钱的策略,通常需要提供不错的实盘业绩。

      类似于我这样半路出家的,这两个条件都不具备,最有可能的路径是用自己的资金做自营。

      1、做自营要不要全职做?

      投资交易存在诸多不确定性,长周期的稳定盈利相对有可能,但是想像工作一样,每个月都稳定的现金流入则比较困难。

      此外选择做量化的人,一般风险偏好不会太高,不是那种一把梭哈赢了会所嫩模输了下海干活的人。风险偏好不高自然预期收益也不会太高,如果可投资的资金量太小,绝对收益可能难以应对支出。

      所以如果家庭压力比较大、需要每个月有稳定的现金流入、并且可用于投资的资金量不大的话,即使现在的岗位收入不是特别高,都不要考虑全职做量化。

      尤其是一些能力很不错、现有工作待遇好的专职程序员,虽然你们的编程能力让你们很容易切换到这个岗位,但是真心不建议放弃高薪辞职来专职做量化。

      量化研究交易或者主观交易都是完全可以兼职做的,拥有稳定的现金流入最重要,虽然知乎确实也有不少坚持下来最后成功的交易者,但是个中的压力我觉得多数人都难以承受。

      如果是手上有不少积累的闲置资金,并且生活没有太大压力的,不妨可以尝试一下,如果能稳定复利的话,这些起始资金带来的投资收益也较为可观。

      2、从哪里入手?

      最好入门的还是CTA趋势跟踪策略,资金要求低,技术门槛低、可用的交易接口和框架多。股票多因子策略、统计套利策略资金量太小做了没什么意义。期权交易感兴趣的可以做,但是建议先从主观交易做起。高频交易基本不用考虑。

      我目前已经没有研发CTA策略了,因为特别优秀的策略研发不出来,囧。拿了一点钱去投了朋友的MOM产品,开始还有点不甘心,明明自己就是CTA策略研发人员。后面发现这样的做法才是明智的。产品有杠杆,几乎涵盖了所有品种,策略多样化,当然因为小资金所以是寄放在信得过的朋友名下。如果我自己跑策略的话,麻烦事小,主要是资金小,策略限制太多了,

      这里可以给没做过CTA策略的朋友提供一些思路:

  • 做中长线交易,手续费和滑点的影响比较小;
  • 以双均线或海龟策略作为基准比较策略,回测时间放长一点、回测品种多做一点,只要你的策略平均的统计数据可以超越这个基准策略就可以采用了。趋势跟踪就是熬住震荡期等行情,行情来了都能赚。
  • 特别优秀的单品种策略我也没研发过,一般趋势跟踪系统无非就是均线系统、通道系统,然后相应做些修改。
  • 资金量也不能太小,起码相关性较弱的小合约的品种能做个10个以上,如果你的资金只够做1手螺纹钢的话,那还是一把梭哈吧。


      最后,猜猜我这几年收益率最高的策略是什么策略?

      答案是:股票基金定投策略。策略投入精力:0,策略投入时间:0,策略收益排名:NO.1。

      我十年前就开始定投股票型基金了,然后随着收入的增长逐渐增加定投金额,最早每月的定投支出只有300元。

      前段时间用年金公式倒推计算了一下复合收益率,几个主动管理型的基金复合收益在17%-23%之间,被动的指数型基金大约在11%左右。可见近十年,中国公募基金的超额收益还是比较明显的。

      我认为基金定投的主要盈利逻辑有两点:1、经济长期向上。2、只要你能一直定投就等于是无限资金,已经无限子弹了,这种类网格的策略你怕啥。

      以上就是全部的感悟,一定有认知错误的地方,欢迎指正。


版权及免责声明:本文内容由入驻叩富网的作者自发贡献,该文观点仅代表作者本人,与本网站立场无关,不对您构成任何投资建议。 用户应基于自己的独立判断,自行决策投资行为并承担全部风险。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至kf@cofool.com 举报,一经查实,本站将立刻删除。
收藏
分享至小组