看知乎上很多矿友一直在讨论如何挑选因子、使用因子进行预测。

找了一下社区的相关帖子,做个整理。

本文从因子的相关性入手,用不同因子组合、剔除高度相关因子后再进行降维处理,利用所得各风格信号预测股价走势。

将因子按照风格或经济学含义不同分为收入因子、规模因子、技术因子等组合;计算各组合内部因子的相关系数,在高度相关的因子中挑选代表因子留下,其余剔除,保证各组合中剩余因子相关性不高;采用主成分分析法,计算能够代表各因子组合的第一主成分;利用上一步计算所得的各个因子第一主成分预测股票价格走势。

2.多因子—我们来玩排列组合(几因子组合才是最佳)

国信证券,选择了23个因子,通过穷举的方法组合构建了23个单因子模型、253个双因子模型、347个三因子模型、520个四因子模型以及300个五因子模型,通过分析他们的历史表现,得出因子边际效用递减的结论。

本文依据该研报依据因子区分度与贡献度的概念,对列举的因子进行筛选,选出排名最前的5个因子。以选取的5个因子为例,进行排列组合,构建这些因子的单因子模型、双因子模型以及三因子模型,比较分析它们的回测情况。

因子贡献度的思路是将股票池中的股票按因子进行排名,分别选出排名靠前的20%和排名靠后的20%股票构成两个组合。两个组合的收益率相差越大,则说明该时点此因子的强度越高。选出了,RSI、LCAP、PB、ROE、NetProfitGrowRate 这5个因子

1.单因子模型回测:

2.双因子模型回测:

3.三因子模型回测

各因子模型横向比较

优矿提供了大量因子,但怎么用这些因子才合适,在使用中哪些因子适用短期预测,那些适用长期,本文给出了一个解决方法用相对高频的数据预测低频数据。

如何区分因子属于长期因子还是短期因子长期因子:随价格缓慢变动,所以变化更慢,平缓,理论上应该更低频率(长波)

短期因子:随价格迅速变动,所以变化更快,陡峭,理论上应该更高频率(短波)

如何区分长短波

总结下,有3点

1.方差,如果连续信号方差应该较小(实际还可能和波动幅度有关)

2.均值交叉点,曲线按照均值平移,均值为0轴,交点多少可以反映出频率大概情况。实际是因子做diff然后计算反转个数替代。

3.相关系数 (这里没做考虑)

方差

1.因子先做差分diff

2.差分后因子在一定时间内的 “相对均值标准差=标准差/均值” 作为频率的衡量

3.如果频率高于价格closeprice对应的频率,就认为比基准更高频,可以使用

4.如果低于closeprice频率,认为因子属于长期因子,不适用短期预测

交叉点法

1.对因子做差分diff(后面的因子都是指差分后的)

2.差分后因子相邻的两天,如果有正负变化,认为有一次交叉

3.统计周期内closeprce的正负变化次数为基准,差分后因子次数,如果因子高于closeprice基准则认为高频,可以采用。否则不用

第一种方法找出 76个短期因子,第二种方法找出95个短期因子。

取交集后有76个因子,都是方差法得到的

['CMO', 'PVT6', 'EMV6', 'TRIX5', 'DIZ', 'MA10RegressCoeff6', 'DIF', 'MTM', 'TEMA10', 'ACD20', 'MA10RegressCoeff12', 'KDJ_D', 'BIAS20', 'BR', 'MTMMA', 'DEA', 'EMA12', 'ChandeSU', 'KDJ_K', 'ARBR', 'PLRC6', 'TRIX10', 'SwingIndex', 'PVT', 'Elder', 'SRMI', 'VDIFF', 'BIAS60', 'APBMA', 'CCI5', 'CR20', 'RC24', 'PVI', 'OBV', 'DownRVI', 'DBCD', 'BearPower', 'CCI88', 'JDQS20', 'BIAS5', 'VDEA', 'AD', 'EMA26', 'TVSTD6', 'STM', 'ADTM', 'ACD6', 'KDJ_J', 'Ulcer10', 'CCI20', 'TVSTD20', 'PLRC12', 'AR', 'BullPower', 'DIFF', 'AroonUp', 'ASI', 'BollDown', 'ROC6', 'CoppockCurve', 'ChaikinVolatility', 'TEMA5', 'BIAS10', 'ROC20', 'DDI', 'ADXR', 'EMV14', 'plusDI', 'ChaikinOscillator', 'Hurst', 'CCI10', 'KlingerOscillator', 'Aroon', 'TVMA6', 'RC12', 'NVI'])

