多因子选选股MATLAB代码,金工研报:利用卷积神经网络进行多因子选股

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

6524318157ed1b44efbcbcc1011d97aa.png

1、数据获取

用于历史回测数据来自所有A股股票,其中剔除了ST股以及上市3个月的股票,另外,每只股票是做一个样本。回测的区间是从2011年1月31日到2019年1月31日。

2、特征和标签提取

通过CNN进行分类预测时,必然需要进行对特征进行提取并进行标签的标注工作。其中,样本特征是根据每个自然月的最后一个交易日计算82个因子值,作为原始特征。由于卷积神经网络需要提供二维的平面数据,所以这里选取的每个样本数据考虑了5个历史截面期,这样得到的数据就是一个82×5的因子图片了。下面展示了某个股10个因子,5个历史截面期时的因子图片。其中,t表示事件截面的时间周期刻度。这样,如果在一个时间截面上有3000支股票,那么就可以得到3000张个股的因子图片了。

13b6b381ef88dc5ede066a1bc3f6ddd3.png

对于分类问题,其标签是根据下个月的排名进行设置,其中收益前30%的股票作为正例,后30%的股票作为负例,以此作为样本的标签。

3、特征预处理和二维数据生成

这部分主要包括对因子序列去极值,处理缺失值以及对因子序列进行标准化处理等。然后根据前面的要求的形式,将其转换为因子图片,这样在每个月的截面上,就可以得到所有股票池中的截面数据了。下图中列出了用到的82中因子的一部分。

b91b1bafcef08cd46b82123bb61ecb55.png

4、滚动训练集和验证集的合成

由于按照月度滚动的形式进行训练,时间开销会比较大,所以文中采用的是年度滚动的训练方式。即全体样本内外数据分为九个阶段,例如预测2011年时,将2005年到2010年共72个月的数据合并作为样本内数据,预测T年时,将T-6到T-1年的72个月合并为样本内数据,具体如下图所示。

2c4c855e9180e606395c7611e8465f88.png

5、样本内训练

使用卷积神经网络对训练集的数据进行训练。

6、交叉验证调参

随机选取10%训练样本内的数据作为验证集,每次在验证集上的loss达到最小时,停止训练。

7、样本外测试

在确定最优参数之后,以T月截面期所有样本预处理后的特征作为模型的输入,得到对于每个样本的预测值,并将预测值作为合成后的因子,对单因子进行分层回测。

8、模型评价

通过分层回测和构建的选股策略的结果作为模型评价的标准。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533563.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python list tuple 打包 解包_python的打包与解包

python的*与**,在函数的定义与调用过程中,有着不同的作用打包参数:一、函数定义时,形参前加*号(如:*args):收集实参中所有的位置参数,打包成新元组并将该元组赋值给args变量实参位置参数&#x…

python 成员函数 泛型函数_【一点资讯】白学这么多年 Python?连泛型函数都不会写? www.yidianzixun.com...

泛型,如果你尝过java,应该对他不陌生吧。但你可能不知道在 Python 中(3.4 ),也可以实现 简单的泛型函数。在Python中只能实现基于单个(第一个)参数的数据类型来选择具体的实现方式,官方名称 是single-dispatch。你或许听不懂&…

matlab bad apple,【bad apple】matlab制作矩阵苹果~

有屏幕的地方就有bad apple那么作为一名工科生,熟练的操♂作马桶萝卜(matlab)是一项基本技能下面开始讲解如何用matlab制作别具一格的“矩阵苹果”~实验环境matlab R2018a原版bad apple视频技术要求可以即时演算图形可以将处理后的每帧图形合并成新的视频先上代码%t…

服务器ip直接访问php怎么写,php - 如何实现用公网ip访问到服务器上的网页?

服务器系统是Windows Server 2012 R2,已经部署了IIS、PHP和MySQL,能够在云服务器上通过localhost打开php网页,(放在服务器wwwroot上的index.php)已在ISS管理器中添加网站,但编辑网站绑定时,在ip地址中填入了服务器的公…

vb6 打印选项对话框_图纸打印次数太多,不知道哪次才是最新的?用打印戳记区分效果好...

原创:就说我在开发区使用AutoCAD从事设计工作的朋友们不知道有没遇到过这种情况:图纸在反复修改打印的过程中,由于图纸内容高度相似,往往搞不清究竟哪个才是最新版本的图纸了。这种情况下,细致入微地去核对非常麻烦&am…

安卓文本编辑器php cpp,用安卓原生控件封装一个简易的富文本编辑器

最近接到项目需求:移动端原生写一个富文本编辑器。 ( ⊙ o ⊙ )从没遇到过富文本要用原生写的,然后就查阅各种资料。然后结合自己的思路:其实安卓的富文本编辑器就是一个 “容器”。那么接下来我就带给大家说一说我自定义这个富文本编…

python和nltk自然语言处理书评_Python和NLTK自然语言处理

