近年来,人工智能(AI)慢慢渗入各行各业,在投资界,人工智能和选股结合辅助主动投资,提高量化模型的效率也逐渐得到投资经理青睐。

AI策略简介

最近几年人工智能(AI)技术得到飞速发展,其在各个领域的运用也不断取得重大成果。机器学习是实现人工智能的一种方式,被评为人工智能领域中最能够体现智能的一个分支,机器学习与人工智能、深度学习的关系可以参考下图:

机器学习可以这样简单理解:借助于计算机,对数据(训练集)进行学习后,形成模式识别(模型),进而实现对未来数据(测试集)的预测。

假设我们要去预测某个变量Y未来的取值,并找到了影响变量Y取值的K 个变量,这些变量也称为特征或因子(Feature Variable)。机器学习即是要找到一个拟合函数f(X1,X2,…,XK|Θ)去描述 Y和特征之间的关系(绝大多数是非线性关系),Θ为这个函数的参数。

要找到这样的函数,必须要足够量的观测数据,假设有 N 个样本数据y1,y2,…,yn和 x1i,x2i,…,xKi (其中i=1,2,…,N)。然后定义一个函数L来衡量真实观测数据和模型估计数据偏差,函数 L 也称作损失函数(Loss Function)。基于历史观测数据,我们可以求解下列的最化问题来得到参数Θ 的估计值 。

求解(1.1)过程称作模型训练(Model Traing)。基于特征变量的最新观测值和训练出来的模型参数就可以预测y的数值。 接下来,我们看一下用机器学习方法开发策略的具体流程。

AI策略开发流程

相对于传统策略开发的复杂流程和调参等大量重复工作,AI策略开发更简单,将我们的脑力从重复工作上解放出来,专注在更有创造性的地方。

StockRanker算法

机器学习算法太多,本文讨论只针对适用于金融数据预测的常用有监督型机器学习(Supervised Machine Learning)算法:StockRanker。

StockRanker算法是专为选股量化而设计,核心算法主要是排序学习和梯度提升树

我们对AI策略开发做了抽象,设计了如下开发流程 (以 StockRanker 算法为例,也可以使用其他算法):

  • 目标:首先定义机器学习目标并标注数据。很多机器学习场景,需要人来做数据标注,例如标注图片里的是猫或者狗。对于股票,我们关注的风险和收益是可以明确定义并自动计算出来的。所以,我们一般使用未来N天的收益或者收益风险比作为标注分数。本文使用未来给定天数的收益作为标注

  • 数据:我们需要训练数据集来训练模型,已经评估数据集来评估效果。在模型参数研究中,我们一般还需要一个测试集用来观察调参效果

  • 特征(因子):特征是量化研究的核心之一,在AI策略上,特征直接影响了模型的学习效果。这也是本文的目的之一,通过AI找出在A股有效的因子,并最大化的挖掘出他们的效果

  • 算法模型:本文使用StockRanker算法,使用 M.stock_ranker_train 来训练模型,使用 M.stock_ranker_predict 来做出预测

  • 回测:使用回测引擎来根据预测做股票交易,并得到策略收益报告和风险分析,并以此来评估策略的最终效果

StockRanker的特点

  • 选股:股票市场和图像识别、机器翻译等机器学习场景有很大不同。StockRanker充分考虑股票市场的特殊性,可以同时对全市场3000只股票的数据进行学习,并预测出股票排序

  • 排序学习 (Learning to Rank):排序学习是一种广泛使用的监督学习方法 (Supervised Learning),比如推荐系统的候选产品、用户排序,搜索引擎的文档排序,机器翻译中的候选结果排序等等。StockRanker 开创性的将排序学习和选股结合,并取得显著的效果。

  • 梯度提升树 (GBDT):有多种算法可以用来完成排序学习任务,比如SVM、逻辑回归、概率模型等等。StockRanker使用了GBDT,GBDT是一种集成学习算法,在行业里使用广泛。

StockRanker的领先效果还得益于优秀的工程实现,目前在学习速度、学习能力和泛化性等方面,都做了大量的优化,并且提供了参数配置,让大家可以进一步根据需要调优。

可能遇到的一些问题

  • 过拟合

  • 数据集重叠

  • 数据集划分不当

  • 训练集数据太少

  • 数据预处理不够

  • 标注和特征逻辑不一致

  • 因子并非越多越好

