2种方法筛选出多因子量化选股模型

多因子选股模型在模型搭建中,往往会涉及到非常多的股价影响因子,并可能导出数量极多的备选模型。因此,对于多因子选股模型的评价和筛选,就显得尤为关键。

对于专业的量化投资人而言,就需要进一步了解多因子选股模型的两种主要的评价判断方法——打分法和回归法。

打分法的评价原理和流程

所谓打分法,就是根据各个因子的大小对股票进行打分,然后按照一定的权重加权得到一个总分,最后根据总分再对股票进行筛选。

对于多因子模型的评价而言,实际通过评分法回测出的股票组合收益率,就能够对备选的选股模型做出优劣评价。

打分法的优点是相对比较稳健,不容易受到极端值的影响。但是打分法需要对各个因子的权重做一个相对比较主观的设定,这也是打分法在实际模型评价过程中,比较困难和需要模型求取的关键点所在。

华泰证券在2011年对中证800指数成份股在2005年1月至2011年5月的走势,构造了一个等权重多因子策略。

选股因子包括:总市值、市盈率TTM、营业利润同比增长率、净资产收益率、前1个月涨跌幅、前1个月日均换手率、前1个月波动率、户均持股比例变化、机构持股变化、最近1个月净利润上调幅度等10个因子。

这10个因子按等权重的方式,计算各股票的综合得分。按各指标排序,把800只成份股分成:(1-50)、(1-100)、(101-200)、(201-300)、(301-400)、(401-500)、(501-600)、(601-700)、(701-800)、((751-800)等10个组合;股票组合调整周期为月,每月最后一个交易日收盘后构建下一期的组合。

以下就是按照上述10个因子等权重方式,回测出的各档股票组合收益率情况。

进一步从打分法的流程来看,多因子选股模型的建立、评价和改进流程,大致可以分为4个步骤,见下图。

此外,对于量化选股打分法,专业人士还提示指出,一方面,多因子选股模型中有的因子会逐渐失效,而另一些新的因子可能被验证有效而加入到模型当中;

另一方面,一些因子可能在过去的市场环境下比较有效,而随着市场风格的改变,这些因子可能短期内失效。

在这种情况下,对综合评分选股模型的使用过程中,需要对选用的因子、模型本身做持续的再评价和不断的改进以适应变化的市场环境。

除此之外,在计算综合评分的过程中,除了各因子得分的权重设计之外,交易成本和风险控制等因素,也同样需要予以综合考量。

多元线性回归

所谓回归法,就是用过去的股票的收益率对多因子进行回归,得到一个回归方程,然后再把最新的因子值代入回归方程得到一个对未来股票收益的预判,然后再以此为依据进行选股,并对选股模型的有效性和收益率进行评价。

回归法的优点是能够比较及时地调整股票对各因子的敏感性,而且不同的股票对不同的因子的敏感性也可以不同。

回归法的缺点,则是容易受到极端值的影响,在股票对因子敏感度变化较大的市场情况下效果也比较差。

在线性回归分析中,如果有两个或两个以上的自变量,就称为多元线性回归。因此,通过多元线性回归对多因子选股模型进行评价,也能够得到一个直观的股票组合收益率结果,同时能够有效评价该选股模型的优劣。

从数学的角度来说,假设因变量Y(预期收益率)是自变量X1,X2,X3..Xk(候选因子)的线性函数,用方程来表示就是:

Yi=β0+β1X1i+β2X2i+...+βkXki+εi

其中,Yi表示因变量(被解释变量)的第i个观测值,而Xki则是第k个自变量(解释变量)的第i个观测值,是自变量Xk的系数,εi是第i组观测值的残差项。在金融领域,β0有时候会写成α,该方程来表示也可以写作:

Yi=α+β1X1i+β2X2i+...+βkXki+εi

在此之中,多元线性回归通常采用普通最小二乘法(OLS)进行估计,普通最小二乘估计法的思路是改变β0,β1,β2,...,βk,使得残差的平方和最小。

从回归法的流程来看,多因子选股模型的建立、评价和改进流程,大致可以分为6个步骤,见下图。

写在最后:今天分享的两种方法,不如自己测试看看,参考使用在自己的实战交易系统。

来源:量化投资俱乐部

-------------------------------------------------------------------

推荐阅读:量化投资     双均线策略    多因子选股     网格交易     海龟交易法      日内交易

原文地址:https://www.cnblogs.com/myquant-cn/p/11022326.html

时间: 2024-11-06 18:34:15

2种方法筛选出多因子量化选股模型的相关文章

合并BIN文件的两种方法(转)

源:http://blog.chinaunix.net/uid-20745340-id-1878803.html 合并BIN文件的两种方法 在单片机的开发过程中,经常需要将两个单独的BIN文件合并成一个文件,方便烧写和生产.下面结合STM32的IAP Bootloader Code和Application Code的合并,介绍两种合并BIN文件的方法. 首先简单介绍一下STM32的IAP.IAP(In-application-programming),即在应用中编程.有了它,产品发布之后,仍然可

iOS 获取文件的目录路径的几种方法 [转]

iOS 获取文件的目录路径的几种方法 2 years ago davidzhang iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory())手动保存的文件在documents文件里 Nsuserdefaults保存的文件在tmp文件夹里 1.Documents 目录:您应该将所有的应用程序数据文件写入到这个目录下.这个目录用于存储用户数据或其它应该