模块1 NLTK基础知识第 1章 自然语言处理简介 31.1 为什么要学习NLP 41.2 从Python的基本知识开始 71.2.1 列表 71.2.2 自助 81.2.3 正则表达式 91.2.4 词典 111.2.5 编写函数 111.3 NLTK 131.4 试一试 181.5 本章小结 18第 2章 文本的整理和清洗 192.…

vue tab切换_iviewUITabs选项卡切换组件

概述 选项卡切换组件,常用于平级区域大块内容的的收纳和展现。源码地址:https://github.com/iview/iview/tree/2.0/src/components/tabs使用: 标签一的内容标签二的内容标签三的内容标签二的内容在源码的tabs文件下有三个文件:ind…

java biginteger 比较大小,java – 打印非常大的BigIntegers

我试图找出与Java 7 x64中的BigIntegers相关的以下问题.我试图计算一个极高功率的数字.代码如下,然后是问题描述.import java.math.BigInteger;public class main {public static void main(String[] args) {// Demo calculation; Desired calculation: BigInteger("4096&…

paypal创建订单后怎么获得id_5步创建Facebook商店(最新版教程)学习如何在Facebook上卖货...

请按照以下步骤设置Facebook商店:步骤1:转到您的Facebook页面并配置Shop页面。步骤2:设置您的商店详细信息。步骤3:配置付款。步骤4:将产品添加到您的Facebook商店。步骤5:管理您的订单。步骤6:…

php 网络图片 转本地,PHP将Base64图片转换为本地图片并保存

PHP将Base64图片转换为本地图片并保存/*** [将Base64图片转换为本地图片并保存]* param [Base64] $base64_image_content [要保存的Base64]* param [目录] $path [要保存的路径]*/function base64_image_content($base64_image_content,$path){//匹配出图片的格式if (preg_matc…

创建索引名称已由现有对象使用_Excel编程周末速成班第3课:Excel对象模型

学习Excel技术,关注微信公众号:excelperfect导语:为了帮助想要快速学会Excel VBA的朋友,特以《Excel Programming Weekend Crash Course》这本书为基础,开始整理一系列资料,在完美Excel社群上分享。一共有3…

php修改htpasswd,用来解析.htpasswd文件的PHP类

.htpasswd 文件示例:user1:{SHA}kGPaD671VNU0OU5lqLiN/h6Q6acuser2:{SHA}npMqPEX3kPQTox/ZckHDrIcQIuser3:{SHA}q1Fh2LTUjjkncp11m0M9WUH5Zrwclass Htpasswd {private $file ;private $salt AynlJ2H.74VEfI^BZElc-Vb6G0ezE9a55-Wj;private function write($pairs …

socket用起始码分割_常用条码Code128码及EAN13码的介绍

在条码打印软件中,设计条码标签时经常用到的码制是Code128码和EAN13码。因为这两种码制比较贴近我们的生活。比如:我们去超市购物,商品上贴的条码标签都是EAN13码,因为EAN13码多用于零售产品包装。而code128码多用于工厂产线&…

matlab在c盘有缓存文件夹吗,win10如何清除C盘缓存文件-win10清除C盘缓存的方法 - 河东软件园...

在电脑的使用过程中我们会发现磁盘的容量会不断减小,更多时候其他磁盘还有很多剩余空间,C盘的存储空间就已经达到极限了。其实在系统的升级和软件的下载中很多文件就会默认储存在C盘,时间久了以后,C盘不仅有软件文件,还…

php 验证码字体居中,自定义验证码图片的宽高后文本垂直水平居中[帝国cms ShowKey.php]-网站程序网...

define(EmpireCMSAdmin,1);define(EmpireCMSAPage,login);define(EmpireCMSNFPage,1);require(../class/connect.php);//绘制居中文本, 对于GD的内置字体function pc_ImageStringCenter($image,$text,$font){//字体大小$width array(1>5,6,7,8,9);$height array(1>6,8,…

python中的常量可以修改吗_深入理解Python变量与常量

变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。常量是一块只读的内存区域,常量一旦被初始化就不能被改变。…

java方法体逻辑不会写怎么办,想自己写框架?不会写Java注解可不行

用注解一时爽,一直用一直爽Java后端开发进入spring全家桶时代后,开发一个微服务提供简单的增删改查接口跟玩泥巴似的非常简单,一顿操作猛如虎,回头一看代码加了一堆注解:Controller Autowired Value,面向注…

联想拯救者y7000加内存条_短测联想拯救者Y7000,到底值不值得买?

7000块左右的笔记本电脑有什么好选择,我相信这是很多人一直纠结的问题,虽然我用过的笔记本很多,但是这个价位的用的少之又少,但随着十代酷睿标压处理器的大量铺货,联想拯救者Y7000进入了我的视线。那到底值不值得买呢&…

php适用于什么服务器,php – 找不到laravel类(适用于localhost但不适用于DO服务器)...

这是一个重复的问题 – 例如:Laravel 4 migrations – class not found但是,我已经尝试了所有解决方案(来自我能找到的每个论坛)并且无法解决这个问题.脚本我在我的本地机器上创建了一个Laravel 4项目 – 添加了一些类,控制器,视图等 – 项目运行良好.然后我将这个新…