基研CheatSheet · 如何构建高波动复合策略(附代码)

作者:嘟嘟的投研CheatSheet,好投学堂专栏作家

题图:嘟嘟的投研CheatSheet微信公众号


低相关可能是为数不多的“免费午餐”,之前在《基研CheatSheet · 组合投资是正道》已有过论述。

今天分享下我自己这一年来践行自研高波动复合策略产品的思考,也是我对半年前路演材料的一次迭代。

高波动组合涉及哪些底层策略?

首先,低波动子策略通常不在考虑范围内。因为即便是高波动子策略,搭配以后组合波动率也大幅下降;如再使用低波动子策略,将显著降低资金的利用效率。

在只考虑国内资产的前提下,包括主观股票、主观CTA、主观转债、量化股票、量化CTA、量化转债、宏观对冲、商品指增等,都是高波动组合构建过程中可选的策略大类

进一步展开,像主观股票涵盖了核心资产、价值红利、科技成长、均衡等不同风格小类,量化CTA包含时序和截面两种小类,量化股票也涉及300、500、1000、空气指增等小类。

大类小类策略如何取舍?

一方面,取决于组合主理人的认知跟能力边界。果断放弃自己不擅长的领域,比如我放弃了主观CTA、主观转债、宏观对冲以及商品指增这几个大类策略,放弃的原因如下:

主观CTA:详见《基研CheatSheet · 主观权益和主观CTA的南辕北辙》,主要考虑无法自研、无MOM实操空间、无产业背景、对交易不敏感等。

主观转债:转债对应正股多为小公司,本身就不具备太大的主观分析空间,主观基金经理鲜有能在中证800以外样本大量持股的案例。

宏观对冲:不认可择时的方法论,统计上不支持,业界鲜有成功案例。

商品指增:详见《基研CheatSheet · 商品指增价值几何?》,不能因为这几年商品指数Beta很强就盲目冲,2011到2015年的熊市不能忽视。

另一方面,取决于小类策略之间的低相关性。

因为我自己有主观多头的自研策略,该策略选股域集中在中证800成分股,因此在规划量化策略时,会考虑尽量不触碰中证800的范畴,从而实现更好的对冲效果,因此搭配的是自研量化转债和自研量化小市值。

其中,没有选择常规的500和1000指增,是因为量化转债跟500指增、1000指增有极高的相关系数,且量化转债有比500和1000指增更优的收益风险比。

图片

注:指增A、B分别来自两家口碑优良的百亿大厂

图表 量化转债与指增相关系数(非超额)

图片

而在量化小市值情绪很差的当下,我依然建议维持一定的配置比例,因为即便在退市制度完善的美国市场,小市值板块也并没有出现持续走弱的Beta。

图表 美股“微盘” VS 美股“2000” VS 美股“500”

图片

注1:罗素2000是罗素3000中市值最小的2000家公司,罗素3000是美股市值最大的3000家公司。由于美股目前有5000多家上市公司,所以罗素2000的地位大致介于国内的中证1000和中证2000之间。

注2:Vanguard Small-Cap是复制CRSP US Small Cap Index的ETF,该指数是根据流通市值从大到小排序,选取流通市值排名靠后的20%的股票,地位类似于国内的微盘股。

注3:长期看,美股的“微盘”跟美股核心资产标普500“不分伯仲”。

当量化转债跟微盘、主观多头进行搭配时,两两相关系数可以控制在较低水平。

图表 量化转债与主多、微盘相关系数(非超额)

图片

最后留在我高波动复合策略组合中的策略类型包括:主观均衡多头、量化偏股转债、量化小市值、量化趋势CTA。

这几类策略的底层收益来源也有较大区别,像主观多头的收益主要来自持有,跟宏观经济周期有更高的相关性;而量化转债跟量化小市值的收益不少来自于反转交易,像转债隐含的期权价值更是提供了差异化的盈利来源;而趋势CTA则是典型的追涨杀跌,与前面三者呈现零相关甚至负相关。

