多因子选选股MATLAB代码,金工研报:利用卷积神经网络进行多因子选股
首先,我们先来看一下通过卷积神经网络选股模型的整体流程,然后再根据每一步流程进行介绍,具体如下图所示:
1、数据获取
用于历史回测数据来自所有A股股票,其中剔除了ST股以及上市3个月的股票,另外,每只股票是做一个样本。回测的区间是从2011年1月31日到2019年1月31日。
2、特征和标签提取
通过CNN进行分类预测时,必然需要进行对特征进行提取并进行标签的标注工作。其中,样本特征是根据每个自然月的最后一个交易日计算82个因子值,作为原始特征。由于卷积神经网络需要提供二维的平面数据,所以这里选取的每个样本数据考虑了5个历史截面期,这样得到的数据就是一个82×5的因子图片了。下面展示了某个股10个因子,5个历史截面期时的因子图片。其中,t表示事件截面的时间周期刻度。这样,如果在一个时间截面上有3000支股票,那么就可以得到3000张个股的因子图片了。
对于分类问题,其标签是根据下个月的排名进行设置,其中收益前30%的股票作为正例,后30%的股票作为负例,以此作为样本的标签。
3、特征预处理和二维数据生成
这部分主要包括对因子序列去极值,处理缺失值以及对因子序列进行标准化处理等。然后根据前面的要求的形式,将其转换为因子图片,这样在每个月的截面上,就可以得到所有股票池中的截面数据了。下图中列出了用到的82中因子的一部分。
4、滚动训练集和验证集的合成
由于按照月度滚动的形式进行训练,时间开销会比较大,所以文中采用的是年度滚动的训练方式。即全体样本内外数据分为九个阶段,例如预测2011年时,将2005年到2010年共72个月的数据合并作为样本内数据,预测T年时,将T-6到T-1年的72个月合并为样本内数据,具体如下图所示。
5、样本内训练
使用卷积神经网络对训练集的数据进行训练。
6、交叉验证调参
随机选取10%训练样本内的数据作为验证集,每次在验证集上的loss达到最小时,停止训练。
7、样本外测试
在确定最优参数之后,以T月截面期所有样本预处理后的特征作为模型的输入,得到对于每个样本的预测值,并将预测值作为合成后的因子,对单因子进行分层回测。
8、模型评价
通过分层回测和构建的选股策略的结果作为模型评价的标准。
多因子选选股MATLAB代码,金工研报:利用卷积神经网络进行多因子选股相关推荐
- 多因子选选股MATLAB代码,MatlabCode 多因子模型构建。多因子模型是量化选股中最重要的一类模型 联合开发网 - pudn.com...
MatlabCode 所属分类:金融证券系统 开发工具:matlab 文件大小:3946KB 下载次数:283 上传日期:2015-11-11 11:13:39 上 传 者:zhangyiwei 说明 ...
- 深度学习实战——利用卷积神经网络对手写数字二值图像分类(附代码)
系列文章目录 深度学习实战--利用卷积神经网络对手写数字二值图像分类(附代码) 目录 系列文章目录 前言 一.案例需求 二.MATLAB算法实现 三.MATLAB源代码 参考文献 前言 本案例利用MA ...
- 智能学习 | MATLAB实现Bee-CNN蜜蜂算法优化卷积神经网络图像分类预测
智能学习 | MATLAB实现Bee-CNN蜜蜂算法优化卷积神经网络图像分类预测 目录 智能学习 | MATLAB实现Bee-CNN蜜蜂算法优化卷积神经网络图像分类预测 分类效果 基本介绍 模型参数 ...
- 实战▍利用卷积神经网络(VGG19)实现火灾分类(附tensorflow代码及训练集)
作者| 帅虫哥 编辑|布袋熊 利用卷积神经网络(VGG19)实现火灾分类 先看两组数据: <新民周刊>:2018年6月到11月,美国加利福尼亚州的山火断断续续地烧了小半年,到入冬方才算 ...
- 金工研报:你的风险模型能预测你的风险吗?
新开一个文献分享系列.今天分享一篇UBS的研报,获取原文后台回复"paper1". 按照报告的顺序来写吧. 01 Summary 开篇三个要点 风险模型非常重要.通过控制风险,可 ...
- 使用matlab深度学习工具箱实现CNN卷积神经网络训练仿真
目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning) ...
- 利用卷积神经网络(VGG19)实现火灾分类(附tensorflow代码及训练集)
源码地址 https://github.com/stephen-v/tensorflow_vgg_classify 1. VGG介绍 1.1. VGG模型结构 1.2. VGG19架构 2. 用Ten ...
- 【MATLAB教程案例53】CNN卷积神经网络的MATLAB编程学习和实现,以手势识别为例进行仿真分析
欢迎订阅<FPGA学习入门100例教程>.<MATLAB学习入门100例教程> 本课程学习成果预览(红色箭头为识别错误样本,其余为识别正确样本) 目录 1.软件版本
- 【详细代码注释】基于CNN卷积神经网络实现随机森林算法
随机森林算法简介: 随机森林(Random Forest)是一种灵活性很高的机器学习算法. 它的底层是利用多棵树对样本进行训练并预测的一种分类器.在机器学习的许多领域都有广泛地应用. 例如构建医学疾病 ...
最新文章
- Spring ORM示例 - 带有AOP事务管理
- OA办公自动化系统~~~SSM整合开发
- bucket sort sample sort 并行_Java 中 Arrays.sort 和 Arrays.parallelSort 哪个更快?
- security框架工作笔记002---CSRF跨站点请求伪造(Cross—Site Request Forgery)_理解和防御
- hnu 暑期实训之7还是7 to_string的实现方法
- [转]iPhone发邮件编程
- 简短的爬虫程序,14行Python代码轻松实现爬取网站视频
- vue基于ECharts的股票行情分时图绘制
- jink下载出现:Failed to download RAMCode . Failed to prepare for programming .
- MVP、EMC、CRM、IoT、边缘计算盒子、系统群控、数字化赋能、EMS、冷媒
- nodejs+express开发微信公众号--配置微信测试号
- python中的self理解
- Docker-Dockerfile学习
- c/c++环境下YOLO4的配置和试运行
- 软银集团:从零到一万亿
- python3黑帽编程_Python3.7 黑帽编程
- IT售前咨询能力范围
- Python函数及练习题
- unittest的详细说明
- jekyll本地构建报错(GitHub Metadata No GitHub API authentication could be found.)