打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
跟我学AI量化交易(1) - 获取行情数据

进入2020年,无论是A股的专业投资者,还是准专业投资者,都需要接触量化交易。因为A股正在放开涨跌停限制,交易制度也即将由T+1改为T+0。在新的交易制度下,留给投资者思考的时间更短,而程序交易将有先天优势。甚至对于业余投资者,也可能需要了解一些量化交易,因为量化交易平台将会越来越多,最先上车的投资者必将从中受益。

本文是AI量化交易教程的第一篇。在这部教程里,我们不光讲量化交易,而且讲如何通过最先进的人工智能来学习和理解市场变化,寻找适应于当下市场的最佳交易策略和模型。

全部教程共分两个部分,第一部分是数据预处理,包括如何获得行情数据,如何本地化存储数据,如何进行一些简单的指标计算(如moving average, macd等),如何将行情数据可视化。这一部分是所有的量化交易,无论是否基于人工智能,都需要掌握的基础。

第二部分的重点是如何通过人工智能来学习交易策略。我们将首先介绍一些基础的机器学习算法:我们将使用sklearn机器学习算法库,并且给出一些经验证有效的模型。然后我们将进入深度学习的领域。我们将使用Pytorch和FastAI来构建算法模型,目前已安排的有基于CNN和Transformer两种架构的神经网络模型。

作者正在构建自己的人工智能交易系统,所以用到的代码示例都来自于实战代码,因此这个教程的干货很多。这个教程另一个独特的地方是,作者除了会写代码之外,还有十多年的证券投资经验,所以在本教程中,你也会看到不少证券交易的经验之谈。离开领域知识谈技术,最终都是隔靴搔痒。

现在,窗外夜色深沉。趁着午夜前还有一两个小时,我们赶快上车吧!上车之前,记得买票–关注本号、转发评论都是上车暗号!

数据从何而来

要做好交易系统,我们首先必须有准确和及时的数据。至于数据量的大小、实时程度和市场归属,则取决于你的交易类型。一般认为,高频交易是纳秒级的交易,目前在A股并不适用(因为A股有T+1和涨跌停限制);如果你需要做期货或者数字货币,或者海外市场,才需要考虑高频交易。这部教程的目标读者并不是高频交易者,我们的目标市场是适用于A股的中低频交易,即持仓时间在日线级别。当然,绝大多数内容也是适用于分钟级别的可转债效果,但我目前没有找到好用的免费数据。

用于交易的数据种类很多,主要是行情数据。此外,像中信多空单数据、北上资金流向数据、每周证券开户数据也对市场有较强的影响力,也可能是交易模型需要关注的数据。此外,一些新闻消息类的文本数据,也有比较好的效用。比如之前一些公司配合资金炒作,会通过投资者问答平台放出消息,随后股价出现闪拉。当然现在在打击这种炒作行为。东方财富的股吧有一个热度排名,也有一定的参考价值,毕竟,股价的涨跌是大量资金投票的结果,只有受到关注,股价才能涨起来。文本类数据主要使用爬虫来获取。

行情数据现在比较容易取得,这里主要讲三种方法。

Pytdx

第一种方法是使用pytdx。大家知道通达信是主要的行情数据供应商和股票分析软件供应商。许多证券公司的股票软件,都是基于通达信进行二次开发的。通达信软件早年还提供了插件,供用户获取行情数据。Pytdx就是基于通达信的协议,由作者Rain所做的一个纯Python的实现,可以很好地独立运行在Windows和Linux机器上。

在今年百度网盘外挂事件之后,国内一大批外挂软件都停止开发和维护了,Pytdx也是如此。但之前的版本还可以使用。这里介绍Pytdx,主要原因是很多券商的行情服务器都是通达信的协议,所以你可以同时连上上百台服务器,以最快的速度获得行情数据。当然,仅限于学习目的。如果用于商业目的,肯定是需要经过授权的。

Tushare

Tushare共有两个版本, Tushare和Tushare Pro,前者是完全免费的,但现在已经不维护了。Tushare Pro有流量限制。

JqDataSdk

这是由聚宽出品的数据本地化SDK。说是本地化,是相对于它的在线计算平台而言的。实际上这个SDK还是一个在线数据收发概念。即你获得的数据,都无法保存(或者你需要自行设计数据结构来保存)。我们在本教程中,主要使用这个数据源。

现在申请Jqdatasdk,可以登录www.jointquant.com,然后凭手机号注册和申请。每个账号每天可以免费使用100万条数据。这个数据量看上去很大,但实际上是不够的。它的计数方式是这样的,每支证券的每个周期的一个数据样本,算作一条数据。比如你取上证指数最近30天的日线数据,就算30条。现在A股有4000余只证券,如果取1分钟周期数据的话,刚好够取一天(240分钟)。

现在我们来看看,如何通过jqdatasdk来获取行情数据:

这样,你就得到了上证指数最近5天的行情数据。

观点

A股的T+1和涨跌停板制度,是限制算法交易的重要因素。如果把股价看成是一个时间序列分布的话,T+1和涨跌停制度则是在这个时间序列上引入了突变和不连续性。一个有着突变和不连续性的时间序列是不可微的,也因此难以使用经典的数学方法来分析。现在,这两项限制即将去掉,而人工智能的发展,使得我们可以拟合几乎任何函数(即使是分段函数),因此,现在是进入这一领域的最佳时机。

当然,现在还没有对时间和突变敏感的神经网络出现。现有的神经网络并没有时间跨度的概念,它们认为时间是均匀流淌的,或者数据是与时间无关的。但实际上,股价的运行在每一个收盘和开盘之间,都是不连续的,都会受到消息的重大冲击。如何让时间网络能够把这部分影响考虑进去,也是我们研究的方向之一。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
超实用!七大主流量化平台盘点,哪个是你的理想C位?
量化投资从数据说起
量化交易的Python工具链
自学python做量化投资怎么做
币圈行情反弹,AI量化交易机器人未来发展趋势
难!!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服