书城投资量化投资的转折:分析师的良知
4301600000022

第22章 如果你想尝试打败市场——数量化的开端(6)

实际上,除了巴菲特式的强调集中投资与指数型基金一贯采用的被动式管理,几乎其他的方法都在此层面得到了统一。仔细思考一下为什么要卖出?不考虑那些现金需求,几乎没人会反对卖出是为了较好的保护利润。巴菲特卖出中石油恐怕除了这个解释,再也没有更好的理由了。彼得·林奇在卖出股票这个问题上也是颇费笔墨,说白了还不是尽最大可能享受股价上涨的过程,避免市场调整么?关键的问题是在于很难对市场整体的下跌时间、幅度作出良好的预测,所以才转向挑选个股并在此层面进行一个组合的动态管理。如果按照这个标准来衡量操作,就不应当把基于保护利润的卖出策略排除在外。而且,这也是将收益率分布从对称拉向有偏的良好手段。笔者曾经在2008年的时候帮一位年长的同事校验策略,整个过程颇具戏剧性。首先,我们将一个纯粹基于形态描述的策略A编程,然后检验该策略的买卖点对应的收益率如何。历史结果是令人沮丧的,没什么打败市场的表现。这似乎是现实对该同事和笔者无情的嘲弄。因为对于那时的笔者来说,策略实现比现在耗费的时间要长的多。而对于同事来说,这是一个对其市场经验的检阅。无疑,我们都对这个结果不甚满意,于是回落策略B被加入其中。结果多少有些出乎意料,因为经过改良后的策略表现非常不错。我们坐下来仔细分析了整个过程,是否因为加入了策略B导致的收益率明显提升就意味着策略A本身没有意义。这个问题的回答还是应该小心的,我们倾向于认为并非如此。策略A缩小了选择范围的同时可能捕捉了其他与策略B共同产生作用的特性。尤其是在非特定问题的条件下,本着这种思路可能会更适合。整个事件让笔者得到的另一个振奋的信息是,老同事的市场经验可能是有用的。在市场从业了10多年,天天看着股票的走势,大脑提炼出的某些信息或许确实能作为发现有用策略的线索。这实际上开启了一个极大的领域,就是那些出版物里所讲述的诱人的投资策略的校验。对于这方面问题的展开是后续章节才会涉及到的内容,在本节我们还是最好把注意力挪回到应用策略营造有偏收益率分布上来。

在期货市场上一直存在着一种“对就留,错就砍”的思维。这在一定程度上与市场特性有关,没人会把长期持有那套把戏在期货市场上无限制的发扬光大道理也是如此,但其在侧面也说明了一种极端条件下的操作思路:“压缩每次亏损的幅度,让利润尽可能的放大。”这里涉及到了一个与股票市场投资逻辑格格不入的思想:“如果市场没有证明我的投资逻辑是对的,为什么还要继续?”

普通的投资人可以选择信奉价值投资逻辑,但要面对的却是多方面的可能。“当前信息下做出的判断正确么?即便判断正确但市场认可么?如果将来市场准备认可时突然出现了其他新信息怎么办?”这一切是没有哪位投资大师能替散户做出回答的。很多人选择去崇拜巴菲特,照着他的方式去在国内市场找股票。别忘了股神自己卖出中国石油的举动就透露出了两个信息,第一,巴菲特的触角确实触及到了中国公司;第二,从公开的资料来看,其中国公司的数量也十分有限。是否可以理解为,“连股神都觉得偌大个市场就只有那么屈指可数的几家公司具备价值”这个问题可以争论。但全民都谈价值投资未免是个天大的笑话。既然股神不在绝大部分普通A股投资人的左右,信奉价值投资逻辑遭到了亏损又有什么理由会得到任何精神上的庇护呢?唯一的合理解释就是自欺欺人。经常听到一句股民挂在嘴边的话,“已经亏损了这么多,怎么卖?”是啊,卖出就把账面的浮动亏损兑现了,不卖也有道理。但一遍又一遍的在“价值投资,长期持有”的老把戏里打转就是不合乎道理。

只有把止损这类的卖出交易策略纳入到考虑范围,才最有可能做到让收益率分布有偏。所以,说到底还是一个跟观念在做斗争的问题。另一个角度来审视容错机制在于对算法本身的表现稳定性方面上进行防御。这个道理也是不言自明,人都可能犯错,算法犯错也再正常不过了。算法所基于的模式出现迁移必然会导致其应用的效果下降。理想的状态是,算法池内各个策略都有一个适应度,分配的资金比重要与适应度相联系。在展开组合管理的讨论前,或许还是应该在这个美丽又丑陋的世界发现些实例才好理解为什么对算法本身的防范也格外的重要。

