量化 - 多因子策略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 示例:去除 [市净率] 与 [市值] 之间的联系部分

步骤:

步骤: