量化阿尔法用着Python学量化量化交易

(译)卷积神经网络在股票中应用

2017-11-02  本文已影响1149人  阿尔法计算生

摘要

卷积神经网络使计算机视觉领域发生了革命性的变化。
本文探讨了CNNs的一个典型应用:利用卷积网络来预测股票价格的变动,即利用卷积网络来预测过去价格波动的时间序列,其目的是利用它们来买卖股票,以赚取利润。

1. 介绍

在较高的层次上,我们将训练一个卷积神经网络,将给定资产过去价格的时间序列数据图像(在我们的案例中,是在纽约证交所交易的SPY合约)中。然后,我们将在接下来的几分钟内预测价格的走势。
如果CNN正确地预测价格走势,我们可以在CNN说价格今后上涨的时候通过购买赚钱,然后在几分钟之内以更高的价格出售。

我们既使用传统的统计业绩衡量标准(即R2),也使用“paper trade”模拟器来评估经过培训的网络,使我们能够了解如果我们按照CNN的预测买卖合同会发生什么情况;特别是,我们可以看到,遵循经过训练的CNN的策略将多么有利。当然,这种方法取决于脆弱的能力,市场中的其他参与者不可能对CNN的买卖做出什么反应,但它至少让我们对CNN作为交易者的能力有了一定程度的信心。

2.问题陈述和技术方法

2.1 收集数据

训练CNN选择股票的过程的第一步是收集一些历史数据。在纽约证券交易所交易的标准普尔500指数ETF信托(符号:SPY)上提供了一个一分钟的股票数据。 具体来说,对于每个
每个交易日的分钟,我们有数据1中列出的数据。

2.2 特征的初步选择

由于项目需要我们使用像素数据,所以我不得不将这个价格数据转换成图像。这本身就提出了一个有趣的挑战,但一个非常明显的起点是,将一段时期内合同价格的图表(特征)作为我们的输入(特征),然后用它来预测将来某个时间(比如,5分钟之前)的价格。那么,如果我们预测价格会上涨(下跌),我们将在现在买入(卖出)并在5分钟内卖出(买入)以获得利润。

首先,合约价格是什么意思?回想一下,Google Finance为我们提供了四种不同的交易日中每分钟的价格。目前,我只选择在一分钟内只使用high price和low price ,因为这两个价格隐含地约束了另外两个价格(open price和close price)。
此外,high price 和low pirce 直观上包含比open price 和 close price 更多的信息,因为open price 和close price 在某种意义上是统计的工作:这些价格是市场在Google抽样时碰巧出现的价格(或任何收集数据的人)

其次,我们的时间序列图应该追溯到过去多远?这在原则上是另一个超参数,应该在卷积网络建立之后进行调整,但就目前而言,我已经用一个30–分钟的窗口进入了过去。总而言之,模型的输入是30分钟时间窗口的高价格和低价格的图形。这些图像使用numpy和matplotlib库绘制,并保存为RGB图像。 示例输入如下图2.2所示。

Column Name Meaning
DATE 时间(当天的分钟)
CLOSE 收盘价(分钟结束时的价格)
HIGH 最高价(分钟最高价)
LOW 最低价(分钟最高价)
OPEN 开盘价(开始时的价格)
VOLUME 有多少合约在一分钟内被买卖

表1. [1]提供的分钟数据

图1.卷积网络的示例图像输入。 高
价格呈蓝色,低价格呈绿色。

image

特征(见第6节)。

因简书的markdown,对图片和latex支持较弱,可以访问如下地址阅读完整文章。
http://note.youdao.com/noteshare?id=2c8037a9ee539571e4207a3ac65d154d

本篇文章训练过程可供参考,但策略思路如图文章后面所说
“Naturally we could feed historical price, volume, cor- relation, or any other data into a neural network directly, instead of encoding it as an image. This would get the data into the network more directly than via the circuitous route that the current implementation takes.”
“我们可以将历史price、volume、相关性或任何其他数据直接输入一个神经网络,而不是将其编码为图像,这将使数据更直接地进入网络,而不是通过当前实现所采用的迂回路线”


广告贴:

基于RPC的金融数据服务平台: http://chaostrade.net/

上一篇下一篇

猜你喜欢

热点阅读