基金仓位估计,这是笔者进入研究所策略组被赋予的第一个任务。做这件事的目的其实也很好理解,如果把基金当作一个市场参与者,或者潜在的参考对象,那么估计他们的仓位水平可以得到一个好处就是在仓位调整上占据主动。这多少类似于玩牌时偷瞄一眼别人手里的花色,看不清具体都有哪些红桃、黑桃,但是大致会有个颜色判断。不那么高尚,但也不违法。这个问题的重要性在2008年市场调整的时候得到了确认。但其功能其实也就到此为止了,毕竟基金的话语权也出现了一定的下降。所以,从组合管理的角度来看,他充其量是打败其他基金业绩的一个帮助而已,不能保证更多的应用了。

这件事情的可做之处还有另一点,beta透漏仓位信息这里涉及到资产组合理论方差、协方差那一套。读者有兴趣可以翻开任何一本金融教科书找到答案。不过,本脚注想说一个关于模型的问题。为什么要用模型?如此难以统一的领域还要不断的投入努力的原因何在?“模型能让我们的数据分析更进一步”可能是一个因素。在宏观问题的处理中,有一个impulse response(冲击响应)问题。使用cholesky分解背后的逻辑跟我们此处碰到的问题是极端类似的。已知条件就这么多,剩下就是各大研究所研究员自己的问题了,有些研究所愿意把算法公布,有一些则不愿意这么做。早期在这个领域叱咤风云的就有宣称估计误差不超2%的银×证券研究所吊诡的是,同样还是这个机构2011年6月左右宣称:“我们内部做了评估分析,不管统计模型如何精密,仓位测算结果实际上要达到真实或者相近真实情况,难度都非常大。由于我们水平有限,统计计量能力不足,既然如此,我们就停止做这方面的工作了。”当然了,有了基金评级业务,似乎也不必要再在这个领域跟其他研究所抢饭吃了。或许谁都没那么高尚。这个小故事应该也就到这里就结束了。之所以把它记得这么清晰是因为这至少给笔者树立了一个标杆,模型校验标准至少要以这个幅度来保留多参数优化个体。随着进程的深入,无论如何也有几个问题不能解决。面对着眼花缭乱的各大研究所的估计值,笔者也抓起电话询问过其他研究员。但答案大同小异,直到无意间被一个所内高研问起,才惊醒原来所内也有力量在做此类研究。但是在走廊聊了半个小时才真是失望透顶。凭什么计算beta的参数是m而不是n?凭什么市场指数的选择是A不是B?这些计算的根基都没有要如何才能得出准确的数值?“GIGO”来形容笔者的感受一点都不过分。至少笔者还在这些问题上做出了努力,但仍然对于单只基金的估计没有办法认同。很多细节可能并不是读者所感兴趣的,但与基于滤波过后看数值的相对变化还是比绝对值有意义。

这个例子究竟告诉我们什么?专家不可靠,多响亮的名头都是一样。为了混口饭吃,很多人或多或少的打肿了脸给你看个满面春光而已。要习惯在不精确的环境下进行投资分析判断,或者至少要对任何一个算法抱有戒备之心。从卖方分析报告中吸取营养,就更不能没有提防。

(第十一节)数量化投资的注意事项——做空

这又是一个触犯禁忌的话题,因为很多投资大师都力劝大家不要做空。从下表也可以看出,融资融券业务开展以来,两种业务的发展就极端不平衡。这或多或少的与市场对做空有先天性的偏见有关。

没人傻到要与投资大师对着干,笔者也不会。还是先来看看彼得·林奇这样的人物都说了什么。在《成功投资》第19章,他用极大的篇幅介绍了卖空可能存在的问题。包括股息、纸上收益以及股价不反映预期。最重要的是,股价下跌不会超过0,但是上涨是没有任何限制的,因此卖空的亏损也是无限的。

彼得·林奇说的就是按照长期投资的方式来做空,这确实不是个好主意。货币因素,经济增长因素都会在一定层面对做空产生不利,尤其是长期做空,这简直是相当于彻底的否认一家公司。既然这个世界上根本就没有可以确定的事,为什么非要在追求成功的对立面上压重注呢?所以,长期做空肯定是万万不能的。那么,短期又如何呢?

到目前为止,笔者假设投资者实际上已经不再对个股能上涨多高或下跌多深感兴趣了。那上涨和下跌对于这样的短期策略来说意义是等同的。其实,我们还是绕了一个大圈子来讨论一个非常简单的问题。“为什么券商愿意把股票借给投资者?投资者融券赚的钱就是券商信用交易部门股票价值的缩水,从这个角度来说,这项业务的出现就不正常。”笔者是在去营业部的时候被问及的这个问题。原因当然是多方面的,但是抛开制度性因素外,从长期持有价值投资的角度来看,良好的公司有一个上涨的趋势。券商相当于把筹码压在了长期因素和短期操作成功率低等方面上。而理性投资者自然也会在短期上进行博取差价的操作。再考虑到融资融券的高费率后,这在一个侧面是相当于券商把波动风险换作了佣金的稳定收入。融资融券已经具备了掉期的部分属性。

