机器学习交易——如何使用回归预测股票价格?

作者:Sushant Ratnaparkhi
编译:BigQuant


前几天,我读了一篇关于人工智能到目前为止是如何发展的以及它将走向何方的文章。我被吓了一跳,我也很难理解作者所描绘的未来的可能性。

这是人工智能在医学领域应用的可能性之一:

外科医生可以用她的运动皮层控制一个机器手术刀,而不是用她的手。她可以从手术刀接收到感觉输入,这如同她的第11个手指一般。这就好像她的一个手指是手术刀,她可以不用任何工具就可以做手术,这能让她能够更好的操作。一个没有经验的外科医生在做一个复杂的手术时,可能会让她的几个导师来到现场,给予她指导或建议。如果真的出了什么问题,他们中的一个可以“控制方向盘”,把他们的运动皮层和她的输出连接起来,并且控制她的手来进行接下来的手术。

目前,人工智能和机器学习已经取得了足够的进步,所以我们现在可以将这些机器学习技术应用到交易中,并达到很高的精确程度。

什么是机器学习

机器学习是指计算机算法能自主地从数据和信息中学习并改进现有的算法。

简单地说,机器学习是这样的,以下图这个孩子为例,我们把他当成是一台智能机器。

  • 给他一个棋盘
  • 解释游戏的基本规则
  • 给出100个好的游戏记录
  • 把孩子锁在房间里(也放些食物和水)

在这里插入图片描述

十天后。

在这里插入图片描述

在这个象棋学习案例中,小孩就好比机器,过去的游戏记录是数据,象棋基本规则是算法。我们只给机器提供了一个基本的算法和一些数据来学习。机器通过对数据筛选,了解怎样操作能提高赢得游戏的机会,并将这些操作添加到算法中。这就是机器学习的概念。与人类相比,计算机的优势在于,计算机能够快速地完成这一任务,并且是针对更大的数据集和持续的时间段。

然而,这只是一个简单例子,机器学习还有很多其它有趣的应用场景。

此外,人们经常把人工智能、机器学习和深度学习搞混。人工智能是一个包含很多东西的大领域,而机器学习是人工智能的一部分,而深度学习是机器学习的一个子集。下图能够清晰展示三者的关系。

在这里插入图片描述

为什么机器学习最近变得如此流行?

如果你深入挖掘,你会发现机器学习已经存在很久了。例如,在1763年,Thomas Bayes发表了一篇文章—— ‘An Essay towards solving a Problem in the Doctrine of Chances’ ,这篇文章试图解决“机会主义”的问题,从此便有了“贝叶斯规则”,这是机器学习中使用的重要算法之一。

但今天,机器学习正以前所未有的速度向前发展。我们可能没有意识到但是机器学习的应用到处都是:

  • 推荐系统(facebook新闻推送,亚马逊产品推荐)
  • 自然语言处理(Siri,谷歌语音)
  • 医学诊断(图像点样)
  • 目标识别与跟踪(面部识别、车牌读取、跟踪)
  • 挖掘“大数据”分析(这种模式的股票通常会上涨)
  • 数据的分类与聚类(欺诈检测、序列挖掘等)

所有这些都是基于从过去的数据中学习并预测未知/新情况的结果的概念,就像人类学习的方式一样。但电脑的优势在于,它们可以处理更大范围的数据,而且复杂得多,这是人类无法做到的。

在当今的环境下,每天都会生成上万亿字节的数据。对于人类来说,要从中进行处理并做出有用的推断是不可能的。当然,聪明的人或许能够做出更好的预测和推断,但机器学习算法在规模和复杂性方面都超过了我们。随着时间的推移,这些计算机的预测将超越人类的水平。

因此,当每个行业都开始以某种形式实践机器学习时,作为一个交易员,为什么不利用这一点来为自己谋利,赚更多的钱呢?你猜怎么着?机器学习和交易是紧密相连的,就像奶酪和葡萄酒一样。一些顶级交易员和对冲基金经理已经使用机器学习算法做出很好的预测,并赚了不少钱!

线性回归是什么?

这里是标准的定义:线性回归是一种建模标量因变量y与一个或多个表示为X的解释变量(或自变量)之间关系的方法。

