Python 代码传送门: https://www.ricequant.com/community/topic/915
按照投资方式来划分,主动投资和被动投资是两种最基本的投资策略。主动投资是指投资者希望通过积极主动的择时策略和(或)选股策略来战胜市场,获取更高收益;而被动投资则以跟踪某一特定指数为投资目标,一般选取目标指数成分股为投资对象,追求的是与标的指数相比更小的跟踪误差和偏离度,获取与指数相近的投资收益,而不主动寻求超越市场的表现,以被动方式分享市场收益( beta )并承担市场风险 。
例如南方开元沪深 300ETF 、华泰柏瑞沪深 300ETF 和嘉实沪深 300ETF 三只以沪深 300 指数为追踪标的的 ETF , 他们和沪深 300 的跟踪误差非常小,曲线长得不仅像亲姐妹,更像是双胞胎。
1960 至 1970 年代,学院派金融学研究发现,“没有谁能击败大盘”,这也就是所谓的效率市场假说。威廉·夏普( 1964 )的 CAPM 理论认为,市场组合提供了最优的风险收益比率。这种理念和假说逐渐被广泛接受,也成为指数基金得以创建的理论基础。而实际上,你无法持有一个 complete 的'市场组合&# 39;,因此市值加权的市场综合指数作为市场组合(理论)的替代品,它的收益也 represent 了市场的收益。
而大部分的基金业跑不过市场也是事实。过去 5 年来, 75%的股票型基金连大盘的涨幅都赶不上,几乎年年落后于大盘。事实上,一个基金 经理的业绩只要能够与大盘指数持平,就在所有基金经理排名中高居前 1/4 。
大多数基金经理连市场的平均业绩水平都赶不上:
这也是被动型投资,指数型 ETF 的发展迅猛的原因。自 1992 年第一只 ETF 诞生于美国市场以来, ETF 已经成为了近 20 年以来金融市场上最引人注目的创新产品之一。截止到 2014 年 8 月,全球共有 5266 只 ETF 产品运作,总管理规模将近 3 万亿美元。
现状:在 ETF 规模快速增长的背景下,Smart Beta ETF 在 2016 年持续成为成熟市场的 ETF 热点产品。 Smart Beta 的热度在美国可以看到持续的发展。在美国 2015 年发行的新产品 ETF 中,Smart Beta 的比例占据 42%的份额。
根据晨星公司( Morningstar )的统计数据,使用 smart beta 策略的基金规模已经从 2008 年的 1030 亿美元飙升至 2015 年底的 6160 亿美元。
“ Smart beta ”,是介于主动投资( seeking Alpha )与被动指数投资(Beta 策略)之间的方式,它尝试突破市值加权指数的限制,增加一些复杂的指标,主动在某些风险因子上暴露,从而获取超额收益的特征,也就是战胜市场。
实际上,也正是投资者们并不仅仅满足于获取市场的平均收益,对超额收益的渴望推动了 Smart Beta ETF 的发展。(坊间的声音是: Smart Beta 是披着 Beta 的外衣,而实际追求的是 Alpha )
Morning Star 对 Smart Beta 指数的分类大概有三种:
( 1 )、增强收益类:主要包括单一因子策略指数(如价值、成长、动量和质量等)、多因子策略指数和基本面指数(如以红利、净利润、收入等指标作为权重);
( 2 )、分散风险类:主要是风险加权指数,如最小波动率指数、最大分散度指数、等权重指数等;
( 3 )、其他类:主要包括非传统商品 /债券指数和多资产指数等。
目标是计算一个原创的指数用于计算仓位比重,原理很简单如下:
选 CSI 300 的所有成分股 计算每个股票的风险权重 weighting a. 计算该股票某个时间窗内回报率的方差的倒数,记为 a b. 计算所有股票的 a 的和,记为 b c. weighting = a/b
按月调仓,卖出之间持有的所有股票,按照新计算的 weighting 买入股票
这个策略或者说这个指数的内核说白了就是风险越高(方差大)给予该股票的权重就越小。因此,对这个指数的预期效果是在熊市能止损,牛市则会取得较稳健的收入,而震荡行情的表现还无法预测。下面来看看实际回测的情况。
上图是取 60 天时间窗计算方差,对 2013/4/16 - 2014/4/1 间数据的回测结果,可见在震荡行情下该策略的表现还是很可观的,止损上挺出色的。(之所以将组合正确的在 300 只股票间建立时震荡行情有奇效,我认为原因是震荡意味着市场风险很大,这种降低风险的组合自然比 Buy&Hold 要好很多。注意到震荡意味着风险不是系统性风险,因此策略才十分有效。)
接下来回测 2014/4/1-2015/6/9 的情况。众所周知这是一段牛市行情:
可见,在 14 年至 15 年 6 月 8 日这段牛市,策略收益是很稳健的,不会比 Buy&Hold 策略差,但也好不到很多。毕竟组合太分散而且降低风险也就意味着降低收益,这是情理之中的。
而在 15 年 6 月 8 日后的熊市阶段,策略的止损是很明显的,但走势和指数基本相同。
熊市意味着系统性风险,即使降低风险分散投资也不能避免。投资组合能降低的只有非系统性风险!系统性风险是无法避免的!之前只下单 10 只左右股票的时候熊市止损异常好,但 benchmark 应该是那几只股票的固定比例组合,而不是指数,因此那个误打误撞的结果止损效果究竟如何,不可断言。
关于这个权重的计算我单独写成了函数( RQ_Risk_Weight_Index ), 调用的时候要注意在 init 里设置 context.stocks = index_components('000300.XSHG'),以及设置计算方差的时间窗大小 context.WINDOWS (时间不宜取得太大或太小,太大就不能很好的 capture 现在的风险了,太小则会过于贴近指数,策略就没意义了)
下面给出 60 天的回测结果,后面回复里会放 30 和 120 的,可见 60 的效果最好。
注意回测时资金量要足够大否则单只股票的购买金额过小可能无法下单。
回测年份: 2013 年 4 月 15 日-2016 年 4 月 16 日 回测收益 124.079% 回测年化收益 30.826% 基准收益 32.945% Alpha 0.206 Beta 0.566 Sharpe 1.3386 Max Drawdown 20.95%
60 是一个比较常见的中期距离,一般短期均线用 20 ,中期用 60 ,长期用 120 ,然后实际测试中确实 60 比较能抓住风险因素。月轮换也是反复测试后得出的最优轮换期,也试过日轮换和周轮换以及两个月换一次,综合来看都不如月轮换效果好。
Python 源码传送门: https://www.ricequant.com/community/topic/915
Ricequant 出品