基于StockRanker的AI量化选股策略相关推荐

  1. 网格向量必须包含特征点。_【专题研究】基于SVM支持向量机模型的选股策略

    研究过集成学习中的随机森林和XGBoost后,本文将介绍一种更传统的机器学习方法:SVM支持向量机.SVM由于其较高的准确度,并且能够解决非线性分类问题,曾一度成为非常流行的机器学习算法.本文分别介绍 ...

  2. Bigquant-平台5.53夏普高质量-龙头战法AI量化实战策略开发(一)

    大家好,我是sevencat/woshisilvio, 是一位bigquant宽邦人工智能平台的策略开发者. 2020年获Bigquant年度最佳策略开发者,多个策略曾荣登顶天梯榜1,天梯策略综合排名 ...

  3. 量化选股策略到是量子好还基面子

    转 量化选股策略--到底是价量因子好还是基本面因子好? 在今年A股的漫漫熊途中,量化对冲策略提供了一缕光亮. 量化对冲靠跑赢指数赚钱,收益与大盘涨跌无关.无论牛熊,只要股票组合比大盘跑得好,量化对冲策 ...

  4. 量化选股策略搭建(一)(股票数据获取)

    量化选股策略搭建(一)(股票数据获取) 接触股市一年多,能力有限并未赚钱,目前个人时间渐渐宽裕起来,准备开发一些量化策略,包括股价预测.股票选取.股票操作等.创立这个公众号的目的是为了记载一些个人在量 ...

  5. 量化选股策略搭建(二)(数据更新)

    量化选股策略搭建(二)(数据更新) 接上一篇文章,上一篇文章数据下载,这里我们讲如何进行数据更新操作. 数据更新思想较为简单,只需要获取更新的数据,并将其写入csv文件末尾即可.部分获取更新数据和追加 ...

  6. 量化选股策略搭建(四)(短期策略搭建)

    量化选股策略搭建(四)(短期策略搭建) 首先我们需要把选股这个问题转化为一个机器学习问题.那么如何转化成机器学习问题呢?机器学习也分两类问题:1.回归问题,2.分类问题.常规的一些方法是预测股价增长来 ...

  7. python量化选股策略_【机器学习】第六课:基于SVM的量化选股策略

    导语 接触过机器学习或数据挖掘算法的人都应该知道支持向量机(SVM),支持向量机一经提出就得到了广泛应用.本文主要探讨该算法在金融领域量化投资多因子策略上的应用.在这篇文章中,先是介绍了SVM的基本原 ...

  8. Python量化交易05——基于多因子选择和选股策略(随机森林,LGBM)

    参考书目:深入浅出Python量化交易实战 在机器学习里面的X叫做特征变量,在统计学里面叫做协变量也叫自变量,在量化投资里面则叫做因子,所谓多因子就是有很多的特征变量. 本次带来的就是多因子模型,并且 ...

  9. 用python完成选股策略_python量化选股策略_量化股市

    金字塔决策交易系统 等安装结束后自己找缺少的对应的软件安装.2.软件本体开始安装3.阅读勾选软件安装协议4.选择软件安装目录5.准备开始安装6.等待以后就可以看到金字塔决策交易系统安装完成!登陆软件后 ...

  10. python量化选股策略 源码_常见的十大量化投资策略(附源码)

    量化投资策略是利用量化的方法,进行金融市场的分析.判断和交易的策略.算法的总称.著名的量化投资策略有以下10种(注:策略源码模板不能直接用于实盘交易,仅供探讨交流) 01.海龟交易策略 海龟交易策略是 ...

最新文章

  1. 第1章 1.9计算机网络概述--OSI参考模型和网络安全
  2. Caliburn笔记-基本Command(wpf框架)
  3. 修改mysql用utf8mb4_更改MySQL数据库的编码为utf8mb4
  4. JSON.parse(text[, reviver])
  5. ubuntu下面下載imdb.npz的問題
  6. 大数据学习笔记52:Flume Interceptors(Flume拦截器)
  7. lambda不是python的保留字_python-nonlocal关键字的使用,lambda表达式(学习到function到变...
  8. 用MACD决策树模型预测股票趋势
  9. PR2017添加字幕文本或文字水印
  10. 一些可以使用的网上图片地址
  11. 利用npm bin创建可执行命令实现项目代码规范自动化
  12. Jenkins配置slaver节点
  13. 判断文本框输入中文超过10个英文数字超过20个
  14. 轻松实现钉钉机器人定时发消息
  15. java技术--SpringContextUtil类的作用
  16. 11月20日云栖精选夜读:围观阿里总部:边喝茶边搞技术是一种怎样的体验?
  17. 编程中取名,有什么需要注意?
  18. [文摘20080131]89个管理定律及点评
  19. 【大数据】Hadoop 体系(四)
  20. 文本溢出隐藏显示... 鼠标移动到元素显示全部内容

热门文章

  1. 信号ctft频谱matlab,信号、系统分析与控制(MATLAB版)第4章连续信号的频域分析.ppt...
  2. Tomcat组件梳理—Digester的使用
  3. f和摄氏度怎么换算_华氏度怎么换算成摄氏度啊?
  4. petalinux - 修改fsbl
  5. Java技术栈学习路线(不喜勿喷)
  6. OPENWRT:编译E8820V2总结
  7. 华为PUSH SDK 接入方法
  8. Python编程语言入门视频教程,人生苦短,我用Python!
  9. echarts地图下钻可缩放
  10. 敬业签Windows电脑桌面云便签提醒预设配置使用方法