[ jquery 过滤器 slice(start, [end]) ] 此方法用于在选择器的基础之上精确筛选出匹配的子集(可以使用前导限制范围)

此方法用于在选择器的基础之上精确筛选出匹配的子集(可以使用前导限制范围): 1.start:开始选取子集的位置.第一个元素是0.如果是负数,则可以从集合的尾部开始选起 2.end:结束选取自己的位置,如果不指定,则就是本身的结尾 3.参数包含开始,不包含结束 [ start , end ) 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title>

[ jquery 过滤器 .first() | .last() ] 此方法用于在选择器的基础之上精确筛选出第一个(最后一个)元素(可以使用前导限制范围)

此方法用于在选择器的基础之上精确筛选出第一个(最后一个)元素(可以使用前导限制范围): 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content

Easyui 弹出加载中的遮罩的两种方法

第一种方法:$.ajax({ type:'POST', url:url, data:obj, dataType:'json', beforeSend: function () { load(); }, complete: function () { disLoad(); }, success:function(data){ showMessage(data); } }); //弹出加载层 function load() { $("<div class=\"datagrid-mas

[ jquery 过滤器 filter(expr|obj|ele|fn) ] 筛选出与指定表达式匹配的元素集合,这个方法用于缩小匹配的范围,用逗号分隔多个表达式

筛选出与指定表达式匹配的元素集合,这个方法用于缩小匹配的范围,用逗号分隔多个表达式 当参数是函数时,函数里面的参数解释如下: 一个函数用来作为测试元素的集合.它接受一个参数index,这是元素在jQuery集合的索引.在函数, this指的是当前的DOM元素 实例:<!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equ

c:走出循环的几种方法之continue,break,goto,return

走出循环结构的几种方法:continue,break,goto,return 一:continue结束本次循环,直接进入下一次循环 int main(int argc, const char * argv[]) { for (int j = 0; j<10; j++) { if (j>5) { continue; } printf("%d\n",j); } return 0; } 打印结果: 012345 二:break结束整个循环结构. int main(int argc

在List中找出最大值的两种方法

先说需求:找出一个对象List中,某个属性值最大的对象. 1.定义对象 1 private class A 2 { 3 public int ID { get; set; } 4 5 public string Name { get; set; } 6 } 2.为两种方法定义两个时间段全局变量. 1 private static TimeSpan compare = new TimeSpan(); 2 private static TimeSpan order = new TimeSpan();

Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解

一.Jquery遍历筛选数组 1.jquery grep()筛选遍历数组 $().ready( function(){ var array = [1,2,3,4,5,6,7,8,9]; var filterarray = $.grep(array,function(value){ return value > 5;//筛选出大于5的 }); for(var i=0;i<filterarray.length;i++){ alert(filterarray[i]); } for (key in f