首先,我们先来看一下通过卷积神经网络选股模型的整体流程,然后再根据每一步流程进行介绍,具体如下图所示:

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代码,金工研报:利用卷积神经网络进行多因子选股相关推荐

  1. 多因子选选股MATLAB代码,MatlabCode 多因子模型构建。多因子模型是量化选股中最重要的一类模型 联合开发网 - pudn.com...

    MatlabCode 所属分类:金融证券系统 开发工具:matlab 文件大小:3946KB 下载次数:283 上传日期:2015-11-11 11:13:39 上 传 者:zhangyiwei 说明 ...

  2. 深度学习实战——利用卷积神经网络对手写数字二值图像分类(附代码)

    系列文章目录 深度学习实战--利用卷积神经网络对手写数字二值图像分类(附代码) 目录 系列文章目录 前言 一.案例需求 二.MATLAB算法实现 三.MATLAB源代码 参考文献 前言 本案例利用MA ...

  3. 智能学习 | MATLAB实现Bee-CNN蜜蜂算法优化卷积神经网络图像分类预测

    智能学习 | MATLAB实现Bee-CNN蜜蜂算法优化卷积神经网络图像分类预测 目录 智能学习 | MATLAB实现Bee-CNN蜜蜂算法优化卷积神经网络图像分类预测 分类效果 基本介绍 模型参数 ...

  4. 实战▍利用卷积神经网络(VGG19)实现火灾分类(附tensorflow代码及训练集)

    作者| 帅虫哥   编辑|布袋熊 利用卷积神经网络(VGG19)实现火灾分类 先看两组数据: <新民周刊>:2018年6月到11月,美国加利福尼亚州的山火断断续续地烧了小半年,到入冬方才算 ...

  5. 金工研报:你的风险模型能预测你的风险吗?

    新开一个文献分享系列.今天分享一篇UBS的研报,获取原文后台回复"paper1". 按照报告的顺序来写吧. 01 Summary  开篇三个要点 风险模型非常重要.通过控制风险,可 ...

  6. 使用matlab深度学习工具箱实现CNN卷积神经网络训练仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning) ...

  7. 利用卷积神经网络(VGG19)实现火灾分类(附tensorflow代码及训练集)

    源码地址 https://github.com/stephen-v/tensorflow_vgg_classify 1. VGG介绍 1.1. VGG模型结构 1.2. VGG19架构 2. 用Ten ...

  8. 【MATLAB教程案例53】CNN卷积神经网络的MATLAB编程学习和实现,以手势识别为例进行仿真分析

    欢迎订阅<FPGA学习入门100例教程>.<MATLAB学习入门100例教程> 本课程学习成果预览(红色箭头为识别错误样本,其余为识别正确样本) 目录 1.软件版本

  9. 【详细代码注释】基于CNN卷积神经网络实现随机森林算法

    随机森林算法简介: 随机森林(Random Forest)是一种灵活性很高的机器学习算法. 它的底层是利用多棵树对样本进行训练并预测的一种分类器.在机器学习的许多领域都有广泛地应用. 例如构建医学疾病 ...

最新文章

  1. Spring ORM示例 - 带有AOP事务管理
  2. OA办公自动化系统~~~SSM整合开发
  3. bucket sort sample sort 并行_Java 中 Arrays.sort 和 Arrays.parallelSort 哪个更快?
  4. security框架工作笔记002---CSRF跨站点请求伪造(Cross—Site Request Forgery)_理解和防御
  5. hnu 暑期实训之7还是7 to_string的实现方法
  6. [转]iPhone发邮件编程
  7. 简短的爬虫程序,14行Python代码轻松实现爬取网站视频
  8. vue基于ECharts的股票行情分时图绘制
  9. jink下载出现:Failed to download RAMCode . Failed to prepare for programming .
  10. MVP、EMC、CRM、IoT、边缘计算盒子、系统群控、数字化赋能、EMS、冷媒
  11. nodejs+express开发微信公众号--配置微信测试号
  12. python中的self理解
  13. Docker-Dockerfile学习
  14. c/c++环境下YOLO4的配置和试运行
  15. 软银集团:从零到一万亿
  16. python3黑帽编程_Python3.7 黑帽编程
  17. IT售前咨询能力范围
  18. Python函数及练习题
  19. unittest的详细说明
  20. jekyll本地构建报错(GitHub Metadata No GitHub API authentication could be found.)

热门文章

  1. H5调用扫一扫(支持非微信环境)
  2. nvue和vue的区别
  3. V831 find_magic(魔方识别)
  4. Ubuntu16.04上安装Quartus18.1
  5. WPF解决Popup窗口随动及显隐
  6. ICDE2020论文简析:空间众包实时交叉在线匹配 - Real Time Cross Online Matching in Spatial Crowdsourcing
  7. Log4J日志打印不到文件
  8. 1 运筹笔记-随机规划(Stochastic Programming)
  9. 【对讲机的那点事】手把手教你制作馈线焊接M头
  10. Linux设备驱动程序-并发和竞态