高频买卖经常被提起,却始终蒙着一层奥秘面纱,似乎那只是金字塔尖那一小撮人的玩物。今日咱们就从期货高频数据下手,去揭开奥秘面纱的一角,并测验搭建神经网络模型对高频数据进行猜测,抛砖引玉,期望能让对金融数据剖析,量化买卖,人工智能感兴趣的朋友有所收成。咱们现已将本文的悉数源数据+源代码+python环境打包好,做到开箱即用, 文末有获取方法,欢迎咱们下载自己着手继续学习和研究。

先看咱们最终的模型成果,在练习集和测验集上的表现:

用LSTM神经网络模型训练期货高频数据

下面开端探究数据。

买卖时刻

以本文要研究的螺纹钢(RB)为例, 与股票不同,期货不仅在工作日白日买卖,很多品种还有夜盘, 每个买卖日便是从夜盘开端计算的。

用LSTM神经网络模型训练期货高频数据

行情频率

期货的实时行情频率为2笔/秒, 一个小时7200笔, 全天便是7200*5.75= 41400笔 咱们有个概念就好,便是期货Tick高频数据,一个期货合约全天快照的数据量是4万多笔。当然这是理论值,实际情况因为各种原因吧,咱们拿到的数据实际上会略少有理论值,但基本都在4万条左右。 咱们统计一下2023.02.06–2023.02.10这一周内RB2305这个合约每天的快照数量。能够看到和理论值是很接近了。

用LSTM神经网络模型训练期货高频数据

今日咱们就以RB2305在2023.02.06-2023.02.07这两天的数据作为咱们的剖析方针,共82000多条记载。对于一个数据剖析入门来说,这现已是不小的数据量了, 跟着咱们才能的提升,后边会从合约数量和时刻长度的维度进行更大数据量的扩展。

看看原始数据结构

用LSTM神经网络模型训练期货高频数据

字段含义

用LSTM神经网络模型训练期货高频数据

为了更便利进行剖析和练习,咱们把原始tick数据组成固定频率的规范K线数据。 pandas的resample函数能够很便利地进行时刻频率的转化,下面代码就能够进行数据转化(本文以10s为例,咱们能够自己测验其他频率的数据),不同字段的组成规矩略有不同。

用LSTM神经网络模型训练期货高频数据

计算K线的对数收益率:

10秒频率相对于2笔/秒的原始数据,时刻间隔放大了20倍, 数据量就小了20倍,所以组成后的K线数据共计4000多条。

组成后的K线数据如图所示

用LSTM神经网络模型训练期货高频数据

咱们用mplfinance库对组成后的K线数据绘图,上方主图是价格(Price)走势,下方副图是成交量(Volume):

用LSTM神经网络模型训练期货高频数据

K线对数收益率的散布图:

用LSTM神经网络模型训练期货高频数据

下面咱们用这个组成后的10秒K线数据进行LSTM神经网络练习。 LSTM(Long Short Term Memory) 长短周期回忆神经网络是循环神经网络RNN的一种, 也是具有循环神经网络的链式结构, 一般用于时刻序列的猜测。模型的原理咱们放在后边文章来讨论,本文咱们先用Pytorch构建一个简略的LSTM网络,在练习和参数调整的进程中去学习和体会模型。 任何模型练习,首先要选择特征和方针。 本次练习咱们选取的特征是最新价(Close), 开盘价(Open), 成交量(Volume)

练习方针是猜测1分钟后的价格, 将1分钟后的价格数据和当前时刻点的特征数据对齐,便利后续处理。

用LSTM神经网络模型训练期货高频数据

数据预处理

1)规范化

咱们使用sklearn的MinMaxScaler 分别对特征(data)和方针(label)进行规范化。

用LSTM神经网络模型训练期货高频数据

2)时刻序列转化

RNN的输入是特征数据的时刻序列,根据指定的时刻序列长度(seq_length),咱们把规范化后的特征和标签数据进行转化,使其满意网络的输入格局要求。

用LSTM神经网络模型训练期货高频数据

3)练习集,测验集数据拆分

根据指定的练习数据比例(split_ratio), 将转化后的数据拆分红练习集和测验集,并转化为torch的Variable格局。

用LSTM神经网络模型训练期货高频数据

4) 装入DataLoader

把练习数据和测验数据分别载入DataLoader, 构建train_loader和test_loader,便利后续的模型练习

模型构建

下面构建一个简略的LSTM网络

用LSTM神经网络模型训练期货高频数据

模型参数

用LSTM神经网络模型训练期货高频数据

练习模型

用LSTM神经网络模型训练期货高频数据

练习进程的丢失函数变化如下

用LSTM神经网络模型训练期货高频数据

模型评价

下图是残差散布,能够看到测验集和练习集的残差大部分散布是[-10,10]的区间内,测验集的残差波动略大于练习集,总体上仍是契合咱们的预期。

用LSTM神经网络模型训练期货高频数据

当然这只是拿小数据量在小模型上的一次测验,目的仍是让咱们熟悉一下数据处理和模型的构建流程。假如要据此构建能够买卖的量化模型,还有很长的路要走,后边我会陪着咱们在这条路上一步步地向前走,和咱们共同生长。

我现已将本文用到的悉数源数据+源代码+Python环境打包好了,做到开箱即用,一键运转,感兴趣的朋友能够下载,自己测验不同的参数和特征,自己多着手才是学习的最佳途径。

重视同名大众号可获取源数据下载地址,感谢您的支撑!