多模型融合权重如何训练_单因子模型

多模型融合权重如何训练_单因子模型本篇文章有别于传统的多因子研究,我们并未将重点放在阿尔法因子的挖掘上,而是通过对股票组合的权重优化计算,找到了在市值中性、行业中性、风格因子中性约束下的最优投资组合,以及验证得到的组合权重是否满足了约束条件。结构化多因子风险模型首先对收益率进行简单的线性分解,分解方程中包含四个组成部分:股票收益率、因子暴露、因子收益率和特质因子收益率。那么,第只股票的线性分解如下所示:rj=x1f1+x2f2+x3f3+x4f4⋅⋅⋅⋅xKfK+ujr_j=x_1f_1+x_2f_2+x_3f_3+x_4f_4···

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

本篇文章有别于传统的多因子研究,我们并未将重点放在阿尔法因子的挖掘上,而是通过对股票组合的权重优化计算,找到了在市值中性、行业中性、风格因子中性约束下的最优投资组合,以及验证得到的组合权重是否满足了约束条件。

结构化多因子风险模型首先对收益率进行简单的线性分解,分解方程中包含四个组成部分:股票收益率、因子暴露、因子收益率和特质因子收益率。那么,第只股票的线性分解如下所示:

r j = x 1 f 1 + x 2 f 2 + x 3 f 3 + x 4 f 4 ⋅ ⋅ ⋅ ⋅ x K f K + u j r_j=x_1f_1+x_2f_2+x_3f_3+x_4f_4 ····x_Kf_K+u_j rj=x1f1+x2f2+x3f3+x4f4xKfK+uj
现在我们假设每只股票的特质因子收益率与共同因子收益率不相关,并且每只股票的特质因子收益率也不相关。那么在上述表达式的基础上,可以得到组合的风险结构为:

δ P = w T ( X F X T + Δ ) w \delta_{P} = \sqrt{w^T(XFX^T + \Delta) w} δP=wT(XFXT+Δ)w

其中, r j r_j rj表示第j只股票的收益率; x k x_k xk表示第j只股票在第k个因子上的暴露(也称因子载荷); f k f_k fk表示第k个因子的因子收益率(即每单位因子暴露所承载的收益率); u j u_j uj表示第j只股票的特质因子收益率。因此组合收益率可以表示为:
R P = ∑ j = 1 N w j ⋅ ( ∑ k = 1 K x j k f j k + u j ) R_P=\sum_{j=1}^N w_j·(\sum_{k=1}^{K}x_{jk}f_{jk}+u_j) RP=j=1Nwj(k=1Kxjkfjk+uj)

本文研究使用的大类因子可以参考国泰君安的研报《基于组合优化的风格中性多因子选股策略》。使用到的行业因子为申万一级行业分类的28个行业因子和9大类风格因子。风格因子具体为:Beta、Momentum、Size、Earning Yield、Volatility、Growth、Value、 Leverage、Liquidity。

行业中性和风格中性

行业中性是指,多头组合的行业配置与对冲基准的行业配置相一致。行业中性配置的目的在于剔除行业因子对策略收益的影响。与传统观念不同,传统行业配置试图找到在未来某一段时间内强势行业予以超配、弱势行业予以低配,而行业中性的特点在于剔除行业层面的影响,仅考察行业内部个股的超额收益。行业中性策略的净值曲线往往较为平稳,回撤较小。

风格因子中性是指,多头组合的风格因子较之对冲基准的风险暴露为0。风格因子中性的意义在于,将多头组合的风格特征完全与对冲基准相匹配,使得组合的超额收益不来自于某类风格。因为,我们的目的是追求获得稳健的阿尔法收益,而并非市场某种风格的收益。经风格因子中性配置后,策略的净值曲线将会进一步的平滑,最大回撤进一步降低,组合的稳定性较之仅考虑行业中性的配置方式大幅提升。

组合权重优化

组合权重优化在多因子模型中起到了至关重要的作用。组合权重优化的目的在于将组合的风险特征完全定量化,使得投资经理可以清楚的了解组合的收益来源和风险暴露。组合权重优化的过程包含2个因素:第一,权重优化的目标函数;第二,约束条件。
其中,约束条件我们在上一节中已经提到,即为组合的行业中性和风格因子中性。对于权重优化的目标函数,有几类不同的方法:
1)最小化组合预期风险
在这里插入图片描述

2)最大化经风险调整后收益

最大化经风险调整后的收益为目标函数,同时考虑了预期收益与预期风险的作用,并且在马克维茨的均值方差理论框架下,引入了风险厌恶系数,具体权重优化表达为:

多模型融合权重如何训练_单因子模型

3)最大化组合信息比率

最大化组合信息比率为目标函数以预期收益与预期组合风险的比值作为目标函数,具体权重优化表达为:
在这里插入图片描述

上述三种优化目标函数中,第一种方法和第三种方法完全依赖风险模型给定的数据结果进行计算,而第二种最大化经风险调整后的收益为目标函数引入了风险厌恶系数lambda,提高了权重计算的灵活性,使得投资经理可以根据自身的风险偏好进行差异化的选择。

本文复现第二种组合优化方法,暂定假设交易成本TC(w)为0。示意图如下:

在这里插入图片描述

研究结果

本文重点是如何得到组合的权重,因此没有讲解因子分析、因子验证、策略构建部分。一旦组合权重完成,策略构建也基本完成。本文以2019-01-31这一个调仓日为例,分析出当天如果调仓的组合权重。
我们得到了权重以后进行验证,发现组合满足行业中性的约束:
在这里插入图片描述

同时也满足风格中性的约束:
在这里插入图片描述

如果我们想使得组合在行业和风格因子上的风险敞口较基准而言有所暴露,我们直接修改约束条件就行,比如我们想在价值因子(Value)上多暴露0.1,结果如下:
在这里插入图片描述

可以明显地看到目前组合比基准组合在价值因子上的暴露会直接高出0.2,表明目前的组合超配价值因子,主动选择在该因子上进行风险敞口暴露。

最后贴出源码和策略克隆链接:基于Barra多因子模型的组合权重优化

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185420.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于数据库tinyint 字段的值范围「建议收藏」

    关于数据库tinyint 字段的值范围「建议收藏」tinyint从-2^7(-128)到2^7-1(123)的整型数据。存储大小为1个字节。unsigned是从0到255的整型数据。所以建表的时候只能是tinyint(3),哪怕你建tinyint(100),他最大还是3位这么多。转载于:https://www.cnblogs.com/jinhaidong/p/5944554.html…

    2025年11月19日
    4
  • sqlserver分页查询语句_学mysql还是sql server

    sqlserver分页查询语句_学mysql还是sql serversqlserver的四种分页方式 第一种:ROW_NUMBER()OVER()方式select*from(    select*,ROW_NUMBER()OVER(OrderbyArtistId)ASRowIdfromArtistModels  )asb   whereRowIdbetween10and20  —where…

    2022年10月21日
    2
  • Centos防火墙设置与端口开放的方法

    Centos防火墙设置与端口开放的方法Centos升级到7之后,内置的防火墙已经从iptables变成了firewalld。所以,端口的开启还是要从两种情况来说明的,即iptables和firewalld。更多关于CentOs防火墙的最新内容,请参考Redhat官网。一、iptables1.打开/关闭/重启防火墙开启防火墙(重启后永久生效):chkconfigiptableson关闭防火墙(重启

    2022年6月15日
    65
  • kl1083_奥什科什M1083

    kl1083_奥什科什M1083Windy 定义了一种 Windy 数:不含前导零且相邻两个数字之差至少为 2 的正整数被称为 Windy 数。Windy 想知道,在 A 和 B 之间,包括 A 和 B,总共有多少个 Windy 数?输入格式共一行,包含两个整数 A 和 B。输出格式输出一个整数,表示答案。数据范围1≤A≤B≤2×109输入样例1:1 10输出样例1:9输入样例2:25 50输出样例2:20#include<bits/stdc++.h>using namespace std;

    2022年8月10日
    8
  • 已知两个空间向量求夹角_matlab求两向量夹角的余弦

    已知两个空间向量求夹角_matlab求两向量夹角的余弦原点O[0,0,0]OA=[1,1,0];OB=[1,0,0];sigma=acos(dot(OA,OB)/(norm(OA)norm(OB)));%弧度制sigma/pi180%换算成角度

    2022年10月9日
    5
  • python标识符在命名时有哪些规则_php标识符的命名规则

    python标识符在命名时有哪些规则_php标识符的命名规则在Python中,一切都是对象,包括常量数据类型,如整数数据类型(1,2,3…),字符串数据类型(“ABC”)。想要使用这些对象,就要使用它的对象引用。赋值操作符,实际上是使得对象引用对内存中存放数据的对象进行引用。那什么是标识符?标识符是对对象引用起的一个名字。有效的Python标识符规则:1.长度任意长;2.标识符不能与关键字同名;3.在2.x版本的Python中,标识符以ASCII的字母…

    2025年9月23日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号