原创 | 点宽学院 作者 | 点小宽

全文字数 2366字,建议阅读时长 8 分钟。

01

策略原理

根据CAPM理论,一种资产的价格应该仅与系统性风险相关,并不存在常数项的超额收益(α)。因此,如果市场上存在具有α收益的资产,则此时资产的价格偏离了其应有的水平。具体来说,如果α<0,表明该股的收益率被低估,则应该买入;相反,如果α>0,则表明该股的收益率被高估,应该卖出。

02

策略细节设定

  1. 市场因子选择:

上证综指。上证综指成分股包含了在上海交易所上市的全部A股股票,包含了大中小市值与各类成色及经营能力的公司,具有高度的普遍性及适应性,因此选择上证综指为市场组合。

  1. 选股范围:

沪深300所有成分股。沪深300指数中包含了沪市与深市300支代表性强,流通性高的股票,质地较为优异,适合作为选股池。

  1. 标的池容量:

60支股票。

  1. 回测时间:

2018-01-01至2020-12-31。

03

策略有效性验证

对于CAPM市场因子策略,由于策略盈利原理为不断换仓以持续购买α值小的低估股票,验证方法应为以不同α值的股票构建不同投资组合,对比不同α值的投资组合收益率是否有明显差异,即α值越小,回报率越高。具体实现思路如下:

  1. 每个月计算市场组合当月的每日回报率并构成一个序列。

  2. 每个月计算沪深300成分股当月的每日回报率并为每支股票构建一个序列。

  3. 每个月对每支股票用市场组合因子进行回归,计算个股的α值。

  4. 将个股根据α值由小到大排序,分别将α值排名前60,排名120-180,排名后60的股票按流通市值加权构建为一个投资组合。

  5. 对于每一个投资组合,购买投资组合中的全部标的。

  6. 对于每一个投资组合,平仓所有不在当月投资组合中的股票。

  7. 对比三个投资组合的净值变化情况。

遵循上述验证步骤,可以获得三组投资组合在回测时间内的净值表现:

净值曲线(1) α值最小的60支股票(第1组)

净值曲线(2) α值位于第121-第180名的60支股票(第2组)

为了更直观的比较,提取出三个组合的净值数据,将三个组合及沪深300的净值曲线绘制在同一张图中,结果如下:

从上图中,我们可以清晰的看出不同α值所构成的投资组合虽然拥有相似的净值走势,但组合间净值的差异较大。同时,每月换仓持续购买α值最小的60支标的所带来的收益确实在大部分时间内跑赢α值更大的投资组合以及指数。

而第2组与第3组的相对情况在2019年5月发生了反转,此后第3组的净值上涨幅度较高,第1组与第2组的收益情况开始下降,这可能与市场情绪及风格变化有关,即市场呈现出总体追涨杀跌的趋势,导致已经拥有较高超额收益的高估股票收益持续增加,拉动α值较大的投资组合净值增长。

从3年的总体收益情况来看,购买α值较小的标的构建投资组合尽管出现收益波动,但仍是较为有效的。故CAPM市场因子策略仍有较大实践探究价值。

04

策略潜在问题反思

  1. CAPM模型的有效性基于众多严苛的假设。

投资者拥有均值方差偏好、资产收益率服从正态分布、市场达到供需均衡……真实世界中,这些假设并不那么容易被满足。或许在某些回测时间内,某些假设会得到更好的满足(如2019年的资产回报率更加服从正态分布),从而使模型的解释性大大加强;而某些时间内这些假设不够具有说服力(如2020年资本市场波动很大,多数资产回报率的分布情况相比正态分布呈现长尾的特点),导致CAPM模型的准确性受到较大的影响。

  1. 市场组合可能无法全部解释资产回报率

在CAPM公式中,我们认为资产在市场中的敞口,即β,可以全部解释资产的回报率。而实际情况中,资产回报率可能依赖于除市场之外的更多因子。如果我们将其他因子全部归于公司的可分散风险中,这些因子对于资产回报率的贡献将被忽略。因此,在某些时间段内,假如被忽略的因子对于资产回报率的贡献较大,那么使用CAPM模型所得出的结果将会有较大的误差。

  1. 市值加权在不同市场行情下可能收获不同的效果

