量化交易入门——多因子系列

一、量化交易基础与框架

https://www.joinquant.com/view/community/detail/3ca1564dd4831740cc4d0b5a3c01a957 (初识量化交易)
基本的检验策略方法有回测和模拟交易两种方法。
回测是让计算机能根据一段时间的“历史数据”模拟执行该策略,根据结果评价并改进策略。
模拟交易是让计算机能根据“实际行情”模拟执行该策略一段时间,根据结果评价并改进策略。
实盘交易就是让计算机能自动根据实际行情,用真金白银自动执行策略,进行下单交易。

https://www.joinquant.com/view/community/detail/7fe7e01ebbe6082101b4c57a4daaac57 (量化交易策略基本框架)
什么是“初始化+周期循环”框架?
初始化即指策略最开始运行前要做的事。比如,准备好要交易的股票。周期循环指策略开始后,随着时间一周期一周期地流逝时,每个周期要做的事。如周期为天,周期循环每天买100股平安银行。

https://www.joinquant.com/view/community/detail/7570870ccf37ba48007261992d2e543a (下单、函数、API)
https://www.joinquant.com/view/community/detail/04a0251d77b31e782afa0f321c459d10 (读取context中的数据与条件判断)
https://www.joinquant.com/view/community/detail/7f0fa91d27b81f9169c389565832c220 (综合之前所学写一个策略)
https://www.joinquant.com/view/community/detail/767b32fd1f0b46ecc94b30ac37c6f129 (策略评价与建立模拟)
https://www.joinquant.com/view/community/detail/6281e8d7c5a9c58cb5d27d8bd080695d (成长指路)

二、多因子研究、基本面与机器学习

https://www.joinquant.com/view/community/detail/ae7a9d66145d20732146caef58e4fc95?type=1 (多因子基础及流程学习)
广义区分为财务类因子和技术类因子;核心部分即因子的选取和因子的综合评价,因子综合评价主要有两种方法:打分法和回归法。打分法即根据股票的因子值结合因子加权方式得到股票的综合因子值,进而对股票进行综合打分,最终根据综合得分高低选股。打分法相对稳定,受极端值影响小。回归法提高了股票对各因子的敏感性;但从计量角度考虑,回归结果易受极端值影响。

IC是information coefficient的缩写,代表了预测值和实现值之间的相关性,通常用以评价预测能力。 取值在-1到1之间,绝对值越大,表示预测能力越好,IC绝对值大于3%认为因子有效。normal IC与rank IC的区别:https://www.joinquant.com/help/api/help?name=factor#normal_rank_IC
注:当样本股票过少时,IC是没有统计意义的,在对因子做有效性分析时,要保证至少有100只股票,IC才有意义。现在更多的人选择用rank IC来代替普通的IC,这是因为普通的IC求相关系数有一个前提条件,就是数据要服从正态分布,但金融类数据往往并不如此。

IR是Information Ratio,即信息比率,用来衡量单位超额风险带来的超额收益。信息比率越大,说明该策略单位跟踪误差所获得的超额收益越高。因此,信息比率较大的策略的表现要优于信息比率较低的基准。合理的投资目标应该是在承担适度风险下,尽可能追求高信息比率。

可以对一个因子分析它的换手率,注意区分股票的换手率。因子的换手率是在不同的时间周期下, 观察因子各分位中个股的进出情况。 因子分位数换手率的价值体现在两个方面:
1.因子稳定性的体现:换手率低的因子,因子值在时间序列层面的持续性更好。
2.衡量交易成本:实际交易中, 假设投资组合的因子暴露恒定,高换手率因子需要进行更多的交易。 交易中的税费和滑点,也会吞噬掉我们的部分利润。

因子加权:等权法、因子IC加权、因子收益率加权法、因子IC_IR加权法

https://www.joinquant.com/view/community/detail/087af3a4e27c600ed855cb0c1d0fdfed (彼得·林奇的成功投资–PEG法)
计算每只股票的PEG值,并排序,取PEG值最小的前n支股票,作为待买股票即可!其中市盈率的计算方法有多种:市盈率TTM(即滚动市盈率)、市盈率LYR(即静态市盈率)、动态市盈率;不建议用PEG单一因子选股,至少多用几个因子。。。

https://www.joinquant.com/view/community/detail/bcde6092a40c993ba697c70d5477cb89 (从单因子到策略;单因子回测)
https://github.com/JoinQuant/jqfactor_analyzer (单因子分析库)
https://www.joinquant.com/view/community/detail/6cc92bb0a7e5d7a2b8670a3d6ae30640?type=1 (多因子系列报告之一:因子测试框架)
截面回归(Cross-Section Regression)是目前业界较常用于因子测试的方法。为了在单因子测试时得到因子真正收益情况,在回归测试时对市值因子也做了剔除,也就是行业市值中性化。

https://www.joinquant.com/view/community/detail/3709 (因子研究系列之一 ——估值和资本结构因子)
因子模型的好处是,多因子模型的表现相对来说比较稳定,在不同的市场情况下,总有一些因子发挥作用。
《基于有效因子的多因子选股模型》
1.账面市值比 2.盈利收益率 3.PEG 4.股息率 5.现金收益率 6.市销率 7.资产负债率 8.固定资产比例 9.流通市值

https://www.joinquant.com/view/community/detail/3794 (因子研究系列之二 ——成长因子)
偏向于公司盈利能力的指标。
1.ROE 2.ROE变动 3.ROA 4.ROA变动 5.OPTP 6.OPOR 7.NPOR 8.NPOR变动

https://www.joinquant.com/view/community/detail/3910 (因子研究系列之三 ——技术因子)
1.动量 2.换手率 3.波动率 4.方差变动 5.震荡

https://www.joinquant.com/view/community/detail/74e1562633be512f55893e95549401d1 (因子研究系列之四——市值与行业的中性化)

https://www.joinquant.com/view/community/detail/fd9bf8d85320864d6718ed35e16d4c6a (多因子策略入门)
有选股的因子(股票好不好),有择时的因子(好股票什么时候买)。由于择时往往跟技术指标关系紧密,本篇就介绍基本面类的因子,偏财务向。发现小市值和ROE高的股票收益比较高,回测结果显示,收益可以达到42倍之多!空缺数值=本期该字段平均值*上期该字段数值/上期该字段平均值。我们对因子的单位要做一个统一。可以考虑使用排名的方法,对这些因子进行排名。(有的因子绝对值好几十亿(比如市值),有的可能只有十几(收益率)甚至是负的)

https://www.joinquant.com/view/community/detail/f5846d30b1165581e0ae2f611a237429 (量化选股——多因子模型)
(1)估值:账面市值比(B/M)、盈利收益率(EPS)、动态市盈(PEG)
(2)成长性:ROE、ROA、主营毛利率(GP/R)、净利率(P/R)
(3)资本结构:资产负债(L/A)、固定资产比例(FAP)、流通市值(CMV)
没用到机器学习;验证有效的因子怎么组成策略,本文不包括。

https://www.joinquant.com/view/community/detail/46084e11dc11457b9390fac67ae9a173 (Fama-French三因子火锅)
三因子在CAPM的市场风险(即beta)基础上加了 市值风险(即规模),账面市值比风险。其中,市值和B/M这一类因子是对市场整体进行衡量的,而不是对个股的衡量!!!(E(SMB)小市值公司相对大市值公司股票的期望超额收益率,E(HML)则是高B/M公司股票比起低B/M的公司股票的期望超额收益率)

https://www.joinquant.com/view/community/detail/03e1864d053fe14e2eda8231283114e0 (Fama-French五因子模型)
五因子模型比三因子模型里面多出来了两项:E(RMW)是高/低盈利股票投资组合的回报之差,而E(CMA)则是低/高再投资比例公司股票投资组合的回报之差。盈利水平风险、投资水平风险也能带来个股的超额收益。(注意这里的投资水平不是二级市场的投资水平,而可以通俗的解释为企业扩大再生产的能力)

https://www.joinquant.com/view/community/detail/89faa112f17f5d14f17e4df1fd82c0b6 (多因子策略-APT模型)
多元线性回归选股;普通最小二乘法;因子存在多重共线性,选出9个因子;调仓的日期是固定的63天;需要扩充股票池,扩充因子,不要只选沪深300;可以对单独的股票单独寻找因子回归;结合择时策略,收益会更加好。

https://www.joinquant.com/view/community/detail/34210648fd82c7ab35f239adb1e1adc3 (CAPM 模型和公式)
https://www.joinquant.com/view/community/detail/3ead7c865b386095d75ded00469aae9c (CAPM+APT多因子模型)

https://www.joinquant.com/view/community/detail/6b06460716664f6a9d117ce1c7136af3?type=1 (多因子策略研究代码框架)
1.借助机器学习及深度学习工具,获取的因子越多越好
2.指出因子选择的评判标准IC、IR存在问题,忽略了因子之间的相关性。改为机器学习的特征选择方法。(先去除相关性高的特征;用lightgbm算法进行特征选择)
3.基于因子有效性进行选股或择时并回测。
所有分享的策略都不会拿来跑实盘的,真正有效的策略是不会分享的,因为分享出来就不值钱了。网上找一下广发证券的多因子研究报告,里面介绍的很全,可以提供很多有用的方法。可以在训练数据上训练模型,然后在未来的数据上预测,具体怎么训练和调参需要下功夫,本文的代码是不够的。另外选股模块回头也加上,还有风控模块、投资组合模块。

https://www.joinquant.com/view/community/detail/ec91d4ccd49148e09c7d3ab4409dc411?type=1 (基于随机森林和XGBoost的多因子模型分析)
这篇文章做的是研究,没有做策略回测;需要在本地安装jqfactor、jqdata、jqlib等。

https://www.joinquant.com/view/community/detail/3868e9ae199a486760192cecdf5590dc?type=4 (支持向量机模型(SVM)在多因子选股模型领域的应用)
1.如何确定核函数才能使模型更优
2.支持向量机包含两个重要参数,即惩罚系数 C 和 gamma 值,如何确定最优参数
3.如何利用模型的预测结果构建策略组合进行回测
4.如何对回测结果进行评价,从而判断出模型的优劣

66个因子暴露度;中位数去极值、缺失值处理、行业市值中性化、标准化;将收益率数据转化为标签;每个月末选取下月收益排前、后30%的股票分别作为正例、负例;(只考虑上个月对下个月影响,不考虑更远的时序数据?每个月只交易一次?)前4年数据作为验证集,进行K 折交叉验证;随机抽取 1 组做为验证集(10%),剩余 K-1 组训练集(90%);评价指标是正确率、AUC等,是二分类!超额收益预测值与换手率、技术等交易类因子关联性较弱,与基本面类型因子关联性较强。

结论:高斯核收益能力要高于其他核函数模型;绝大多数时候,高斯核SVM的收益能力比SVR模型更强。

我的思考:我不关心svm哪个核好,如何调参,我关心实盘效果,换个区间效果,用机器学习和不用机器学习的多因子模型效果,svm和简单多元线性回归的比较,svm和其他机器学习模型的比较,svm与深度学习模型的比较,还有你的模型如何受消息面、宏观经济环境影响,如何与技术面结合,因子的选择是否比模型更重要,模型实盘后如何持续改进等。

https://www.joinquant.com/view/community/detail/b0bef3c7d78ffaec419ebc3bfa7d9138 (机器学习多因子策略)
需要自己优化完善,似乎没有划分训练集和测试集;本文基于经济学家在2005和2012发表的两篇论文,探究市值因子在我国二级市场中的表现。与传统多元线性回归不同,本文使用支持向量回归(SVR)和随机森林回归两种机器学习算法得到因子。结论表明:SVR算法得到的因子带来的收益率显著优于传统多元线性回归, 而随机森林得到的因子带来的收益率虽略低于多元线性回归,但在经历回撤时拥有更加稳定的表现。

https://www.joinquant.com/view/community/detail/7a63b350815f79bfd4d83ab22d0f291a?type=1 (基于机器学习的多因子选股策略)
1.机器学习选股,更高的收益率和更低的风险?
2.机器学习选股相比传统的线性回归,有没有提升?
3.机器学习算法在不同因子组合下,或者不同持仓数下,或者不同市场环境下的表现有什么差异?(没必要,研究太深;而且换个时间段,可能结果不一样)
4.机器学习调参以及训练集如何影响投资表现?

中证全指成分股;2014年1月1日到2018年7月31日。
因子选取分别从估值,资本结构,盈利,成长四个方面进行考虑。
某个时间点上,股票的市值可以被多个因素解释。在截面上将市值作为样本标签。
数据预处理包括缺失值处理、 离群值处理、标准化处理、中性化处理。
回测参数包括:投资金额、回测区间、佣金及印花税、滑点、仓位、可行股票池、比较基准。
机器学习算法:线性回归、岭回归、SVR、随机森林。(如何调参?)
回测使用市价单下单,并假设不存在买不到或卖不出的现象。
财报和市值数据使用的回测日的前一天数据,从而避免未来函数。

结论:仅从收益角度看,岭回归,SVR和随机森林三种算法,和线性回归类似,也能够得到相对明显的单调的策略收益率。分别将以上ML算法和三组因子组合,得到收益率、夏普率、IR、胜率、盈亏比、最大回撤(组合1、组合2、组合3)。收益和风险的平衡最理想的策略是采用全因子组合的SVR算法策略;SVR最低的收益率也比岭回归及线性回归最高的收益率要略高。随着因子数的增多,线性回归、岭回归的收益率反而下降,而SVR的收益率上升。最大回撤相差不大,没有一种算法也没有一种因子组合有特别的优势;该投资策略本身在风险控制上存在着不足。在市场长期盘整阶段,SVR和随机森林算法基本失效。在长期盘整走势当中应该谨慎用机器学习算法进行量化投资的指导。总体而言,使用网格搜索可以使SVR的模型拟合度更高。但是,使用网格搜索并不能带来收益率的显著上升。
缺点:只有回测,没有模拟、实盘;没有加入技术面因子;没有对冲机制和风控。

你可能感兴趣的:(python,机器学习,算法,概率论)