几类子策略如何分配仓位?

首先,明确组合的优化目标,主要分为:最小化波动率、最小化下行风险(只考虑下行波动率)、均值方差(最大化夏普)、最大化预期收益、风险平价等。

考虑到我的组合定位是让投资人有更好的持有体验,因此均值方差(最大化夏普)原本是不二之选,不过该优化目标对子策略收益率的假设过于敏感(大家可以拿代码测试下不同的数值),因此最终选择了风险平价作为优化方向

其次,假设子策略的参数,风险平价主要涉及年化波动率相关系数矩阵。这两部分的参数大家可以按照自己对策略的理解来填写,我使用了3个月产品的真实数据平滑处理。

# 子策略年化波动率:主观多头、量化转债、量化小市值、量化CTA
volatility = np.array([14, 9, 19, 22]) / 100

# 相关系数矩阵
correlation_matrix = np.array([
    [1, 0.55, 0.22, -0.05],
    [0.55, 1, 0.48, -0.27],
    [0.22, 0.48, 1, -0.26],
    [-0.05, -0.27, -0.26, 1]
])


# 协方差矩阵
cov_matrix = np.outer(volatility, volatility) * correlation_matrix

紧接着使用minimize函数对目标函数进行优化,主要代码如下:

# 优化
opt_result = minimize(risk_parity_objective, init_weights, args=(cov_matrix,),
                      method='SLSQP', bounds=bounds, constraints=constraints)

# 计算每个资产的风险贡献
def risk_contributions(weights, cov_matrix):
    portfolio_volatility = np.sqrt(np.dot(weights.T, np.dot(cov_matrix, weights)))
    marginal_contrib = np.dot(cov_matrix, weights) / portfolio_volatility
    return weights * marginal_contrib

# 定义目标函数:最小化风险贡献之间的平方差
def risk_parity_objective(weights, cov_matrix):
    contributions = risk_contributions(weights, cov_matrix)
    return np.sum((contributions - np.mean(contributions)) ** 2)

最后,得到四大策略的配置比例。以我自己的自研策略当前时点的配置为例,主观均衡多头理论应占22%、量化偏股转债占35%、量化小市值占20%、量化趋势CTA占23%。


版权声明:文章版权归原作者所有,部分文章由作者授权本平台发布,若有其他不妥之处的可与小编联系。

免责声明:
您在阅读本内容或附件时,即表明您已事先接受以下“免责声明”之所载条款:
1、本文内容源于作者对于所获取数据的研究分析,本网站对这些信息的准确性和完整性不作任何保证,对由于该等问题产生的一切责任,本网站概不承担;阅读与私募基金相关内容前,请确认您符合私募基金合格投资者条件。
2、文件中所提供的信息尽可能保证可靠、准确和完整,但并不保证报告所述信息的准确性和完整性;亦不能作为投资决策的依据,不能作为道义的、责任的和法律的依据或者凭证。
3、对于本文以及文件中所提供信息所导致的任何直接的或者间接的投资盈亏后果不承担任何责任;本文以及文件发送对象仅限持有相关产品的客户使用,未经授权,请勿对该材料复制或传播。侵删!
4、所有阅读并从本文相关链接中下载文件的行为,均视为当事人无异议接受上述免责条款,并主动放弃所有与本文和文件中所有相关人员的一切追诉权。

0
好投汇
第一时间获取行业新鲜资讯和深度商业分析,请在微信公众账号中搜索「好投汇」,或用手机扫描左方二维码,即可获得好投汇每日精华内容推送和最优搜索体验,并参与编辑活动。

推荐阅读

0
0

评论

你来谈谈?
发表

联系我们

邮箱 :help@haotouxt.com
电话 :0592-5588692
地址 :福建省厦门市湖里区航空商务广场7号楼10F
好投汇微信订阅号
扫一扫
关注好投汇微信订阅号
Copyright © 2017-2024, All Rights Reserved 闽ICP备19018471号-6