既然具备了这种对抗属性,投资者的目的实际上就已经十分明确。不要以为券商更为合适的表述是作为出借方的对手盘。只是当前由券商来充当这个角色而已。就一定占据了所有优势。既然是对赌就一定会有可以利用的地方。不妨以一个模拟的例子千万不要使用这个模型,按照数量化的要求基准,这个示例只能说是才完成了30%。很多交易细节还没有考虑,这对于研究员来说是个边际收益递减的行为,但却是策略应用完成所必须经历的步骤。说明这个问题。

算法执行范围:90只标的(上证50与深成指个股)2005年8月12日—2010年8月11日的历史数据实际上,转融通是必须在这里提供制度支持的先决条件。很多券商有了信用交易业务,却在公司层面借不出股票。自营部门对于股票的出借往往显得格外谨慎,这在一定程度上是因为自营部门才没傻到跟着散户一起相信长期投资的那一套。很多报告写得风生水起,又是打自己公司名号的建融券组合,又是乐此不疲的对冲来对冲去。结果一问能不能实际构建组合才发现能提供融券服务的股票一个都没有。

算法逻辑:融券做空机制产生市场下跌盈利的可能。设定依托收盘价确定的数量化策略以分离标的上涨下跌波段,并分别在上涨波段的开始了结融券交易头寸、买入个股,下跌波段的开始了结买入头寸、融券卖出个股。理想状态下,策略将出现无论市场涨跌均可获益的可能。但由于佣金、策略判断失误等因素,需要用大数规律作为依托,以胜率作为策略整体实现盈利的基础。组合采用90只标的证券等初始市值权重分配。

算法执行要求:(1)90只标的证券同时判断,并对满足策略条件的标的予以相应的操作;(2)最小化操作时间与收盘时间的差距。

基于传统run定义扩展的算法执行模拟效果:忽略融券利率融券利率可在最后的整体收益中一并扣除。印花税因素实际上,因为佣金率的下调空间与印花税幅度相似,所以忽略对策略影响有限。在融券佣金费率3‰,原始操作佣金费率1.5‰的情况下信用账户虽不能进行普通交易,但完全可以做到融资当日还款。这一日是否收费取决于券商的信用交易部门。在这个层面上,我们实际只是用信用交易账户来完成普通操作。佣金费率自然也并不是铁打不动。实际上,就笔者所发现的实例就有营业部收千三,但另外一个地区的信用交易收千二的情况。不同券商,信用交易部的定位可能不同,但2011年开始就有佣金调整的现象出现还是让笔者吃惊。总之,这是个地域因素影响很大的领域。90只标的个股中,26只个股出现亏损,占比29%,其余为盈利。亏损最大个股中国南车损失市值的85%,盈利最大的个股辽宁成大盈利126倍。策略整体盈利约650%,表现出大数规律上的盈利可能。即便按照12%的融券利率5年计算,也仅仅扣除约60%的收益。如果融券佣金费率下调为2‰,则策略整体盈利上涨至约765%。这表明了算法交易策略对佣金的敏感,也在侧面说明了算法交易对交易量的刺激作用。

图7模拟策略收益变化情况

数据来源:宏源证券信用交易部

示例总结:基于C++编程的算法判断和算法交易命令执行,可以保证成交价格在收盘价附近实际上,这也是一个与硬件地理位置相关的问题。此策略的执行完全依赖算法交易工具的提供从目前的情况来看,券商后台系统做到流畅处理似乎并不是什么困难的问题。比方说,笔者所在单位信用交易部门融资交易与融券交易的压力测试结果是委托处理速度在8200—8400(笔/秒),成交处理速度在4100—4200(笔/秒)的范围。亏损的个股证明策略对其状态的不适应,亏损幅度较为集中在40%—70%。因此,采用90只个股同时操作的策略在日线级别把损失降低十分必要。本例侧重说明算法交易的意义,设定过于简单,在算法适应性方面有很大的改进空间。本策略的执行需要一定的资金规模,百万级资金量较为合适。资金规模过小,分散的可能性便不再具备。实际上,本例对投资者的意义比对公司的意义要明确,由于市场的零和性质,公司的供券部门实际上需要面临相应的机会成本。本示例仅在说明市场机会,由于现实的不可逆与标的个股的改变,预期收益率需要给予调整反映现实。