作者简介

刘琉球,南京大学工学学士、应用统计博士生,教育部高校科技进步一等奖联合完成人,欧盟FP7 Marie Curie Actions 访问学者,R语言爱好者。

公众号:刘琉球

前文推送:

【量化】基于二次多项式拟合的日内趋势交易策略

【量化】基于时变对冲比率的商品期货Pairs Trading策略


写在前面:本篇属于实习期间关于多因子模型的工作,即参考CSFB阿尔法模型框架(CSFB:Credit Suisse First Boston)及 Systematic Investor Blog 部分成果,实现了该多因子模型对于道琼斯指数30支成分股的投资回测。


一、收益率与单一因子的相关性

对于多因子模型的有效性,此处不做讨论。这里仅仅以沃尔玛公司基本财务数据为例,计算得到简单的估值因子,并对该因子和下月收益率进行相关性分析。(数据来源:http://uk.advfn.com,下同)。

下面载入沃尔玛季度EPS数据并计算其滚动EPS:

上图可以发现沃尔玛EPS显著的季节性:第四季度的EPS明显高于其他三个季度。(针对季节性波动常用的平滑办法是对连续四个季度数据进行滚动求和)

接下来观察沃尔玛股价数据和滚动EPS的变化,大概可以得到相近的变化趋势:

接下来对下文研究对象,即道琼斯指数30支成分股同样进行如下操作:

  • · 计算下月收益率; 

  • · 计算基础因子:E/P值(EPS/股价)

此处之所以计算E/P值(市盈率倒数),是基于价值回归逻辑得出的该指标对于下月收益率的潜在正效应,以及后续多因子建模时便于同向排序。

接下绘制因子E/P值和下月收益率散点图,并进行相关性检验:

##  Pearson's product-moment correlation

## t = 2.78, df = 4336, p-value = 0.005459 ## alternative hypothesis: true correlation is not equal to 0

检验结果显示,E/P值同下月收益率的相关性虽然非常小,但显著不为0。这种很小的相关性在此类分析中很常见。在下一部分中会展现即使基于这种很弱的相关性,多个指标叠加起来依然可以带来超额收益。

二、基于5类基础因子的多因子模型

本部分在上一部分单一因子的基础上,进一步选择5类常用因子,并构建基础的多因子模型。

建模中常见的因子诸如:市盈率(PE: Price/Earnings)、市销率(PS: Price/Sales)、Price/Cash Flow、股息率(Dividend Yield)、市净率(PB: Price/Book)等。

另一个需要关注的问题是公司所属行业板块,根据S&P 500对应的9种SPDR ETF行业分类,一种可行的板块划分如下:

  • 消费品–可选要消费品(Consumer Cyclicals)

  • 消费品–主要消费品(Consumer Staples)

  • 能源(Energy)

  • 金融(Financials)

  • 健保(Health Care)

  • 工业(Industrials)

  • 原材料(Materials)

  • 科技(Technology)

  • 公共事业(Utilities)

值得注意的是,道琼斯指数30支成分股中包含四个金融公司(AXP, BAC, JPM, TRV),而销售量和现金流因子对金融公司并不适用,相关解释可以参见文章(Damodaran, 2013)

对于30支成分股,创建以下传统估值因子:

  • 市盈率倒数(EP: Earnings/Price)

  • 市销率倒数(SP: Sales)

  • 市现率倒数(CFP: Price/Cash Flow)

  • 股息率(DY: Dividend Yield)

  • 市净率倒数(BP: Price/Book)

出于价值在月时间尺度内回归的逻辑,可以预估,这5类因子对于下月收益率均为正向指标。

接下来按照多因子模型的建模框架,对5类因子首先进行z-score标准化处理去除量纲效应,再等权重加权得到均化因子AVG。再将这6类因子由低到高划分为5个区间,计算这五个区间内对应公司股票的下月收益率。

下图为各因子下不同区间内公司股票的下月月均收益率柱形图。此外,还计算了第五区间(最高)和第一区间(最低)收益率之差spread:

由上图,BP、CFP、SP因子表现最为理想,而等权重得到的均化因子也较好地反映出这5类因子对于下月收益率的正效应:即第五区间相对于第一区间产生了1.24% 的阿尔法。

接下来根据AVG因子,对于该因子下每个区间内的股票,基于历史数据进行回测,绘制累积收益曲线:

如上图,第五区间内的股票相对于其他区间表现出明显的超额收益,12年内翻了15倍以上。这显示出基于这5类因子选股的有效性。而针对“做多第五区间-做空第一区间”的多空策略,能够平稳度过08年金融危机(但进入13年后表现不好)。

三、CSFB多因子模型

本部分参照瑞信第一波士顿阿尔法模型框架(CSFB Alpha Factor Framework)中的基本因子构建多因子模型。CSFB多因子模型共包含7大类44个因子(Patel, P. N., Yao, S., Carlson, R., Banerji, A., Handelman, J. (2011). CSFB Quantitative Research. Equities Research - Credit Suisse.):

1. TV: 传统因子(Traditional Value)

  • EP

  • SP

  • CFP

  • DY

  • BP

2. HG: 历史增长因子(Historical Growth)

  • CFL.CON.CHG

  • EPS.CON.CHG

  • CFL.CHG

  • SALE.3YR.GR

  • EPS.3YR.GR

  • EPS.TREND

  • CFL.TREND

3. PT: 利润因子(Profit Trends)

  • RS.CON.CHG

  • CS.CON.CHG

  • OS.CON.CHG

  • RS

  • SA

  • OS

  • ES

4. PM: 价格动量因子(Price Momentum)

  • S52W.TREND

  • PP04.52W

  • R39W

  • VPT51W

  • P260LOW

5. PR: 价格反转因子(Price Reversal)

  • r5DR

  • MFV

  • MACD

  • RSI

  • STOCH

  • rR4W

  • VOMO

6. SS: Small Size

  • MC

  • MC3

  • P

  • AT

  • SALE

7. SS: 相对行业价值因子(Relative Value)

  • rEP

  • rSP

  • rCFP

  • srEP

  • srSP

  • srCFP

  • rRS

  • rSA

CSFB模型各因子含义参见(Patel et al., 2011),此处不做描述。

先将上述7大类44个因子做z-score标准化处理,再进行降维处理:对每大类下的的若干因子等权重加权平均得到此大类的复合因子(Composite Average factor),最后对各大类复合因子重复上述操作,求得所有因子的等权重复合因子AVG。

接下来针对各大类以及复合因子AVG分成5个区间进行选股,绘制每个区间所得到的平均下月收益率柱状图:

由上图,根据AVG复合因子选股后,第五区间相对于第一区间产生了1.44% 的阿尔法。

接下来基于历史数据进行回测,绘制累积收益曲线:

回测结果相对于第二部分稍有改善,但提高不多(12年内超过18倍的回报率),“做多第五区间-做空第一区间”的多空策略效果也较好。

此外,关于模型的两个注意点

第一是Survivorship bias,会导致回测结果偏理想。

第二是复合因子AVG的构建。此处是简单的等权重加权平均法,其他方法(如线性回归法)效果如何,有待进一步检验。

 大家都在看 

2017年R语言发展报告(国内)

精心整理 | R语言中文社区历史文章合集(作者篇)

精心整理 | R语言中文社区历史文章整理(类型篇)

公众号后台回复关键字即可学习

回复 爬虫             爬虫三大案例实战  
回复 Python        1小时破冰入门

回复 数据挖掘      R语言入门及数据挖掘
回复 人工智能      三个月入门人工智能
回复 数据分析师   数据分析师成长之路 
回复 机器学习      机器学习的商业应用
回复 数据科学      数据科学实战
回复 常用算法      常用数据挖掘算法

【量化】CSFB阿尔法多因子模型研究相关推荐

  1. 量化选股——基于多因子模型的量化策略(第1部分—因子测算策略构建)

    文章目录 1.多因子模型概述 2.因子挖掘 3.多因子策略 4.多因子策略构建 基于多因子的策略通用流程 Fama-French三因子 因子效果测算方法 因子测算结论&量化策略构建 东西有点多 ...

  2. 精选笔记|量化交易之择时研究!

    量化择时研究  我们大多数散户是从技术面进行择时,一般用指标.形态.均线以及波浪来判断是否值得进场或离场.本文将用实证的方式告诉您最优均线策略是什么. 大多数基金择时是利用宏观.行业等数据来判断大势和 ...

  3. 量化投资学习——多因子模型选股

    python线性回归 多因子模型选股思路 https://blog.csdn.net/qq_18668137/article/details/105144670

  4. 量化投资学习——高频交易研究

    相关的有一些高频的数据资源,比如纳斯达克交易所的,NASDAQ ITCH 50 数据,数据连接在这里,ftp://emi.nasdaq.com/ITCH/ 然后关于数据的介绍在这里:https://w ...

  5. 如何搭建量化投资研究系统?(数据篇之财务数据)

    股票市场的存在为企业融资提供了一个自由开放的环境,在这里投资者们将资金配置于他们认为的优秀.稳健.有潜力的企业,无数的投资决策汇聚而成的"群体智慧"影响着整体的经济运行,最终促进社 ...

  6. 西工大黄卫东、林鑫教授团队:3D打印Al-Si合金工艺–组织–性能量化关系研究...

    激光增材制造技术的出现使得快速凝固和大尺寸成形工艺有机地结合起来,获得了传统成形工艺无法得到的微观组织和力学构件.近日,西北工业大学黄卫东.林鑫教授团队使用激光立体成形技术成功制备了高致密度块状Al- ...

  7. “科学学”视角下的科研工作者行为研究

    "科学学"视角下的科研工作者行为研究 贾韬1, 夏锋2 1 西南大学计算机与信息科学学院,重庆 400715 2 大连理工大学软件学院,辽宁 大连 116620 摘要:科学的复杂性 ...

  8. 多因子模型的前世今生

    做量化,经常听到多因子模型,豆瓣直接搜索"多因子模型"找不到相关的理论书籍,汇总网络资料,大概搞清楚什么是多因子模型,以及多因子模型的理论基础在哪里. 什么是多因子定价模型?APT ...

  9. 量化选股策略模型大全

    原文链接:原文 量化选股就是利用数量化的方法选择股票组合,期望该股票组合能够获得超越基准收益率的投资行为.量化选股策略总的来说可以分为两类:第一类是基本面选股,第二类是市场行为选股. 基本面选股主要有 ...

  10. 量化交易入门书籍推荐

    转 量化交易入门书籍推荐 第一部分:预备知识 [1]<投资学>   作者:博迪,凯恩,马库斯 既然是搞量化,算半瓶水搞科学的,就不应该本能的排斥学院的东西.这本书对于投资交易的入门非常系统 ...

最新文章

  1. 使用CSS选择器在页面中插入内容
  2. C语言核心技术——函数
  3. guava 并发_使用Guava对并发应用程序进行基于对象的微锁定
  4. 软链接与硬链接的区别;描述通配符与正则表达式的区别
  5. [SQL实战]之获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
  6. java有主函数的类_Android Project中运行带有main函数的Java类
  7. 快速傅里叶变换python_SciPyTutorial-快速傅立叶逆变换ifft
  8. Android app语言中英文转换、多语言转换
  9. FLV格式的视频歌曲地址600首,复制地址可插入外链播放器专用
  10. 分布式之CAP原则详解
  11. 2012百度招聘笔试题目
  12. 中国金茂销售表现亮眼,资金杠杆率进一步下降
  13. 【游戏客户端】制作节奏大师Like音游(下)
  14. 基于Arduino的智能泡茶机(1)——机械系机械创新比赛总结技术点与不足处
  15. js 数据类型之字符串
  16. 刷题-整数和罗马数字转换
  17. 论文阅读_广义加性模型_GAMs
  18. Hibernate常见问题 No row with the given identifier exists问题的原因及解决
  19. android应用程序永久获取root权限方法,怎么使Android应用程序获得root权限
  20. 7款产品经理必备的交互软件

热门文章

  1. iOS 很酷的动画效果
  2. 比Redis快50倍的中间件,为啥这么快?
  3. 新的一年,和大家一起进步
  4. Android上SQLite的性能优化问题
  5. 给你看一下真实的后浪...
  6. php如何使用网关,在某种情况下,由于PHP代码,网关已关闭(Gateway is down because of PHP code in one situation)...
  7. c语言中闰年的流程图_c语言程序设计流程图怎么画?具体有什么规范,有知道的吗...
  8. eclipse中export 的jar file与 runnable jar file的区别
  9. Luogu4491 [HAOI2018]染色 【容斥原理】【NTT】
  10. C/C++ Bug记录