深入浅出 1 - AI量化策略快速理解
我们在用AI来编写量化策略过程中,主要用到了机器学习,先来从一张图直观理解什么是机器学习:人类对新问题做出有效决策依靠的是过去积累的许多经验,并对经验进行利用,而对机器来说,“经验”以“数据”方式存在,机器从过去众多“数据”中产生模型,并对新数据进行预测,这个过程就可理解为“机器学习”。
那么机器学习到底要经历哪几个步骤,我们如何用机器学习来构建一个完整的量化策略,下面,我们通过一个生活中的样例,来类比AI量化策略的工作流程,来帮助大家快速理解AI量化策略:
老王挑瓜
我们接到了隔壁老王求助:要我们帮他去瓜田判断一堆西瓜的好坏,并且需要在保证正确率的情况下独自完成。如果我们对此毫无经验,那我们应该如何应对呢?大家可以先思考一下再与下面步骤进行对比。
第一步:明确目标,获取资源。
首先我们应明确目标,就是判断出这堆西瓜的好坏,为了达到这个目标,我们应该先去另找来一堆西瓜用来学习,来积累判断西瓜好坏的经验。第二步:资源划分
接下来我们要把找来的这些瓜分成两堆,其中第一堆瓜用来练手总结规律,为了确保我们总结的规律是真实可靠的,我们用第二堆瓜来验证我们总结的规律。第三步:观察学习
- 针对第一堆瓜,我们首先通过观察和思考,挑选出一些可能影响瓜好坏瓜的特征也可以称为属性,例如颜色、大小、产地、纹理等;
- 之后,我们不断观察每个瓜的这些特征并切瓜来验证每个瓜的好坏并进行记录;
- 现在我们获取了每个瓜的特征与其对应的好坏结果,我们需要通过不断总结归纳找到瓜的好坏与瓜的属性之间的关联,最后制定一套标准的判断模型,就是我们的经验。
第四步:预测
此时我们需来验证我们上面总结的经验是否满足要求,我们拿第二堆瓜来验证,根据第二堆瓜的颜色、大小、产地等特征来预测第二堆瓜的好坏。第五步:检验
最后,在预测环节中我们得出了每个西瓜的预测结果,为了检验我们预测结果是否准确,我们需要切瓜来验证我们的预测值是否与真实情况相符。
这一过程我们可以表示为流程图:
AI量化策略构建流程
类比上述挑瓜过程,我们可以对AI量化策略流程进行分解:
- 第一步:明确目标,获取数据
首先我们要明确我们模型的训练目标,是A股还是港股,就好比是西瓜还是苹果;是预测股票收益率高低还是波动率高低,就好比是预测西瓜好坏还是年份。确定后获取股票或其他数据。
AI量化策略的目标(Label):人为定义的模型预测目标,例如未来N日收益率、未来N日波动率、未来N日的收益率排序等统计量,平台AI量化策略默认使用股票收益率作为目标。
- 第二步:数据划分
接着我们把历史数据按时间顺序切分为两部分,类比于分瓜任务中的两堆瓜。
训练集: 第一部分的数据用来训练模型,类比第一堆瓜;
验证集: 第二部分的数据用来验证模型效果,类比第二堆瓜;
- 第三步:选取特征,进行标注
- 选择构建可能影响目标的特征,如模板策略中的return_5(5日收益)、return_10(10日收益)等,类比于瓜的产地、大小等特征。
- 对目标结果进行标注,类比于切瓜后记录每个瓜的好坏,样例模板中,我们用5日收益率高低来定义股票的走势好坏等级,并将每只对应等级标记在每只股票上。
AI量化策略的特征(features): 反映事物在某方面的表现或性质的事项,在AI量化策略中,特征可以是换手率、市盈率、KDJ技术指标等等
AI量化策略的标注: 我们计算训练集数据所在时间阶段的每日目标值,比如按每日的未来N日收益率高低来定义股票的走势好坏等级,计算出每只股票未来N日收益率的好坏等级并标记在每只股票上。
第四步:模型训练
我们通过“好坏等级”对股票进行标注贴上标签,连同其所对应的特征值一起来构建训练模型,类比于上述我们获取了第一堆瓜的大小、颜色等特征数据以及对应切瓜验证其’“好坏”标签,总结出瓜的分类经验;第五步:预测
用验证集数据来检验训练前面构建好的模型,即检验模型根据验证集的特征数据预测出的目标值(股票走势好坏等级)是否准确。这步类比于鉴瓜任务中根据第一堆瓜总结的鉴瓜经验用第二堆西瓜的大小、颜色等特征数据来判断预测瓜的好坏。第六步:回测
将验证集的预测结果放入历史真实数据中检测,类比于鉴瓜过程中根据第二堆瓜预测出瓜的好坏最后进行切瓜验证。
因此,AI量化策略的构建过程也可以用流程图的方式表达如下:

认识了机器学习流程和AI量化策略流程,就能够理解BigQuant平台的BigStudio实验工作流。BigStudio实验工作流是AI量化策略在BigStudio上的可视化展示。一个典型的AI可视化量化策略流程图如下:
简单划分:
具体而言:
策略流程图的左支是训练集特征数据(features)的抽取和训练集目标(label)的标注,标注结果和训练集特征数据通过合并和数据缺失值清洗处理,然后传给机器学习模型进行模型训练。
策略流程图的右支是测试集特征数据的抽取,通过缺失值清洗处理,然后传给机器学习模型进行预测,这里机器学习模型采用StockRanker模型,是一个排序模型,预测的结果是每日的股票排名。
这个排名列表即预测结果最后传给回测模块按一定的规则进行买卖模拟交易,进行检测。
以上就是一个AI量化策略构建大体流程,初学者可先尝试修改特征值来寻找有效因子,往往好的因子组合是策略成功的关键。
快来新建一个人工智能量化策略检测一下你的学习成果吧,在新建策略过程中,回想一下每一步操作对应我们上述的第几步,掌握后,你已经可以超越60%的传统交易员啦,快快行动起来!
深入浅出 1 - AI量化策略快速理解的更多相关文章
- 数字货币期货与现货JavaScript量化策略代码详解汇总
1.动态平衡策略 按照当前的 BTC 的价值,账户余额保留¥5000 现金和 0.1个 BTC,即现金和BTC 市值的初始比例是 1:1. 如果 BTC 的价格上涨至¥6000,即 BTC 市值大于账 ...
- 快速理解高性能HTTP服务端的负载均衡技术原理(转)
1.前言 在一个典型的高并发.大用户量的Web互联网系统的架构设计中,对HTTP集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案.HTTP负载均衡的本质上是将Web用户流量进行均衡减压,因此 ...
- 三分钟玩转微软AI量化投资开源库QLib
更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 微软QLib简介 微软亚洲研究院发布了 AI 量化投资开源平台"微矿 Qlib".Q ...
- Beam Search快速理解及代码解析
目录 Beam Search快速理解及代码解析(上) Beam Search 贪心搜索 Beam Search Beam Search代码解析 准备初始输入 序列扩展 准备输出 总结 Beam Sea ...
- 【转】快速理解Kafka分布式消息队列框架
from:http://blog.csdn.net/colorant/article/details/12081909 快速理解Kafka分布式消息队列框架 标签: kafkamessage que ...
- Spark机器学习 Day2 快速理解机器学习
Spark机器学习 Day2 快速理解机器学习 有两个问题: 机器学习到底是什么. 大数据机器学习到底是什么. 机器学习到底是什么 人正常思维的过程是根据历史经验得出一定的规律,然后在当前情况下根据这 ...
- 快速理解web语义化
什么是Web语义化 Web语义化是指使用恰当语义的html标签.class类名等内容,让页面具有良好的结构与含义,从而让人和机器都能快速理解网页内容.语义化的web页面一方面可以让机器在更少的人类干预 ...
- 脑残式网络编程入门(四):快速理解HTTP/2的服务器推送(Server Push)
本文原作者阮一峰,作者博客:ruanyifeng.com. 1.前言 新一代HTTP/2 协议的主要目的是为了提高网页性能(有关HTTP/2的介绍,请见<从HTTP/0.9到HTTP/2:一文读 ...
- 字符编码那点事:快速理解ASCII、Unicode、GBK和UTF-8
原作者:阮一峰(ruanyifeng.com),现重新整理发布,感谢原作者的无私分享. 1.引言 今天中午,我突然想搞清楚 Unicode 和 UTF-8 之间的关系,就开始查资料. 这个问题比我想象 ...
随机推荐
- python网络编程(十一)
epoll版-TCP服务器 1. epoll的优点: 没有最大并发连接的限制,能打开的FD(指的是文件描述符,通俗的理解就是套接字对应的数字编号)的上限远大于1024 效率提升,不是轮询的方式,不会随 ...
- redis:hash哈希类型的操作
1. hash哈希类型的操作 1.1. hset key field value 语法:hset key field value 作用:把key中field域的值设为value 注:如果没有field ...
- c# 后台 添加datable 数据
public void AddRows(HtmlTable table(表名),DataTable dt(数据源), string i(自增长)) { ...
- NHibernate查询优化的相关资料
一.http://www.cnblogs.com/dddd218/archive/2009/09/01/1557640.html 1.立即加载(lazy=false)并不能在所有情况下都会减少SQL语 ...
- java 上传图片 并压缩图片大小(转)
Thumbnailator 是一个优秀的图片处理的Google开源Java类库.处理效果远比Java API的好.从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生 ...
- 第三届“百越杯”福建省高校网络空间安全大赛writeup--Do you know upload?
一打开网址,可以看出应该是文件上传漏洞,查看源码,也有可能是文件包含 上传个图片,成功,然后上传一句话木马 通过bp进行上传绕过 , 开始菜刀连接http://e00b6eca3c9c4e14a31c ...
- Oracle数据库访问其他用户下的表,不加表所属的用户名的实现方法
一. 问题: 如何实现在Oracle数据库中访问其他用户的表时不需加表所属的用户名 二. 举例: Oracle里面的用户A,要访问用户B的表需要带用户B的前缀,如访问用户B的 TEST表,需要这样访问 ...
- RAID各种级别详细介绍
独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(RAID, Redundant Array of Inexpensive ...
- PHP06
PHP06 1. 2.可视化工具navicat: 1)查询 : select 字段名1,字段名2- from 表名; 对于可能与关键词重名的名称,建议使用反引号`括起来 可用*通配符代替字段名 sel ...
- JAVA自学笔记26
JAVA自学笔记26 1.网络编程 1)用来实现网络互联的不同计算机上运行的程序可以进行数据交换 2)网络模型一般泛指 OSI:(Open System Interconnection)开放系统互联参 ...