2020年,无论是专业还是半专业的A股投资者都需要接触量化交易。随着A股涨跌幅限制的放宽,交易制度即将由T+1变更为T+0。在新的交易体系下,投资者思考的时间将减少,这为程序化交易创造了独特的优势。即使是业余投资者也可能需要量化交易的知识,因为量化交易平台将会越来越多,首先加入的投资者一定会从中受益。
本文是AI量化交易教程的第一部分。在本教程中,我们不仅会讲解量化交易,还会讲解如何利用前沿的人工智能来学习和理解市场变化,找到适合当前市场的最佳交易策略和模型。
整个教程分为两部分,第一部分讲解如何获取市场数据,如何在本地存储数据,如何进行一些简单的指标计算(移动平均线,MACD等),以及数据预处理包括方法。可视化市场数据。这部分是所有量化交易,无论是否基于人工智能,都必须掌握的基础。
第二部分将重点讨论如何通过人工智能学习交易策略。首先,我们来介绍一些基本的机器学习算法。我们使用sklearn 机器学习算法库介绍了一些经过验证且有效的模型。接下来我们进入深度学习领域。使用Pytorch 和FastAI 构建算法模型。我们目前正在部署基于CNN 和Transformer 架构的神经网络模型。
由于作者正在构建自己的人工智能交易系统,因此使用的代码示例均来自真实代码,因此本教程包含很多有用的信息。本教程的另一个独特之处在于,除了会写代码之外,作者在证券投资领域拥有超过10年的经验,因此本教程在证券交易方面也拥有丰富的经验。在没有专业知识的情况下谈论技术只能触及表面。
现在,窗外一片漆黑。距离午夜还有一两个小时,我们上车吧。上车前别忘了买票。关注这个账号、转发评论,都是上车暗号。
数据从何而来
建立一个好的交易系统首先需要准确、及时的数据。交易类型在数据量、实时程度和市场所有权规模方面有所不同。一般认为高频交易是纳秒级的交易,目前不适用于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 和价格范围限制系统会在该时间序列中引入突变和不连续性。包含突变和不连续性的时间序列是不可微分的,因此很难使用经典数学方法进行分析。现在是进入这个领域的最佳时机,因为这两个限制即将被消除,并且人工智能的进步使得拟合几乎任何函数(包括分段函数)成为可能。
当然,我们还没有对时间和突变敏感的神经网络。现有的神经网络没有时间跨度的概念。人们相信时间是均匀流动的或者数据是与时间无关的。然而,实际上,股价走势在收盘价和开盘价之间是不连续的,并且受消息的影响很大。研究方向之一是如何在时间网络中考虑到这种影响。
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。