如果在当前市场行情下,如果资金大量流入高市值白马股导致指数上升,那么以市值加权的方式设定仓位将是有效的;反之,如果主要资金流入市值较小的中小盘股票导致行情上升,那么市值加权的方式可能错过此次上升行情,甚至由于白马股回调而产生亏损。这种情况下,使用平均仓位,甚至用市值反向加权(小市值股票市值大)构建投资组合可能有更好的效果。

05

策略潜在问题验证

根据上一小节的策略反思,我们希望验证在我们所回测的2018-2020年间,CAPM策略所存在的问题。反思中提到的问题(2)将在多因子模型策略中得以验证,这里,我们先验证问题(1)与问题(3)。

问题(1) 假设不满足:资产回报率不服从正态分布

对于问题(1),均值方差偏好,市场供需平衡等假设较难验证,因此我们选择验证资产回报率是否服从正态分布。我们分别计算沪深300指数的所有成分股2018-2020年的日回报率并对每支标的构成回报率序列,使用Jarque-Bera检验,计算每只股票对应的JB值及相应的P值,以此判断该股股价是否大致服从正态分布。

输出结果为:

JB检验P值大于0.05的成分股数量:15

通过统计我们发现,300支成分股中仅有15支股票通过了JB检验,即我们有95%的把握认为其回报率大致服从正态分布。由于只有5%的股票回报率大致服从正态分布,CAPM模型假设并不非常有效。这是影响CAPM策略2018-2020年净值表现的重要原因。

问题(3) 市值加权影响组合表现

为了验证该问题,我们将策略中的市值加权改为等权重构建仓位。我们将市值加权与等权重持仓所得到的α值最小的60值股票的表现进行对比:

净值曲线(1) 市值加权 α值最小的60支股票(第1组)

净值曲线(4)等权重持仓 α值最小的60支股票(第1组)

通过净值曲线(1)与(4)的对比,我们看到等权重构建仓位的效果比市值加权构建持仓要差很多,尤其是从2019年开始至2020年末,市值加权所获得的收益明显高于等权重。这与A股市场近年来资金逐步由小盘股流入大市值白马股的趋势是一致的。

通过对于问题(1)与问题(3)的分析,我们发现CAPM理论假设无法得到充分满足是CAPM策略表现不佳的主要原因。在这种情况下,我们应该使用其他策略(如多因子模型策略)来获取α超额收益,或者使用市场中性、指数增强等其他策略。

