- 博客(41)
- 收藏
- 关注
原创 特征重要性计算方法及神经网络的特征重要性
这是我第63篇文章。这篇文章主要简单讲一些常用特征重要性计算方法及神经网络的特征重要性计算方法。1 几种常用的特征重要性计算方法1.1 树模型特征重要性像xgboost、lightgbm等树模型都有自己计算特征重要性的方法,其特征重要性与特征使用次数和使用特征时带来的增益有关系。增益可以理解为对Loss带来的提升,或与之相类似的指标。基本上特征被用来分裂的次数越多,分裂后带来的增益越大该特征也就越重要。具体特征重要细节大家可以自行网上搜索,或者看这篇文章:https://zhuanlan.zhihu
2022-05-07 17:03:33
6812
原创 指数增强策略的背后
工作之后,一有空闲的时间就想玩想休息,今天抽空写了篇关于指数增强的文章。1. 什么是指数?相信有过一段时间股票投资经验的朋友们都知道什么叫做指数,股票指数具体计算规则比较复杂,其涨跌的幅度主要是根据一些股票的涨跌幅度加权得到的。不同的指数涨跌是由不同的股票集合的涨跌加权计算得到的,而这个股票集也是会不断更新的。A股市场常见的指数有上证指数、深证成指、沪深300和中证500等。不同指数所反应的也是不同的股票集,沪深300的涨跌反应了大市值股票的涨跌,而中证500的涨跌则反应了中小市值股票的涨跌。2.
2022-05-07 17:01:23
1127
原创 量化建模时常见的数据穿越问题
这篇文章将会介绍一下量化建模时常见的数据穿越问题。何为数据穿越?对于t时刻训练得到的模型必须用t时刻之前的数据训练,如果t时刻用到t时刻以后的数据则会产生数据穿越问题。我碰到比较多的数据穿越问题主要有三种:1.训练集和测试集有交叉;2. 特征穿越;3. 数据筛选穿越。1. 训练集和测试集有交叉即训练集中混入了部分测试集。排除代码写错的情况下,有时候也会很容易犯这种错误。那为什么会出现这种情况的?举个例子,我的预测目标为20天后的收益率。回测时,我每30天滚动训练一次模型。假设一开始的训练集是从第1天
2022-05-07 16:57:08
2069
2
原创 深度剖析为何选取相关性系数评价因子
这篇文章将会结合理论深度剖析为何选取相关性系数作为评价因子有效性的指标之一,以及结合中国期货市场分析不同情况下的因子相关性的最低要求。在因子投资策略中,经常会选取某因子或合成因子排名靠前的股票投资,那如何评价因子的有效性呢?一个最常用的评价指标就是IC(information correlation),也就是皮尔逊相关性系数。假设y是因子的取值,x是下一个周期的收益率,那么因子的IC计算公式如下:其中D(x)表示x的方差。在查看一些资料中,经常会看到一个因子如果IC值大于0.03,那么这个因子可以称
2020-11-22 10:29:56
1978
原创 时间序列问题上的可解释机器学习的benchmark方法
今天这篇文章介绍一篇机器学习可解释的文章,该篇文章主要提出了一种时间序列问题上的机器学习可解释方法的benchmark。文章链接:https://arxiv.org/abs/2010.13924虽然目前可解释方法研究不成熟,但本篇文章我个人觉得还是比较有意思的,值得一看。由于本人在可解释机器学习上积累不多,文章读起来有些吃力,文章中对目前一些可解释方法的分析部分比较难理解(很多地方我也是带着猜测理解的),但文章的核心方法很好理解。后文将会介绍本人对这篇文章的理解,可能会与原文内容有所偏差,敬请谅解。
2020-11-22 10:26:59
2014
原创 基于深度学习的股票超短策略
我花了点时间写了个利用神经网络模型的选股策略供大家学习参考使用。股票的策略思路还是超短策略,具体就是当天尾盘买入,第二天尾盘卖出。我之前也曾用lgb做过类似的策略,具体可以看(送你一份年化100%+的策略)。对于机器学习任务的流程不熟悉的朋友可以网上找资料,也可以看(利用机器学习从0到1开发量化选股策略)。这篇文章中我把lgb换成了神经网络模型。本篇文章分为5部分,分别是: 1. 数据准备;2. 特征构建,标签的制作;3. 特征标准化;4. 模型构造及训练;5. 回测。1. 数据准备使用的数据是tu
2020-11-22 10:20:08
2108
原创 期货ML策略(三)基于交易信号的回测
接上一篇文章(期货ML策略(二)构建机器学习模型),这篇文章开始对上一篇的结果进行回测分析。上一篇文章中我简单的介绍了如何构建ML模型。当在实盘的时候,每隔一分钟我们可以获取到不同合约的实时数据(1分钟k线数据),然后构造需要的特征并将其输入模型中。模型会根据输入的特征输出20分钟后上涨概率,当达到预先设定的阈值时对其做多或做空。在回测的过程中,为了加快回测的速度,我们只需要提前计算好在何时买入,何时卖出即可。考虑到当获得K线数据之后不能马上给出交易信号,并且存在一些时间差,所以回测的时候延后1分钟交易
2020-06-24 19:56:00
2268
1
原创 期货ML策略(二)构建机器学习模型
接上一篇文章(期货ML策略(一)数据获取),这篇文章开始构建机器学习模型。如何构建一个机器学习模型,其最本质还是要看你需要机器学习为你做什么贡献。我这边希望能够利用机器学习帮助我预测未来一段时间上涨还是下跌,这样我就可以对应进行做多或者做空。太高频的策略一般会比较耗费手续费,太低频的策略又容易出现很多意想不到的巨额损失,因此需要设置一个合理的预测时间,这个时间我设置的是20分钟(期货是T+0操作)。通过模型预测20分钟后的涨跌情况,策略进行相应的做多或做空(有点像我之前的超短策略)。训练一个传统的机器学
2020-06-24 19:53:53
2275
原创 期货ML策略(一)数据获取
最近要开始研究期货上的机器学习(Machine Learning)策略了。相信关注我的朋友已经多多少少知道一些有关机器学习的基础知识了,对于机器学习的基础知识我这边不会介绍,只会简单的提一下,不懂的朋友自行网上搜索资料学习。未来一段时间里,我将会利用所学的知识开发一个期货上的ML策略。策略思路如下:交易时间内每分钟从主力合约(可以理解为交易活跃的股票)中选取未来几分钟内极大可能有较大的涨幅或跌幅的合约,对他们进行做多或做空。非常像我之前做的股票策略一样,挑一只未来很大可能上涨的股票对它进行买入操作(送你一
2020-06-24 19:50:13
1915
1
原创 对于CNN应用的一些思考及一些讨论社区推荐
周五我抽空又尝试了一下基于CNN的选股方案,效果也不太好,就不放上来了。于是我想看看其他人实现的比较好的结果。然后我发现了其实很多量化策略平台都有自己的交流社区,交流社区上会有一些方案、研报和基础知识分享。如下图:有需要的朋友可以收藏以下链接:Bigquant社区:https://bigquant.com/community/Ricequant社区:https://www.ricequant.com/community/category/allJoinquant社区:https://www.joi
2020-06-24 19:41:58
551
原创 大盘涨跌预测及仓位控制思考
今天分享一篇个人在大盘涨跌上的预测及通过涨跌预测延伸的仓位控制思考。大盘的择时个人一直认为是股票量化中最重要的部分(普通的策略)。一个好的择时方法,虽然可能会让部分盈利变少,但能够大大的降低回撤。很多策略虽然有很高的收益,但其回撤也是巨大的。基本上越有钱的人越看重策略的回撤,可以说如果一个策略的回撤超过10%都不算好的策略,当然有些人可能要求更高。如何进行大盘择时呢?一个很简单的想法就是预测大盘的涨跌。尤其是超短策略,能够预测出第二天的涨跌对超短策略能有很大的帮助(我这里所说的超短策略主要是指:送你一份
2020-06-24 19:40:02
1971
原创 从图形角度利用神经网络进行选股
做了一个很low的基于神经网络的选股策略,回测效果惨淡,仅供大家学习使用,带大家入门深度学习。问题转化与模型选择首先对于选股这个问题,如果要利用神经网络的话,需要将其转化为有监督学习问题,一般情况下都是转化为有监督学习问题。有监督问题可以分为分类与回归问题。这里我将其转化为二分类问题,即预测第二天是否上涨,建模方式与之前文章相同(送你一份年化100%+的策略)。当然也可以分成多个类别,表示不同程度的涨幅或跌幅。如果用神经网络的话,目前一般会设计基于CNN的模型或基于LSTM的模型。这里我选择了CNN进
2020-06-24 19:38:11
981
原创 九坤德州扑克第一名方案分享
1 前言本人在于4月22号在量化投资公众号上看到了九坤投资举办的比赛,抱着拿个offer的心态参加了第三届第三期的德州扑克AI对抗赛,并侥幸获得第一名(运气还是占了比较大的成分),现分享自己的方案。比赛链接为:比赛链接2 德州扑克规则这里简单介绍一下德扑规则。一开始每人都会有自己的两张起手牌(只有自己能看见),第一轮会出现三张公共牌,第二轮发第四张,第三轮发第五张。每一轮都可以根据自己的牌型选择下注,跟注,加注,弃牌。在最后一轮结束时如果还有两位以上的选手在场需要翻出手牌比大小。3 方案介绍3.
2020-06-24 19:32:56
1942
原创 我对利用机器学习开发量化策略的看法
这篇文章谈谈我对利用机器学习开发量化策略的看法。我从去年年底开始决定用自己所学的知识开发一套属于自己的交易策略,到现在已经断断续续做了4个多月了。这里有一些思考与想法可以与大家分享。1 不要觉得机器学习很厉害我一直有一种想法,就是机器学习能自动从一大堆特征中挑出有效的特征并且能自己从中学到重要的信息。这种想法是不对的,因子的挑选非常重要,有些因子加进去只会让模型过拟合历史。比如我之前把月份这...
2020-04-21 13:21:44
832
原创 股票实时行情获取及特征计算
这篇文章介绍一下实时行情的获取。对于一个中线策略,如果能够获取到实时行情然后尾盘买入,我觉得这个策略成功率盈利能力都会更高一些(比开盘买入好吧)。因此我花了点时间研究了下实时行情获取及计算实时特征。首先可以利用easyquotation包获取实时行情,包的github地址:https://github.com/shidenggui/easyquotation。安装方法:利用pip安装:pi...
2020-04-05 09:41:37
1161
原创 期货套利策略(二)
接上一篇期货套利策略,随着对期货套利策略的深入了解,我发现套利策略不是那么好做的。下面将会讲碰到的一些问题。上一篇文章中没有考虑滑点的问题,这里我们把滑点问题考虑进去。这里先说一些天勤api的买入点,天琴的买入点是当前K线的收盘价。碰到数据传输问题,还有计算等各方面问题,实际情况是无法在当前K线的收盘价买入的。这里我们把这方面问题考虑进去,利用api.wait_update()调到下一个k线数据...
2020-04-05 09:41:00
1542
原创 利用机器学习搭建选股策略并进行荐股的完整代码
我花了点时间整理了一下利用机器学习从0到1进行选股荐股的代码。教程链接:https://mp.weixin.qq.com/s/_izKXsyUcfmhl5rpnqTEgw。代码github,欢迎fork和star:https://github.com/wbbhcb/stock_market/tree/master/模型训练回测到荐股说明:此代码与链接中的稍有不同之处。不同点:1、买入点为第...
2020-04-05 09:40:27
2921
1
原创 期货套利策略(一)
之前有个大哥找我合作,叫我帮他写期货的套利策略。因此我的股票策略开发暂时放一边,先帮他做期货套利策略。期货的自动交易不像股票,股票的交易接口受到限制不开放给普通交易者,而期货的交易接口普通交易者很容易获得。网上有很多期货交易的回测和实盘交易开源框架,比较有名的就是vnpy,但是vnpy看的我头大,于是我换了天勤的开源框架(入门简单快捷,文档说明写的也比较好)。因为本人也是刚接触期货交易几天时间,...
2020-04-05 09:39:54
5646
2
原创 仓位控制策略(三)
最近一直在做仓位策略主要是吃了一波利润回撤,回撤还挺多的,有点痛苦。痛定思痛开始研究仓位控制。个人觉得仓位控制的好能够很好的控制风险,大盘差的时候一个小仓位能减少很多损失,大盘好的时候仓位大买什么都赚钱。先看3月13号做出来的策略,如下图。这个仓位控制策略主要是以均线趋势为主,有个很明显的缺点就是滞后性,均线的滞后性。在超跌之后的大反弹不能及时抓住上涨行情,在逃顶过程中,虽然加了第8条规则,...
2020-04-05 09:39:18
8655
1
原创 仓位控制策略(二)
仓位控制的重要性:仓位设置的合理,不仅能减少回撤,也能稳定盈利;仓位设置的好,随便选股也基本能得到一个较好的收益。比如下面这幅图,一个大佬的盈利情况,仓位控制的非常好,回测非常小!目前仓位设置的规则如下:(1) 如果大盘收盘指数在3天均线上,加一层仓。(2) 如果大盘收盘指数在10天均线上,加2层仓。在10天均线下,并且偏离10天均线3%以内,加1层仓。在10天均线下,并且偏离10天均线6%...
2020-04-05 09:38:49
2992
原创 目前的量化系统架构设想
量化系统主要分为三部分选股择时系统、交易系统、风控系统。选股择时系统负责选出第二天可买入的股票;交易系统负责买卖操作;风控系统会根据个股和大盘情况控制风险。1、选股择时系统利用LightGBM模型(LGB)进行选股与择时。LGB是一种集成树模型,是目前数据挖掘领域中最好用的几种算法之一,其Boosting算法可以对特征进行一定程度的筛选以及去冗余。在每日收盘之后策略会计算出各支股票的特征,这...
2020-04-05 09:37:49
1595
原创 因子挖掘之主力拉升探究
在机器学习领域有一句话叫,特征决定模型的上限,而模型的选择或优化只是去逼近这个上限。(大概是这个意思)由此可见,特征或因子的挖掘是非常重要的。下文中的因子即表示特征,特征即表示因子。一、业务角度挖掘特征(从主力拉涨的角度挖掘特征)先看下面这个k线图,可以发现在上涨阶段,当股价上升时成交量往往是放大的,因为此时需要放大成交量打败空头,而股价下跌时成交量往往会减少,这是主力往往处于休息状态或处于打...
2020-04-05 09:37:00
1138
原创 一个简单的仓位设置策略(适合实战!)
一个成熟的量化策略通常都会包含三部分:选股、择时以及风险控制。如果要给这三部分的重要性排序,我的排序为:风险控制>择时>选股。在进行投资的过程中,保本是第一步,赚钱才是第二步,所以对于风险的控制格外的重要。如果对于风险的控制不合理,即使短期运气好赚了很多钱,在长期而言赚的也会亏回去甚至把本也亏完。择时就是买入或卖出时机。选股就是股票的选择。接下来我将会介绍一下我瞎设计的风险控制策略...
2020-04-05 09:36:00
3979
原创 教你利用机器学习从0到1打造量化选股策略
这是一篇对前面部分内容的一个总结,利用机器学习从0到1开发量化选股策略。本篇文章没有代码,只是从文字角度叙述策略开发的流程。目前有很多量化回测的平台可以供大家开发策略,但使用这些回测平台有个弊端。其弊端在于若需要构造一些复杂的策略,那些平台就无法满足我们的要求,因为1)当我们训练的策略模型比较复杂时,比如训练深度学习模型,可能需要好一点的机器,而这些机器平台可能无法提供或代价昂贵;2)平台很多东...
2020-02-29 09:02:45
4057
原创 强化学习炒股Pytorch版
有朋友说想要个pytorch版的强化学习。我现在把2月9号文章的代码换成pytorch版本的了。代码不再做解释,与之前类似,只是把tf换成了torch。代码地址:https://github.com/wbbhcb/stock_market/tree/master/强化学习实战/2020_02_09_pytorch对量化、数据挖掘、深度学习感兴趣的可以关注公众号,本人不定期分享有关这些方面的研...
2020-02-19 16:27:26
3532
转载 量化选股策略模型大全
原文链接:原文量化选股就是利用数量化的方法选择股票组合,期望该股票组合能够获得超越基准收益率的投资行为。量化选股策略总的来说可以分为两类:第一类是基本面选股,第二类是市场行为选股。基本面选股主要有多因子模型、风格轮动模型和行业轮动模型。市场行为选股主要有资金流模型、动量反转模型、一致预期模型、趋势追踪模型和筹码选股模型。多因子模型是应用最广泛的一种选股模型,基本原理是采用一系列的因子作为选股...
2020-02-19 16:16:58
7147
原创 利用强化学习进行股票操作实战(四)
本次实战代码仍是在之前基础上进行了一些修改。之前只在一支股票上进行训练,这次我将模型放在多支股票上训练,并在多支股票上进行了测试。对于多支股票的训练策略,没有参考过别人的训练方案(做这个的比较少)。我按自己的理解去训练,每一轮训练,都将每支股票从头到尾走一次。核心代码如下:结果:股票1:不加均线的回测结果:加均线的回测结果:股票2:不加均线的回测结果:加均线的回测结果:股...
2020-02-19 16:11:24
6588
1
原创 利用强化学习进行股票操作实战(三)
与上一篇文章相同之处对于交易策略,与上一篇文章相同,当发出买入指令时,一次性全部买入;当发出卖出指令时,一次性全部卖出。还没有添加加减仓操作。模型仍然用的是DQN模型。新增内容在之前的基础上加入了交易手续费、印花税等。在强化学习这个领域中,reward函数是一个需要精心设计的函数。目前暂时没有好的reward设计思路,但还是修改了之前的reward函数。(其实之前的reward的...
2020-02-19 16:04:58
4407
3
原创 利用强化学习进行股票操作实战(二)
对于DQN的理论知识,这里不再赘述,不懂的同学可以看之前的强化学习理论篇或自行上网搜索相关资料。废话不多说直接上代码。DQN类首先定义了一个DQN类(这个定义参考了莫烦的代码 [1],几乎与其一致,做了简单修改)。下面简单的说明一下,代码中的核心部分。详细介绍可以看莫烦教学视频或者结合代码自己理解。class 中包含了5个主要模块,分别是__init__ (初始化),_build_net(...
2020-02-19 15:56:50
5162
1
原创 数字中国创新大赛-智慧海洋建设 baseline(常规思路及路径识别)
大赛链接:https://tianchi.aliyun.com/competition/entrance/231768/information代码:https://github.com/wbbhcb/zhhyjs_baseline
2020-02-11 10:15:48
3212
原创 利用强化学习进行股票操作实战(一)
利用强化学习进行股票操作实战今天开始利用强化学习实现股票操作。我在网上找了一个简单的强化学习进行股票操作的例子,并在此基础上进行了小改动。首先讲下建模的思路,当模型发出买入指令时,我们一次性全部买入;当模型发出卖出指令时则一次性全部卖出。模型只在一支股票上进行操作。模型我们选取Q-learning模型。(如果对Q-learning和DeepQ不了解的,建议先理解这两个模型,不然后面看不懂)...
2020-02-06 12:46:28
13268
1
原创 股票操作之强化学习基础(三)(Deep Q Network、Actor-critic、Policy gradients)
股票操作之强化学习基础(三)(Deep Q Network、Actor-critic、Policy gradients)接上一篇文章继续介绍一些强化学习基础。1 DQN(Deep Q Network)DQN是一种融合了神经网络和Q-learning的方法。那么DQN提出来的动机是什么呢?Q-learning算法的核心是学习Q-table,然而真实世界的状态非常多,这些状态多到计算机已经无法储...
2020-02-06 12:28:06
7072
原创 股票操作之强化学习基础(二)(Q-learning、Sarsa、Sarsa-lambda)
股票操作之强化学习基础(二)(Q-learning、Sarsa、Sarsa-lambda)1. Q-learningQ-learning是强化学习一个比较基础的算法,很多强化学习的升级算法都是在q-learning的基础上进行升级的。举个简单的例子:一个人在位置1,他需要到位置6,每次可以向左或者向右移动,但是他不知道位置6在他最右边,他只能自己去摸索如何到位置6。已知条件有在各个状态下向...
2020-02-06 12:10:55
6399
原创 股票操作之强化学习基础(一)
首先为什么要学习强化学习?之前我一直在研究如何利用机器学习去选股,但选股只是股票操作的第一步。股票买入后往往会有加仓、减仓等操作。之前的选股策略并没有对这些操作进行研究。传统的机器学习方法(SVM、GBDT、LR等)一般适用于分类或回归问题,如果要让传统机器学习模型自动学会加仓、减仓等操作,我个人认为比较难,这其中的建模过程比较复杂。以个人目前的浅薄理解来说,这可能可以建模出来,但其效果不一定好。...
2020-02-06 11:01:18
6757
原创 量化选股策略搭建(六)(中期策略搭建)
所用到的数据:1、上市公司信息数据可用tushare的 stock_basic接口获取2、股票每日信息(开、收、最高、最低价,换手率,成交量等)可用tushare的pro_bar接口获取3、大盘指数每日信息可用tushare的 index_daily 接口获取4、每日涨跌停统计可用tushare的 limit_list接口获取完整数据获取代码可以见github,github链接在...
2020-02-03 13:38:54
5136
原创 量化选股策略搭建(五)(短期策略搭建)
所用到的数据:1、上市公司信息数据可用tushare的 stock_basic接口获取2、股票每日信息(开、收、最高、最低价,换手率,成交量等)可用tushare的pro_bar接口获取3、大盘指数每日信息可用tushare的 index_daily 接口获取4、每日涨跌停统计可用tushare的 limit_list接口获取5、个股每日资金流向(超大、大、中、小单流入流出)可...
2020-01-28 19:36:59
6853
原创 量化选股策略搭建(四)(短期策略搭建)
选股策略搭建(四)(短期策略搭建)首先我们需要把选股这个问题转化为一个机器学习问题。那么如何转化成机器学习问题呢?机器学习也分两类问题:1、回归问题,2、分类问题。常规的一些方法是预测股价增长来进行选股(回顾问题),这里我们将其转化为一个分类问题。我们考虑短期策略搭建,即持股周期不能多于5天。如果一支股票在未来5天里最高增长大于5%,最大损失大于-3%,我们将其标签标记为1,其他标签标记为0。...
2020-01-12 22:08:51
9406
原创 量化选股策略搭建(三)(回测系统)
前两篇文章讲了数据的下载及更新,今天这篇文章讲回测系统的搭建。回测系统首先, 个人理解的回测系统就是输入每日可买入的股票(这些股票是经过模型筛选得到的),然后回测系统根据一些条件买入卖出等操作。account类声明:首先我们需要声明一个account类,记录账户的一些信息。具体需要记录的信息如下:(后期可能还会再加一些信息),信息初始化代码如下:class Account: ...
2020-01-04 16:24:53
10310
原创 量化选股策略搭建(二)(数据更新)
选股策略搭建(二)(数据更新)接上一篇文章,上一篇文章数据下载,这里我们讲如何进行数据更新操作.数据更新思想较为简单,只需要获取更新的数据,并将其写入csv文件末尾即可。部分获取更新数据和追加写入文件的代码如下:df = pro.daily(ts_code=i, start_date=startdate, end_date=endd...
2020-01-01 22:14:55
6042
原创 量化选股策略搭建(一)(股票数据获取)
选股策略搭建(一)(tushare数据获取)@TOC接触股市一年多,能力有限并未赚钱,目前个人时间渐渐宽裕起来,准备开发一些量化策略,包括股价预测、股票选取、股票操作等。创立这个公众号的目的是为了记载一些个人在量化策略上的研究,目前还未正式学习,暂时都是凭着本人在数据挖掘、机器学习和股市上的一些理解进行的研究。在接下来的一段时间里,个人将在选股策略上进行一定的研究。虽然目前有很多的量化回测系统...
2019-12-31 20:37:12
8647
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人