基于DolphinDB的高性能Barra风控模型
伴随着癸卯兔年到甲辰龙年的交替,A 股市场在短期内经历了剧烈波动。随着雪球产品大面积敲入,基差快速扩大,小微盘股等板块流动性枯竭,量化基金行业出现了整体性净值大幅回撤。这种市场情况无疑对量化交易的风控能力提出了更严格的要求。
风控模型不但能够提供更准确的股票组合优化结果,还能及时发现预期外的风险敞口,从而实现更稳定的收益,同时还支持事后对投资组合进行更深入的业绩归因和风险归因,帮助及时调整投资策略。
2018年 MSCI 发布的中国 A 股全市场股票模型(The Barra China Equity Model,即 Barra CNE6 模型)就是研究风险敞口、行业配置和收益归因等问题的重要工具之一。Barra 模型采用多层次的因子体系,能够更好地捕捉横截面上机构头寸在各种因子(包括市值等风格因子)上的暴露,从而更精细地预测和解释中国股票市场的风险。与传统的时间序列回归模型有所不同,当 Barra 模型中纳入具有时序记忆的变量时,它还可以共享截面回归和时序回归模型的一些优良性质。目前,我们在 DolphinDB 中完整实现了 Barra CNE6 中的 CNLT 长期模型的全流程,从而帮助用户更准确地分析市场因子对投资组合的影响,进一步优化投资策略,以实现更高的投资回报。
下图为实践全流程,本文带你速通完整实践指南,如需获取 Barra 完整模块脚本,请戳小助手(dolphindb1)。
基于 DolphinDB 的因子合成
CNE6 共包含9个一级因子、21个二级因子、46个三级因子。我们基于因子计算模块barraFactorsCal,对初始的三级因子进行了计算和有效性检验,并基于因子合成模块barraFactorsMerge,使用 DolphinDB 接口合成指定的一级和二级因子。具体流程如下:
1.风格因子计算:基于 getXXXX 函数计算单个三级风格因子。
2.行业因子计算:基于 getIndustryFactors 函数计算行业因子。
3.因子预处理:首先通过 MAD 法,以及市值加权标准化,对原始三级风格因子进行数据清洗。再基于 getAllFactors 和 getRegTable 函数,得到用于单因子模型检验的回归因子表。
4.单因子模型检验:基于 getFactorsValidation 函数针对回归因子表生成每个因子对应的 IC 、FSC 指标。
5.因子合成:针对不同因子加权方法,基于getFSLevelFactor函数合成三级因子,得到用于建立 Barra 多因子模型的一级因子窄表。
基于 DolphinDB 构建收益风险模型
合成一级因子后,我们就可以建立收益与风险模型,并从拟合优度、偏差统计量以及 Q 统计量等角度对模型进行评估。调用收益风险模型对应接口函数getRetTable,即可获得收益风险模型,并绘制得到对应的模型评估指标(R2、T 统计量、Bias 统计量等)。例如,通过下述代码绘制模型的