量化 - 多因子策略1
一、Alpha 和 Beta

![]()
alpha难得,想获得alpha就需要通过多因子策略等方法,来获得!

二、多因子策略 理论介绍
2.1 什么是多因子策略
特征:因子
目标值:股票收益(需要计算)

2.2 多因子(Alpha因子)的种类
按照因子分析角度:

按照因子来源的角度:

2.3 多因子策略的优势

三、必背模型
3.1 单因子模型 - 系统风险因子:资产定价模型 CAPM
详细请看:CFA - 投资学 - 4.资本资产定价理论CAPM - Capital Asset Pricing Model
这个模型只关注了β因子,收益只跟着市场走


3.2 多因子模型 - 套利定价理论(APT模型)
详情请看:CFA - 投资学 - 5.套利定价理论APT - Arbitrage Pricing Theroy
只是理论!!没有实际结果!!
![]()

3.3 FF三因子模型
这“三因子”指的是三类因子,每类因子还包括多了小因子,需要自己去挖掘。


SMB,通俗的理解是,规模小的公司,更会受宏观因素的影响。那么小公司要给出更高的收益率,来吸引投资者。
HML,通俗理解是,规模大的公司,更容易出现财务困难
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 示例:去除 [市净率] 与 [市值] 之间的联系部分
步骤:

步骤:

浙公网安备 33010602011771号