股市家

金融圈第一岗
股票配资新动态!

【预测股票市场未来走势】股票跌跌不休,不如用神经网络来预测一下未来走势

预测股票市场未来走势

本文为 AI 研习社编译的手艺博客,原题目 :

Neural Networks to Predict the Market

翻译 | 老赵 校订 | 酱番梨 清算 | 菠萝妹

原文链接:

注:本文的相干链接请点击文末【浏览原文】进行拜候

机械进修和深度进修已成为量化对冲基金经常使用最大化其利润的经常使用的新的有用策略。 作为一位人工智能和金融快乐喜爱者,这是使人振奋的动静,由于它连系了我感乐趣的两个范畴。 本文将介绍若何利用神经收集展望股票市场,出格是股票(或指数)的价钱。 这篇文章基于我的GitHub中的python项目,在那边你可以找到完全的python代码和若何利用该法式。 另外,对更多如许的内容,请查看我本身的页面:Engineer Quant

金融中的神经收集

金融是高度非线性的,有时股票价钱数据乃至可能看起来完全随机。 传统的时候序列方式(如ARIMA和GARCH模子)仅在序列是静止时才有用,这是一个限制性假定,需要经由过程记实返回(或其他变换)对序列进行预处置。 但是,首要问题呈现在及时买卖系统中实行这些模子,由于在添加新数据时没法包管安稳性。

这经由过程利用神经收集来匹敌,它不需要利用任何安稳性。 另外,神经收集素质上有用地找到数据之间的关系并利用它来展望(或分类)新数据。

典型的完全仓库数据科学项目具有以下工作流程:

1. 数据收集 - 这为我们供给特点

2. 数据预处置 - 使数据可用的需要步调但经常是复杂的

3. 开辟和实行模子 - 我们选择神经收集和参数的类型

4. 回测模子 - 任何买卖策略中很是关头的一步

5. 优化 - 找到适合参数

我们的神经收集的输入数据是曩昔十天的股票价钱数据,我们用它来展望明天的股票价钱数据。

数据收集

荣幸的是,该项目所需的股票价钱数据在雅虎财经中随时可用。 可使用他们的Python API获得数据,或直接从他们的网站获得。

数据预处置

在我们的案例中,我们需要将数据分化为十个价钱和第二天价钱的练习集。 我经由过程界说一个类来完成这个,

将其分化为练习和测试数据并界说方式。

在给定特定长度的窗口(在我们的例子中为10)的环境下,将练习数据(输入和输出)作为数组返回。

完全代码以下:

def gen_train(self, seq_len):
for i in range((len(self.stock_train)//seq_len)*seq_len - seq_len - 1):
x = np.array(self.stock_train.iloc[i: i + seq_len, 1])
y = np.array([self.stock_train.iloc[i + seq_len + 1, 1]], np.float64)
self.input_train.append(x)
self.output_train.append(y)
self.X_train = np.array(self.input_train)
self.Y_train = np.array(self.output_train)

一样,对测试数据,我界说了一个方式返回测试数据

神经收集模子

对这个项目,我利用了两种神经收集模子:多层感知器(MLP)和长短时间模子(LSTM)。 我将扼要介绍这些模子的工作道理,可是要领会MLP的工作道理,请查看本文。 对LSTM,请查看Jakob Aungiers撰写的这篇优异文章。

MLP是最简单的神经收集情势,此中输入被反馈送到模子中,而且利用特定权重,值经由过程埋没层向前馈送以发生输出。 进修来自于经由过程埋没层反向传布以改变每一个神经元之间权重的值。 MLP的一个问题是缺少“记忆”。 对之前的练习数据中产生的工作没有任何意义,和这可能会若何影响新的练习数据。 在我们的模子的上下文中,一个数据集中的十天数据与另外一个数据集之间的差别可能很主要(例如)可是MLP没有阐发这些关系的能力。

提示:如果您觉得本文不错,请点击分享给您的好友!谢谢

相关推荐

评论