简单的看几个

CMO:钱德动量摆动指标(Chande Momentum Osciliator),与其他动量指标摆动指标如相对强弱指标(RSI)和随机指标(KDJ)不同,钱德动量指标在计算公式的分子中采用上涨日和下跌日的数据。属于超买超卖型因子。

PVT6:因子PVT的6日均值。属于趋势型因子

EMV6:简易波动指标(Ease of Movement Value),EMV将价格与成交量的变化结合成一个波动指标来反映股价或指数的变动状况,由于股价的变化和成交量的变化都可以引发该指标数值的变动,EMV实际上也是一个量价合成指标。属于趋势型因子

文中采用方差法做成一个工具

给出希望的周期,输出适合此周期的因子列表(其实是比此周期高频因子)

注意:由于方法返回的是频率高于cycle对应均线的频率,使用时可能cycle=5得到的结果中去掉cycle=53=15的结果。虽然严格来说高频信号会影响低频信号(昨日价格也会影响20日均线走势),但是力度很弱。

所以感觉比较合理的是 适合5日周期的因子=getSuitFactor(cycle=5)-getSuitFactor(cycle=53)-getSuitFactor(cycle=int(5/3))

一个工具包,把各因子按照最高最低1/10排列,每5天进行一次调仓,来测算近一段时期的有效因子情况,按周、半月、一月、一季度、近半年、近一年分别排序。

演示如何利用quick_backtest把大量的因子进行批量的测试

按照IR排序

画出具体因子的对冲后累计收益图:

找到了因子,如何进行组合也是需要解决的问题。本文利用 AlphaHorizon 研究了几个常见因子,并初步尝试了多因子的组合(采用QEPM中的最大化因子IC_IR的优化方法);进一步回测了多因子合成的选股因子。

因子数据均进行以下处理:

winsorize,去极值neutralize,中性化,消除行业和风格因子等的影响

standardize,标准化

orthogonalize,残差正交化调整,因子间存在较强同质性时,使用施密特正交化方法对因子做正交化处理,用得到的正交化残差作为因子

使用多因子等权合成新因子,单纯做多因子最大的20%股票组合,年化收益率32.0%,阿尔法27.2%,信息比率达到3.79;多头组合对冲中证500指数后年化收益27.0%,最大回撤仅5.8%;

在使用QEPM中的最大化因子IC_IR的优化方法组合多个因子后,能够明显提升因子选股的稳定性,信息比率达到4.0,对冲指数后最大回撤仅4.4%;

原文链接:

因子那么多,怎么用才有效?

多因子—我们来玩排列组合

工具_因子筛选,因子高低频,因子贡献度

克隆!测算近期的最强因子

利用Quartz quick_backtest参数调优

MultiFactors Alpha Model - 基于因子IC的多因子合成

