Python量化投资基础教程教学课件第七章 多因子选股模型
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
02 多因子选股模型构造 03 多因子选股策略(ATR+ADTM指标)
因子相关性可由 pearson 和 spearman方法计算得出。除了普通的相关性分析之 外,因子的IC值整体变化方向的表现对相关性也具有一定的说明性。若细分因子 的IC值整体变化方向一致,则说明细分因子之间存在显著相关性。
基于IC均值的加权考虑到了因子有效性的差异,对表现更显著的因子分配了 更多权重。
基于IC_IR的加权方法综合考虑了因子有效性和稳定性,在保证因子收益的同 时也考虑了因子的波动性。其中IC_IR被定义为IC的均值除以IC的标准差。
以历史一段时间的复合因子平均IC值作为对复合因子下一期IC值的估计,以 历史IC值的协方差矩阵作为对复合因子下一期波动率的估计,根据IC_IR等 于IC的均值除以IC的标准差,可以得到最大化复合因子IC_IR的最优权重解。
如果开盘价≥昨日开盘价,DBM =0;如果开盘价<昨日开盘价,DBM=(开盘价-最低价)和(昨日 开盘价-开盘价)的较大值
STM = DTM在N日内的和
SBM = DBM在N日内的和
如果STM > SBM,ADTM = (STM-SBM)/STM;如果STM<SBM,ADTM=(STM-SBM)/SBM; 如果STM = SBM,ADTM = 0
IC法分析
IC值本质上是因子暴露与股票收益率的线性相关系数,能用来衡量使用该因子预测股票收益 率的可靠性。IC值的绝对值越趋向于1,说明这个因子的收益越稳定,波动越小。
分层回测
01 大类因子合成 03 多因子选股策略(ATR+ADTM指标)
不同的大类因子之间其因子有效性是存在差异的,以往的研究表明,估值 因子和规模因子表现相对显著,而杠杆和运营因子表现相对较差,如果以 等权的方式来对各大类因子进行加权,则忽略了不同因子的解释力度。
01 大类因子合成 02 多因子选股模型构造
ATR又称 Average true range平均真实波动范围,简称ATR指标,主要是用来 衡量市场波动的强烈度,即为了显示市场变化率的指标。
这一指标最先被提出时,主要用来衡量价格的波动。因此,该指标并不能直接反 映价格走向及其趋势稳定性,而只是表明价格波动的程度。
利用逐步回归法对各大类因子下的细分因子进行回归,选取能够最大程 度提升模型解释力度的细分因子进入备选因子集,用备选因子等权合成 大类因子代理变量。
具体步骤:先用股票收益率对每一个因子做简单回归,然后以对股票收 益率贡献最大的因子所对应的回归方程为基础,再逐步引入其余因子, 确定其取舍。
利用主成分分析(PCA)对具有高相关性的因子进行降维,使用降维后 的特征变量作为该大类因子的代理变量,其中方差解释率最低要求为 70%。
方程:
实例
首先将方程转化为标准形式,求得目标方程所对应的P,q,G,h,A,b矩阵如下,其 中P,q,G,h,A,b代表标准二次优化方程的系数矩阵。
当求得所对应的P,q,G,h,A,b矩阵后,可得出最优权重,该例子的最优权重即 sol['x'],其值为3x1阶矩阵[0.5,0.212,0.288]
ADTMMA = ADTM的M日简单移动平均
参数N设置为23日,参数M设置为8日
ADTM指标在+1到-1之间波动。 低于-0.5时为低风险区,高于+0.5时为高风险区,需注意风险。 ADTM上穿ADTMMA时,买入股票;ADTM跌穿ADTMMA时,卖出股票。
提取出沪深300的三百只股票,分别根据ART因子和ADTM因子对股票池股票进 行排名
止损和止赢的设置
交易者也可以使用ATR来设置自己交易的止损和止赢价位。由于ATR计算的是在某一个时间 段内货币对的波动真实范围,因此可以把该范围作为是计算止损和止赢的标准。
ADTM(超买超卖)是指动态买卖气指标,用开盘价的向上波动幅度和向下波动幅度的距离差值 来描述人气高低的指标。
如果开盘价≤昨日开盘价,DTM =0;如果开盘价>昨日开盘价,DTM=(最高价-开盘价)和(开盘 价-昨日开盘价)的较大值
两种思路:
在满足风险及其他约束条件的基础上最大化收益
在满足收益和其他约束条件的基础上最小化风险
常见约束条件
行业权重约束,因子暴露约束,个股上下限约束。
风险和收益的条件约束可以是等权重时的风险和收益,也可以是指定的某一特定水平。
二次规划方程
min
..
≥
,≤
≤,
w:需要求解的股票池内股票的权重列向量,R:股票预期收益的列向量,T:向量的转置, e:指定的目标收益值,XF:股票关于因子F的因子暴露列向量,XF,L和XF,u:因子暴露约束的 上下限。
利用逐步回归法对各大类因子下的细分因子进行回归,选取能够最大程 度提升模型解释力度的细分因子进入备选因子集,用备选因子等权合成 大类因子代理变量。
具体步骤:先用股票收益率对每一个因子做简单回归,然后以对股票收 益率贡献最大的因子所对应的回归方程为基础,再逐步引入其余因子, 确定其取舍。
在得到合成的大类因子之后,需要对它们的相关性和有效性进行检验。
对于多个因子,通常采用相关系数矩阵进行分析,矩阵形式如下
大类因子中的细分因子之间一般存在较高的相关性。具有高相关性的细 分因子大多代表了相同的一类信息,为了在消除细分因子共线性的同时, 最大化地获取该大类因子的信息,需对细分因子信息进行提取。
按一定标准给因子赋予固定的比例,进而对细分因子进行加权合成。
较低的ATR(即较小的真实波幅)表示比较冷清的市场交易气氛,而高ATR(即较大的真实 波幅)则表示比较旺盛的交易气氛。
一段较长时间的低ATR很可能表明市场正在积蓄力量并逐渐开始下一个价格趋势(可能是之 前趋势的延续,也可能是趋势的反转);而一个非常高的ATR通常是由于短时间内价格的大 幅上涨或下跌造成的,通常此数值不可能长期维持在高水平。
策略回测
策略在日线行情上运行,运行区间为2019Βιβλιοθήκη ,回测的比较基准是沪深300指数。
策略回测
回测结果:策略的年化收益为28.17%,而基准的年化收益为31.33%,且策略的胜率仅 为31.67%,策略的运行结果并不理想。
策略回测
净值曲线:策略在下跌时,下跌幅度很大,这说明止损并未充分发挥作用。经过检查, 并不是止损无效,是由于在止损的同时,又买入了新的股票,而在市场总体行情向下的 情况下,个股的选择对收益的贡献很小,变相的导致止损无效。
该指标价值越高,趋势改变的可能性就越高;该指标的价值越低,趋势的移动性 就越弱。
当前交易日的最高价与最低价间的波幅 前一交易日收盘价与当个交易日最高价间的波幅 前一交易日收盘价与当个交易日最低价间的波幅
价格趋势的反转或开始
极端的高ATR或低ATR值可以被看作价格趋势的反转或下一个趋势的开始。
两种思路:
在满足风险及其他约束条件的基础上最大化收益 在满足收益和其他约束条件的基础上最小化风险
常见约束条件
行业权重约束,因子暴露约束,个股上下限约束。 风险和收益的条件约束可以是等权重时的风险和收益,也可以是指定的某一特定水平。
二次规划方程
min
..
≥
,≤
≤,
w是需要求解的股票池内股票的权重列向量,R是股票预期收益的列向量,方程内的T都代表 向量的转置。
等权法:每个因子的权重相同。 历史收益率加权法:按照因子各自的历史收益率作为权重对因子载荷进行合成。 信息系数加权法:根据因子的IC均值加权合成,其权重计算方法和历史收益率加权
法一致。
利用主成分分析(PCA)对具有高相关性的因子进行降维,使用降维后 的特征变量作为该大类因子的代理变量,其中方差解释率最低要求为 70%。
Pearson相关系数计算公式:
=
(, )
x和y是截面的因子暴露向量,cov(x,y)是截面数据x和y的相关系数,ẟx和ẟy分别 是x和y的标准差。
Spearman相关系数又称秩相关系数,是利用两变量的秩次大小作线性相关分析。
其相关系数计算与Pearson相关系数计算是一致的,区别在于Spearman不是直 接使用个股因子暴露向量,而是先对个股因子暴露进行排序,取因子的排序值代 替因子暴露,进行相关系数计算。
由于此时的因子之间不再具有相似经济含义,如果出现明显相关性,则需要根 据因子的有效性对合成因子进行取舍,从而保证多因子模型不仅是经济含义方 面或收益效果都能达到最优。
回归法分析
回归法分析得到的因子收益率,可以反映从该因子可能获得的股票收益率,当因子收益率为 正时,因子收益率越大,说明可能获得的股票收益率越大,但因子收益率本身不包含对可能 性的判断。
背景
我们已经使用打分法得到了待买入的股票池,但此时的股票池可能存在我们不希望的情 况,如风险过多暴露在某一行业,因此需要对模型进行优化。二次与线性最优化的问题 都可以通过二次规划最优化程序来解决。
实例
假设股票池内103只股票的预期收益分别为0.179,0.131和0.283,方差分别为 0.048,0.189和0.139,另外为简化计算,假设三只股票各不相关,即其协方差为 0。对股票池内股票投资权重进行优化,使得投资组合在预期收益率不小于15%, 个股权重位于[0.1,0.5]且权重之和为1的约束条件下,风险最小。
设置各自权重分别设置为0.5和0.5,对排名数值求和,再进行排序 如果选出的股票小于10只,则全部买入;大于10只,则选择数值最小的10只。
基于ART因子和ADTM因子对沪深300成分股筛选能起到“优中选优”的作用, 实现收益的增强,但策略整体表现波动较大,从侧面反映策略受大盘指数影响 明显,后续可考虑加入止盈止损对来控制策略波动。
策略内容
首先计算原始因子的因子暴露,并对其进行数据处理,包括缺失值填充、离群值处理、 中性化和标准化,然后进行大类因子的合成,最后根据前文计算得到的大类因子权重, 使用打分法确定需要买入的股票。
由于只有两个大类因子,为更好地区分股票,本策略将沪深300的成分股按照分值分为 30组,并选取综合分值排名前20%的股票买入。
因子相关性可由 pearson 和 spearman方法计算得出。除了普通的相关性分析之 外,因子的IC值整体变化方向的表现对相关性也具有一定的说明性。若细分因子 的IC值整体变化方向一致,则说明细分因子之间存在显著相关性。
基于IC均值的加权考虑到了因子有效性的差异,对表现更显著的因子分配了 更多权重。
基于IC_IR的加权方法综合考虑了因子有效性和稳定性,在保证因子收益的同 时也考虑了因子的波动性。其中IC_IR被定义为IC的均值除以IC的标准差。
以历史一段时间的复合因子平均IC值作为对复合因子下一期IC值的估计,以 历史IC值的协方差矩阵作为对复合因子下一期波动率的估计,根据IC_IR等 于IC的均值除以IC的标准差,可以得到最大化复合因子IC_IR的最优权重解。
如果开盘价≥昨日开盘价,DBM =0;如果开盘价<昨日开盘价,DBM=(开盘价-最低价)和(昨日 开盘价-开盘价)的较大值
STM = DTM在N日内的和
SBM = DBM在N日内的和
如果STM > SBM,ADTM = (STM-SBM)/STM;如果STM<SBM,ADTM=(STM-SBM)/SBM; 如果STM = SBM,ADTM = 0
IC法分析
IC值本质上是因子暴露与股票收益率的线性相关系数,能用来衡量使用该因子预测股票收益 率的可靠性。IC值的绝对值越趋向于1,说明这个因子的收益越稳定,波动越小。
分层回测
01 大类因子合成 03 多因子选股策略(ATR+ADTM指标)
不同的大类因子之间其因子有效性是存在差异的,以往的研究表明,估值 因子和规模因子表现相对显著,而杠杆和运营因子表现相对较差,如果以 等权的方式来对各大类因子进行加权,则忽略了不同因子的解释力度。
01 大类因子合成 02 多因子选股模型构造
ATR又称 Average true range平均真实波动范围,简称ATR指标,主要是用来 衡量市场波动的强烈度,即为了显示市场变化率的指标。
这一指标最先被提出时,主要用来衡量价格的波动。因此,该指标并不能直接反 映价格走向及其趋势稳定性,而只是表明价格波动的程度。
利用逐步回归法对各大类因子下的细分因子进行回归,选取能够最大程 度提升模型解释力度的细分因子进入备选因子集,用备选因子等权合成 大类因子代理变量。
具体步骤:先用股票收益率对每一个因子做简单回归,然后以对股票收 益率贡献最大的因子所对应的回归方程为基础,再逐步引入其余因子, 确定其取舍。
利用主成分分析(PCA)对具有高相关性的因子进行降维,使用降维后 的特征变量作为该大类因子的代理变量,其中方差解释率最低要求为 70%。
方程:
实例
首先将方程转化为标准形式,求得目标方程所对应的P,q,G,h,A,b矩阵如下,其 中P,q,G,h,A,b代表标准二次优化方程的系数矩阵。
当求得所对应的P,q,G,h,A,b矩阵后,可得出最优权重,该例子的最优权重即 sol['x'],其值为3x1阶矩阵[0.5,0.212,0.288]
ADTMMA = ADTM的M日简单移动平均
参数N设置为23日,参数M设置为8日
ADTM指标在+1到-1之间波动。 低于-0.5时为低风险区,高于+0.5时为高风险区,需注意风险。 ADTM上穿ADTMMA时,买入股票;ADTM跌穿ADTMMA时,卖出股票。
提取出沪深300的三百只股票,分别根据ART因子和ADTM因子对股票池股票进 行排名
止损和止赢的设置
交易者也可以使用ATR来设置自己交易的止损和止赢价位。由于ATR计算的是在某一个时间 段内货币对的波动真实范围,因此可以把该范围作为是计算止损和止赢的标准。
ADTM(超买超卖)是指动态买卖气指标,用开盘价的向上波动幅度和向下波动幅度的距离差值 来描述人气高低的指标。
如果开盘价≤昨日开盘价,DTM =0;如果开盘价>昨日开盘价,DTM=(最高价-开盘价)和(开盘 价-昨日开盘价)的较大值
两种思路:
在满足风险及其他约束条件的基础上最大化收益
在满足收益和其他约束条件的基础上最小化风险
常见约束条件
行业权重约束,因子暴露约束,个股上下限约束。
风险和收益的条件约束可以是等权重时的风险和收益,也可以是指定的某一特定水平。
二次规划方程
min
..
≥
,≤
≤,
w:需要求解的股票池内股票的权重列向量,R:股票预期收益的列向量,T:向量的转置, e:指定的目标收益值,XF:股票关于因子F的因子暴露列向量,XF,L和XF,u:因子暴露约束的 上下限。
利用逐步回归法对各大类因子下的细分因子进行回归,选取能够最大程 度提升模型解释力度的细分因子进入备选因子集,用备选因子等权合成 大类因子代理变量。
具体步骤:先用股票收益率对每一个因子做简单回归,然后以对股票收 益率贡献最大的因子所对应的回归方程为基础,再逐步引入其余因子, 确定其取舍。
在得到合成的大类因子之后,需要对它们的相关性和有效性进行检验。
对于多个因子,通常采用相关系数矩阵进行分析,矩阵形式如下
大类因子中的细分因子之间一般存在较高的相关性。具有高相关性的细 分因子大多代表了相同的一类信息,为了在消除细分因子共线性的同时, 最大化地获取该大类因子的信息,需对细分因子信息进行提取。
按一定标准给因子赋予固定的比例,进而对细分因子进行加权合成。
较低的ATR(即较小的真实波幅)表示比较冷清的市场交易气氛,而高ATR(即较大的真实 波幅)则表示比较旺盛的交易气氛。
一段较长时间的低ATR很可能表明市场正在积蓄力量并逐渐开始下一个价格趋势(可能是之 前趋势的延续,也可能是趋势的反转);而一个非常高的ATR通常是由于短时间内价格的大 幅上涨或下跌造成的,通常此数值不可能长期维持在高水平。
策略回测
策略在日线行情上运行,运行区间为2019Βιβλιοθήκη ,回测的比较基准是沪深300指数。
策略回测
回测结果:策略的年化收益为28.17%,而基准的年化收益为31.33%,且策略的胜率仅 为31.67%,策略的运行结果并不理想。
策略回测
净值曲线:策略在下跌时,下跌幅度很大,这说明止损并未充分发挥作用。经过检查, 并不是止损无效,是由于在止损的同时,又买入了新的股票,而在市场总体行情向下的 情况下,个股的选择对收益的贡献很小,变相的导致止损无效。
该指标价值越高,趋势改变的可能性就越高;该指标的价值越低,趋势的移动性 就越弱。
当前交易日的最高价与最低价间的波幅 前一交易日收盘价与当个交易日最高价间的波幅 前一交易日收盘价与当个交易日最低价间的波幅
价格趋势的反转或开始
极端的高ATR或低ATR值可以被看作价格趋势的反转或下一个趋势的开始。
两种思路:
在满足风险及其他约束条件的基础上最大化收益 在满足收益和其他约束条件的基础上最小化风险
常见约束条件
行业权重约束,因子暴露约束,个股上下限约束。 风险和收益的条件约束可以是等权重时的风险和收益,也可以是指定的某一特定水平。
二次规划方程
min
..
≥
,≤
≤,
w是需要求解的股票池内股票的权重列向量,R是股票预期收益的列向量,方程内的T都代表 向量的转置。
等权法:每个因子的权重相同。 历史收益率加权法:按照因子各自的历史收益率作为权重对因子载荷进行合成。 信息系数加权法:根据因子的IC均值加权合成,其权重计算方法和历史收益率加权
法一致。
利用主成分分析(PCA)对具有高相关性的因子进行降维,使用降维后 的特征变量作为该大类因子的代理变量,其中方差解释率最低要求为 70%。
Pearson相关系数计算公式:
=
(, )
x和y是截面的因子暴露向量,cov(x,y)是截面数据x和y的相关系数,ẟx和ẟy分别 是x和y的标准差。
Spearman相关系数又称秩相关系数,是利用两变量的秩次大小作线性相关分析。
其相关系数计算与Pearson相关系数计算是一致的,区别在于Spearman不是直 接使用个股因子暴露向量,而是先对个股因子暴露进行排序,取因子的排序值代 替因子暴露,进行相关系数计算。
由于此时的因子之间不再具有相似经济含义,如果出现明显相关性,则需要根 据因子的有效性对合成因子进行取舍,从而保证多因子模型不仅是经济含义方 面或收益效果都能达到最优。
回归法分析
回归法分析得到的因子收益率,可以反映从该因子可能获得的股票收益率,当因子收益率为 正时,因子收益率越大,说明可能获得的股票收益率越大,但因子收益率本身不包含对可能 性的判断。
背景
我们已经使用打分法得到了待买入的股票池,但此时的股票池可能存在我们不希望的情 况,如风险过多暴露在某一行业,因此需要对模型进行优化。二次与线性最优化的问题 都可以通过二次规划最优化程序来解决。
实例
假设股票池内103只股票的预期收益分别为0.179,0.131和0.283,方差分别为 0.048,0.189和0.139,另外为简化计算,假设三只股票各不相关,即其协方差为 0。对股票池内股票投资权重进行优化,使得投资组合在预期收益率不小于15%, 个股权重位于[0.1,0.5]且权重之和为1的约束条件下,风险最小。
设置各自权重分别设置为0.5和0.5,对排名数值求和,再进行排序 如果选出的股票小于10只,则全部买入;大于10只,则选择数值最小的10只。
基于ART因子和ADTM因子对沪深300成分股筛选能起到“优中选优”的作用, 实现收益的增强,但策略整体表现波动较大,从侧面反映策略受大盘指数影响 明显,后续可考虑加入止盈止损对来控制策略波动。
策略内容
首先计算原始因子的因子暴露,并对其进行数据处理,包括缺失值填充、离群值处理、 中性化和标准化,然后进行大类因子的合成,最后根据前文计算得到的大类因子权重, 使用打分法确定需要买入的股票。
由于只有两个大类因子,为更好地区分股票,本策略将沪深300的成分股按照分值分为 30组,并选取综合分值排名前20%的股票买入。