【点宽专栏】知识分享:验证CAPM模型在中国市场的表现相关推荐

  1. 一个文科生,用Python检验CAPM模型在A股市场的有效性,老师期末给了95分

    提示:文章内容主要来自<金融统计分析>课程的课题作业. 文章目录 文章目录 前言 一.检验方案简述 二.实现步骤 1.数据获取 2.数据整理 3.一阶回归与个例展示 4. 二阶回归 总结 ...

  2. 【点宽专栏】模型投资的风险和矛盾

    [点宽专栏]模型投资的风险和矛盾 感谢量化投资训练营公众号接受我们的采访. 开场 感谢本次量化投资训练与点宽网的深入合作,我们也会将更多把优质文章分享在点宽量化专栏上,让热爱量化的人们得到一些启迪!我 ...

  3. 如何使用知识图谱增强信息检索模型?

    ©PaperWeekly 原创 · 作者|刘布楼 学校|清华大学博士生 研究方向|表示学习 传统的信息检索模型中,文本通常使用词袋模型表示.该方法有两个较为明显的缺陷:1)只能通过 TF-IDF 等相 ...

  4. BERT+知识图谱:北大-腾讯联合推出知识赋能的K-BERT模型

    作者丨周鹏 单位丨腾讯 研究方向丨自然语言处理.知识图谱 背景 近两年,谷歌 BERT 等无监督预训练语言表示模型在多个 NLP 任务中均取得了可喜的成果. 这些模型在大规模开放域语料库上进行了预训练 ...

  5. 一套完整的基于随机森林的机器学习流程(特征选择、交叉验证、模型评估))...

    机器学习实操(以随机森林为例) 为了展示随机森林的操作,我们用一套早期的前列腺癌和癌旁基因表达芯片数据集,包含102个样品(50个正常,52个肿瘤),2个分组和9021个变量 (基因).(https: ...

  6. 【知识分享】HTML 与 CSS

    主要内容 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yat1ltCN-1608264035268)(/HTML + CSS.png)] HTML ​ HTML(Hy ...

  7. html5扩展函数的使用方法,知识分享:JavaScript基础语法

    知识分享:JavaScript基础语法 原创 mb5fd868d58f1472021-01-22 16:52:56©著作权 阅读数 41 ©著作权归作者所有:来自51CTO博客作者mb5fd868d5 ...

  8. AI:2023年6月9日北京智源大会演讲分享之基础模型前沿技术论坛—《工程化打造AI中的CPU》、《构建一个AI系统:在LLM上应用带有RLHF来推进定制》、《多模态预训练的进展回顾与展望》、《扩展大

    AI:2023年6月9日北京智源大会演讲分享之基础模型前沿技术论坛-<工程化打造AI中的CPU>.<构建一个AI系统:在LLM上应用带有RLHF来推进定制>.<多模态预训 ...

  9. springboot中药知识分享网站设计 毕业设计-附源码201818

    摘  要 近年来,随着移动互联网的快速发展,电子商务越来越受到网民们的欢迎,电子商务对国家经济的发展也起着越来越重要的作用.简单的流程.便捷可靠的支付方式.快捷畅通的物流快递.安全的信息保护都使得电子 ...

最新文章

  1. Python分析离散心率信号(上)
  2. vb 数组属性_VB中菜单编辑器的使用讲解及实际应用
  3. 推荐系统--矩阵分解(3)
  4. python默认参数陷阱_python默认参数陷阱
  5. python复利计算函数_PyThon编程入门:了解python format格式化函数的使用
  6. matlab 查找字符串中第一个不为空格的_替换空格(剑指offer第三题)
  7. telnet测试端口
  8. 有道词典笔3新增功能扫读和点读是怎么集成的?
  9. 《互联网的那些事之时代》第三回:滟滟随波千万里,何处春江无月明
  10. 如何画一个对话气泡框(css实现)
  11. 正则表达式学习实践心得——来源于codesheep(羊哥)
  12. 【Python表白爱心合集】——“故事很长,我长话短说,我喜欢你,很久了”(♡ʟᴏᴠᴇ ᴜ ᴛʜʀᴇᴇ ᴛʜᴏᴜsᴀɴᴅ♡)
  13. 怎样给图片降噪?这几个图片降噪软件可以帮助你
  14. 【无人机】基于Matlab实现高效局部地图搜索算法附论文
  15. (一)注册微信个人订阅号
  16. 网站实现快速排名的原理与影响
  17. 黑马程序员之ios学习总结——10 OC语言的构造方法和分类
  18. svg配合css3动画_如何使用CSS制作节日SVG图标动画
  19. PS渐变自行车的做法
  20. 交通规划——基于TransCAD的线性参照和动态分段流程实现

热门文章

  1. FluorineFX开源库 使用教程(service配置xml说明)
  2. 一文读懂TDengine3.0中的事务机制
  3. Qt Qss QPushButton[xxx = xxx]
  4. 光纤耦合调制器市场现状及未来发展趋势
  5. linux大量屏蔽恶意ip地址
  6. 我的世界服务器文件打不开启动器,我的世界中国版问题大全启动器为什么没有反应...
  7. MySQL 启动报 :“发生系统错误 193. *** 不是有效的Win32 应用程序”解决方法
  8. 小朱学英语------day 4 They become millionaires and retired at 31. You can do the same
  9. 2012年的中国移动互联网
  10. voltdb将编写的存储过程jar添加的数据库里面