alpha因子常见问题_多因子小技巧整理相关推荐

  1. 做网页很实用代码集合和CSS制作网页小技巧整理

    做网页很实用代码集合 控制横向和纵向滚动条的显隐?<body style="overflow-y:hidden"> 去掉x轴 <body style=" ...

  2. 日常开发CSS小技巧整理

    日常开发CSS小技巧整理 1.解决inline-block元素设置overflow:hidden属性导致相邻行内元素向下偏移 .wrap {display: inline-block;overflow ...

  3. Tensorflow小技巧整理:修改张量特定元素的值

    Tensorflow小技巧整理:修改张量特定元素的值 最近在做一个摘要生成的项目,过程中遇到了很多小问题,从网上查阅了许多别人解决不同问题的方法,自己也在旁边开了个jupyter notebook搞些 ...

  4. 实用计算机操作方法,电脑操作教程_电脑常用小技巧_电脑操作技巧

    快捷键是很多电脑高手操作电脑最常用到的,通常我们会发现,实际电脑操作中,很多麻烦的电脑操作,完全可以通过简简单单的组合快捷键轻松完成,相比一般操作方面,大大提升了工作效率.下面就让小编带你去看看初学者 ...

  5. python写因子策略_单因子策略进阶版 本篇延续(第三期:单因子策略入门版),介绍如何使用优矿平台编写策略代码,以股息率作为择股条件,自动筛选出股息率前十名的股... - 雪球...

    来源:雪球App,作者: 爱喝豆汁的投资者,(https://xueqiu.com/2680567071/130470562) 本篇延续(第三期:单因子策略入门版),介绍如何使用优矿平台编写策略代码, ...

  6. html制作nba网页,NBA篮球_实用电脑小技巧:通俗解答html 自己动手建一个非常简单的网页_沪江英语...

    沪江小编:对于很多人来说,电脑应该算是使用频率最高的工具了,可是你真的会用电脑么?实用电脑小技巧,用最简单明了的方式给你无比有趣的电脑使用新体验. html是什么,什么是html通俗解答: 通俗的讲h ...

  7. javascript开发技巧训练_学好这些小技巧,帮你写出更好地JavaScript

    近几年来随着前端发展的日益成熟,JavaScript的日渐受到重视,以及Node.js方案变得越来越可行,我们对JavaScript程序员的需求也正在持续增长. 图片源自网络,仅做配文展示 从需求比例 ...

  8. 教师节html源码,教师节_实用电脑小技巧:通俗解答html 自己动手建一个非常简单的网页_沪江英语...

    沪江小编:对于很多人来说,电脑应该算是使用频率最高的工具了,可是你真的会用电脑么?实用电脑小技巧,用最简单明了的方式给你无比有趣的电脑使用新体验. html是什么,什么是html通俗解答: 通俗的讲h ...

  9. winform在表格中输入一个完整的时间字段_【ArcGIS小技巧视频教程】(5):在ArcGIS中挂接其他数据...

    ​我们在制图的过程中可能会遇到这样的问题:我们在拿到一幅地图和一些表格数据,我们想把表格数据附属到地图上,并进行渲染显示.今天我们就分享一下如何将一些外接的表格数据,挂接到已有地图的属性表上,文末附视 ...

最新文章

  1. el表达式 java_java基础学习:JavaWeb之EL表达式
  2. 杭电1860--统计字符
  3. Python3——函数
  4. OpenResty(nginx)操作mysql的初步应用
  5. tushare pro积分规则
  6. 什么是LoRa协议?
  7. 关于KX混响插件:REVERB R详解
  8. 北京奥运会赛事电视直播表(绝对完整)--每天就抱着电视看吧!
  9. 2017全国计算机高校排名,全国计算机专业大学排名_2017计算机专业大学排名
  10. 谈谈SVM和SVR的区别
  11. 资产管理3大重要性,你还不知道吗?
  12. linux usb 全向麦克风,派尼珂USB视频会议全向阵列麦克风NK-OM300U
  13. PS学习-风光照片综合处理(二)--湛蓝雪山
  14. teradata ttu_【Teradata TTU】Windows TTU安装工具列表,
  15. oracle scott用户来历,Oracle应用之Scott用户简介
  16. python工程师工资条_python + excel工资条自动生成
  17. C语言:实验5-1 使用函数计算两个复数之积.2021-07-23
  18. <STM32>STM32CubeMX-ADC采集(软件触发)(4)
  19. Mapgis比例尺和出图
  20. 庖丁解牛:Xshell连接虚拟机中的Linux时经常自动断开,断开之后还很难连接上

热门文章

  1. CountDownTimer用法详解
  2. 什么是usbmuxd? iDevice通过USB与桌面系统通信原理小科普
  3. 树的应用 —— 树的存储
  4. mysql到hive数据类型转换
  5. Matlab中函数句柄总结复盘(一)
  6. ping 与 traceroute 的工作原理分析
  7. 微信小程序自定义导航栏单独设置某些页面胶囊背景色,微信小程序setNavigationBarColor无效,微信小程序更改右上角按钮背景色
  8. 现金日记账[Cash Journal][FBCJ][BAPI][BAdI]
  9. Android面试专题系列(四):Activity之间如何进行通信→LiveDataBus
  10. 12306 出票的一种算法设计