量化 - 多因子策略1
一、Alpha 和 Beta
alpha难得,想获得alpha就需要通过多因子策略等方法,来获得!
二、多因子策略 理论介绍
2.1 什么是多因子策略
特征:因子
目标值:股票收益(需要计算)
2.2 多因子(Alpha因子)的种类
按照因子分析角度:
按照因子来源的角度:
2.3 多因子策略的优势
三、必背模型
3.1 单因子模型 - 系统风险因子:资产定价模型 CAPM
这个模型只关注了β因子,收益只跟着市场走
3.2 多因子模型 - 套利定价理论(APT模型)
只是理论!!没有实际结果!!
3.3 FF三因子模型
这“三因子”指的是三类因子,每类因子还包括多了小因子,需要自己去挖掘。
3.4 FF五因子模型
四、数据挖掘怎么做?
最重要的一环就是数据挖掘,构建策略反而没那么难...
五、多因子策略流程
5.1 流程图
重点在 因子的处理和探索
5.2 多因子策略确定的事情
5.3 因子挖掘怎么做?- RiceQuant的研究平台
5.4 研究平台的函数
get_price - 获取合约历史数据
示例:
注意这里只能显示二维的结构。一旦第二个例子把“fields='close'”删去,二维就塞不下了,会返回pandas Panel结构
查看某个数据的类型:
get_trading_dates - 获取交易日列表
get_fundamentals - 查询财务数据
六、面板/截面/序列数据
6.1 面板数据(DataPanel) vs 截面数据(DataFrame) vs 序列数据
面板数据 DataPanel,由 截面数据 和 序列数据 组成:
截面数据DataFrame :
序列数据:
将面板数据 转换为 截面数据:
七、因子数据处理 - 去极值
7.1 什么是因子去极值处理
7.2 去极值的三种方法
7.3 去极值 - 分位数去极值
中位数:
四分位数:
百分位数:
分位数去极值 原理
分位数去极值 API
举例:limits = 0.25, 那么所有处于0.25 quantile左边的都会被重置为0.25 quantile的值,所有处于1-0.25 = 0.75 右边的都会被重置为0.75 quantile
(这里的limits理解可能有误,需要double check)
示例
自定义分位数去极值
np是numpy包
7.4 去极值 - 中位数绝对偏差去极值(推荐)
计算方法
7.5 去极值 - 正态分布去极值(不推荐)
3sigma方法实现
八、因子数据处理 - 标准化
8.1 需要导入sklearn.preprocessing StandardScaler
rice quant还支持更多的Python库:
8.2 标准化函数
九、因子数据处理 - 市值中性化
9.1 为什么需要中性化处理?
9.2 怎么去除市值影响
对于某受市值影响的因子:使用回归 y = a*x+b法,来去除市值影响
9.3 市值中性化处理 - 回归法
9.4 示例:去除 [市净率] 与 [市值] 之间的联系部分
步骤:
步骤: