暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

R语言逻辑回归Logistic选股因素模型交易策略及沪深300指数实证

拓端数据部落 2023-04-06
287


全文链接:http://tecdat.cn/?p=32071


随着中国的证券市场规模的不断壮大、市场创新不断深化、信息披露不断完善、市场监管不断强化,随着现代投资组合理论的发展和计算机技术的进步,投资者为了在股票交易中取得更多的收益,就需要有合理有效的投资策略,因素模型的基础上发展出众多量化研究模型点击文末“阅读原文”获取完整代码数据

相关视频


对于这些模型的研究能够帮助投资者有效的跟踪市场的变化,为得出更好的投资策略而提供帮助。Logistic选股模型正是这些众多模型中的一个。

因素模型

因素模型是建立在证券收益率对各种因素或指数变动具有一定敏感性的假设基础之上的一种模型。证券的收益率具有相关性,这种相关性是通过对模型中的一个或多个因素的共同反应而体现出来。证券收益率中不能被因素模型所解释的部分被认为是各种证券的个性,因而与其他证券无关。因素模型也被称为指数模型(Index model)或夏普模型(Sharp model)。

研究思路

本文以多因素模型在股票交易中的应用为背景,帮助客户针对Logistic选股模型的理论基础以及模型原理方面分析Logistic选股模型的可行性与稳定性。为保证模型的可靠和稳定,使用过去五年的历史数据来检测模型。

Logistic模型在股票交易中的选股策略

结合以上多因素模型与Logistic回归分析的知识可以得到基于Logistic选股模型。这里采用沪深300指数作为基准,将沪深300中的个股作为研究对象,研究其收益率超过沪深300股指收益率的概率。

这里Logistic选股模型研究的窗口期选择为一个月,在当月的最后一个交易日以股票或指数投资组合的收盘价买入股票或指数资产组合,在次月的最后一个交易日以股票或指数投资组合的收盘价卖出股票或指数资产组合。

这样将即可以使用Logistic回归分析结合历史数据对组合中每支股票进行回归分析。利用回归分析结果预测每只股票下个月收益率大于指数投资组合收益率的概率,这时我们选取预测中收益率大于基准收益率概率排名前40支股票,等权重组合,在当月的最后一个交易日以收盘价买入,在次月的最后一个交易日以收盘价卖出。如此即为Logistic选股模型的交易策略。

实证结果分析

#读取数据

file=list.files(".",pattern=".Rdata")

 

for(i in file)load(i)

#计算对数收益率
data$return2=c(0,( log((data$CLOSE.y[-1])/data$CLOSE.y[-nrow(data)])))


合并因子数据和收益率数据

经过对模型的检验得到以下结果:

逻辑回归收益分布

 

逻辑回归收益的直方图 可以看到大部分收益分布在大于0的区域。


点击标题查阅往期内容


R语言金融市场量化交易:布林带、价差策略、RSI交易策略,回测COMP 226


左右滑动查看更多


01

02

03

04



图中显示了根据模型所选股票在当期的收益率分布。从图中可以看出大部分股票收益率分布在0%至-10%之间,将近半数的股票在其交易当期内具有小额负收益。

这个图横轴代表时间。纵轴代表使用逻辑回归模型结果在不同时间点的收益。

累计收益

  

组合累积和基准累积

这个图横轴代表时间。纵轴代表使用逻辑回归模型结果在不同时间点的收益率:

通过图中对利用Logistic选股模型选出的组合的收益率和基准收益率的对比可以看出看出通过Logistic选股模型选出的组合具有一个较平稳的收益率,而且在绝大数的时间内收益率超过了基准收益。由此可以看出Logistic选股模型具有一定的稳定性和有效性,在绝大多数的情况下可以选出收益率高于基准收益的组合。

组合和基准每月的收益率的对比图

逻辑回归模型结果

Deviance Residuals: 
Min 1Q Median 3Q Max
-0.86049 -0.32622 -0.05835 -0.00147 2.24675

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 7.199e+00 9.101e+00 0.791 0.429
SHARE_TOTALTRADABLE -9.482e-10 1.934e-09 -0.490 0.624
MKT_CAP -4.653e-11 5.952e-11 -0.782 0.434
MV -1.687e+00 2.033e+00 -0.830 0.407
pe -9.811e-02 1.128e-01 -0.870 0.384

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 16.081 on 41 degrees of freedom
Residual deviance: 11.560 on 37 degrees of freedom
(1 observation deleted due to missingness)
AIC: 21.56


总结

构建了Logistic选股模型,并利用历史数据经行回测,验证模型的有效性,并根据实验数据得到结果证明Logistic选股模型可以在大部分情况下为投资者选出一个收益率能够超过基准收益的投资组合。但是本文的研究也可能存在以下问题和漏洞:

  1. 本文选取了过去5年的历史数据,其中会有较多的数据缺失,数据缺失较多的股票不会计入模型,可能会造成结果的偏差。

  2. 对于部分股票具有数据缺失,在经行Logistic回归分析的时候会造成回归结果的不准确,从而影响最终结果。

  3. 本文中只是选取前3年的数据经行Logistic回归分析,在计算更近时期的收益时,并没有加入之后新的因子数据经行计算,可能造成分析的不准确。

  4. 本文只是解析了Logistic选股模型的原理并构建模型加以验证,其中没有对因子的选取进行验证,不能保证所有的因子都具有极大的相关性,其中也可能会有部分因子导致结果的偏差。

  5. 在实验中所用到的数据可能由于现实中信息披露的可靠性、稳定性、时效性等问题导致实验结果不是完全的可靠。

  6. 本文中忽略了如果使用Logistic选股模型经行交易对市场的影响。

  7. 本文采用的是以季度发布的数据,实验中不能对季度中因子变化导致的影响作出分析。

参考文献

[1]:黄志文. Logistic选股模型及其在沪深300中的实证[R].国信证券,2010.

[2]:黄志文.传统多因素模型及其在沪深300 中的实证[R].国信证券,2010.

[3]:滋维·博迪.投资学[M].第九版.机械工业出版社,2012;127-172.



本文中分析的数据分享到会员群,扫描下面二维码即可加群!




点击文末“阅读原文”

获取全文完整代码数据资料


本文选自《R语言逻辑回归Logistic选股因素模型交易策略及沪深300指数实证》。


点击标题查阅往期内容

【视频】量化交易陷阱和R语言改进股票配对交易策略分析中国股市投资组合
使用R语言对S&P500股票指数进行ARIMA + GARCH交易策略
R语言量化交易RSI策略:使用支持向量机SVM
R语言资产配置: 季度战术资产配置策略研究
R语言动量交易策略分析调整后的数据
TMA三均线股票期货高频交易策略的R语言实现
R语言时间序列:ARIMA GARCH模型的交易策略在外汇市场预测应用
R语言基于Garch波动率预测的区制转移交易策略
r语言多均线股票价格量化策略回测
使用R语言对S&P500股票指数进行ARIMA + GARCH交易策略
Python基于粒子群优化的投资组合优化研究
R语言Fama-French三因子模型实际应用:优化投资组合
R语言动量和马科维茨Markowitz投资组合(Portfolio)模型实现
Python计算股票投资组合的风险价值(VaR)
R语言Markowitz马克维茨投资组合理论分析和可视化
R语言中的广义线性模型(GLM)和广义相加模型(GAM):多元(平滑)回归分
PYTHON用RNN神经网络LSTM优化EMD经验模态分解交易策略分析股票价格MACD
R语言深度学习:用keras神经网络回归模型预测时间序列数据
【视频】CNN(卷积神经网络)模型以及R语言实现回归数据分析
Python TensorFlow循环神经网络RNN-LSTM神经网络预测股票市场价格时间序列和MSE评估准确性
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类
RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测
结合新冠疫情COVID-19股票价格预测:ARIMA,KNN和神经网络时间序列分析
深度学习:Keras使用神经网络进行简单文本分类分析新闻组数据
用PyTorch机器学习神经网络分类预测银行客户流失模型
PYTHON用LSTM长短期记忆神经网络的参数优化方法预测时间序列洗发水销售数据
Python用Keras神经网络序列模型回归拟合预测、准确度检查和结果可视化
Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析
R语言中的神经网络预测时间序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告
R语言深度学习:用keras神经网络回归模型预测时间序列数据
Matlab用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
MATLAB中用BP神经网络预测人体脂肪百分比数据
Python中用PyTorch机器学习神经网络分类预测银行客户流失模型
R语言实现CNN(卷积神经网络)模型进行回归数据分析
SAS使用鸢尾花(iris)数据集训练人工神经网络(ANN)模型
【视频】R语言实现CNN(卷积神经网络)模型进行回归数据分析
Python使用神经网络进行简单文本分类
R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析
R语言基于递归神经网络RNN的温度时间序列预测
R语言神经网络模型预测车辆数量时间序列
R语言中的BP神经网络模型分析学生成绩
matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类
R语言实现拟合神经网络预测和结果可视化
用R语言实现神经网络预测股票实例
使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测
python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译
用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类



文章转载自拓端数据部落,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论