让我以一种非常基本的方式来解释回归的概念,假设你经营一家生产汽车的公司,你想知道原材料(比如钢铁)的价格变化将如何影响汽车的销售。一般的理解是,钢铁价格的上涨将导致汽车价格的上涨,从而导致需求减少,进而导致销量减少。但是我们如何量化它呢?我们如何根据钢价的变化程度来预测销售量的变化。这时回归就出现了。

让我们看看以下的示例数据:

在这里插入图片描述

我们把这个放到图中,这个图叫做散点图:

在这里插入图片描述

Y轴是汽车的销售量(这是我们的因变量),X轴是钢的价格(自变量)。通过一般的观察,你可以看出,只要钢价下跌,汽车的销量就会提高。

样本数据是回归算法的训练材料。现在,它将帮助我们预测,如果钢铁价格下降到168,我们可能实现什么样的销售。

因此,当您将样本数据放入excel电子表格并执行回归时,您将得到如下所示的回归直线

在这里插入图片描述

里面有一些奇怪的数字,为了便于的理解,我只关注其中的一些指标。线性回归函数的目的是找到一条与所有数据点最接近的直线,这样当我们想要计算一个新的因变量的预测时,我们可以选择在X轴上与自变量对应的直线上的后续点。

在这里插入图片描述

因此,上述计算是基于下面的方程进行的,也称为回归表达式。

在这里插入图片描述

  • “Y”——汽车销量或因变量,这就是我们要预测的
  • “X”——钢铁价格或自变量,这将被用来预测“Y”
  • “b0” -截距是我们的回归直线与“y”轴相交的值
  • “b1” -斜率系数,它告诉我们X值增加1个单位将使Y值变化多少个单位
  • “ei” -误差项,当我们用这个方程表示的任何变量的关系不完全代表自变量和因变量之间的实际关系时,表示这种差异的变量称为误差项或剩余、扰动或余数项
  • R2 - R平方或相关系数,这显示了数据与拟合回归线的距离

如果你看上面的回归图,你会看到一个回归方程,也就是:

y = -4.6129x + 1297.7

在这个方程中,

b1 = -4.6129
b0 + ei = 1297.7

注意,斜率系数或b1是负的,这意味着两个变量(汽车的钢材价格和销售)是负相关的,这意味着当钢材价格上涨时,汽车销量下降。

方程的R2是0.92,说明拟合度很好,这个值越接近1,预测能力越强。

现在说到最精彩的部分,以钢铁价格的任何变化为例,比如价格为168时,我们要计算汽车销售的预期增长。

(汽车销售)= -4.6129 x(168) + 1297.7。
钢价跌至168时,汽车销售量= 522.73辆

即使有多个变量影响了汽车的销售,我们也能计算出一个预测。当回归中有多个自变量时,称为多元回归模型。

回归和股票市场

现在,让我向你们展示一个现实生活中的回归在股市中的应用。例如,我们持有Canara银行股票,想看看银行的Nifty(银行指数)价格的变化如何影响到Canara的股价。我们的目标是找到一个函数,它将帮助我们根据指数的给定价格预测Canara银行的价格。

我们将采用Bank Nifty & Canara最近两个月的收盘价,我们将采用调整后的收盘价作为数据一致性。请注意,拥有准确的数据是非常重要的,因为即使是数据中的一个数字也会使回归函数发生显著的变化。

在这些数据中,我们将前40天作为训练数据,后20天作为测试数据,其中我们将检查回归算法的预测与实际数字的接近程度。

使用相同的excel函数,我们根据前40天的训练数据画出了这条回归线它的决定系数(R2)为0.85。这意味着Canara银行和Bank Nifty有着85%的相关性。
这是回归表达式,

让我们看看算法的预测,预测用蓝色标出

看看后20天我们用模型预测的这些数据,我们可以看到预测值与实际值非常接近,预测结果可能是不能用来直接交易的,但这给了我们一个方向。你可以通过添加多个独立变量来进一步改进该方法。这样做将有助于减少剩余或错误,并帮助您更接近实际价格。

我只用了2个月的数据,你可以用几年的数据得到更准确的结果。训练数据越多,结果越好。当你继续向它添加新的市场数据时,你会看到函数会通过重新计算系数和截距值而不断改进。

原文链接《机器学习交易——如何使用回归预测股票价格?


本文由BigQuant人工智能量化投资平台原创推出,版权归BigQuant所有,转载请注明出处。

posted @ 2019-03-09 11:16  BigQuant量化  阅读(37)  评论(0编辑  收藏  举报  来源