机器学习可以揭露股票背后的规律,进行市场预测吗?

全文共2219字,预计学习时长7分钟

机器学习可以揭露股票背后的规律,进行市场预测吗?_第1张图片

图源:Unsplash

当建立第一个基本回归模型或分类模型时,我们就看到开发人员在考虑用机器学习进行预测的“野心”了。

金融市场作为最早的采用机器学习(ML)市场之一。20世纪80年代以来,人们一直在使用ML以发现市场上的规律。虽然ML在预测市场结果方面取得了巨大成功,但最近的深度学习并没有对金融市场的预测有多大帮助。

 

海量的时间序列数据,加之年轻人们“懒”于社交,不可抗拒地使人再次有了寻找老旧却有价值事物的想法。

 

机器学习可以揭露股票、货币和财务指标背后的规律吗?可以去进行市场预测吗?

 

光想是没用的,要行动起来。

机器学习可以揭露股票背后的规律,进行市场预测吗?_第2张图片

 

网上有很多短小的教程,这是一个不错的起点。这些教程演示了如何提取股票的历史记录,或是计算一些指标,然后将其馈送给回归算法,并尝试预测第二天的市值。或者使用分类器预测股票是上涨还是下跌,而无需预测市值。

 

基于上文,我有两个想法。首先,我想要更广的涉及面。我推测,某些股票、货币和财务指标之间可能存在隐藏的关系,这些关系太微妙了,难以发现,但机器学习算法可以将这些关系明朗化。

 

其次,我不会挑选想要预测的股票。我打算训练所有模型,然后看看哪支股票表现最好。我的想法是,某些公司可能比其他公司预测的更准确,因此我需要找到它们。

 

以下是我行动的过程和学到的内容。

 

首先,我下载了标准普尔500指数中大多数股票的历史记录、许多货币价值历史记录和几十个财务指标。Python脚本负责将它们转换为一致的格式,填充缺失值,并删除不能追溯到2000年初期的时间序列。

 

总而言之,无用数据清除后,我拥有一张整齐的Pandas表,其中包含一千列近18年的数据。

机器学习可以揭露股票背后的规律,进行市场预测吗?_第3张图片

图源:Unsplash

完成后,我使用出色的 TA-lib 库计算了5、10和30天窗口的每个时间序列的指标。

 

我没有财务背景,也不知道哪些会真正增值,所以我添加了很多种股票,然后使用模型进行分类。数据列极多。数据集将要输入32,000列以上的训练模型。

 

考虑到整体性能以及是否能够轻松查看模型的预测功能,我选择XGBoost算法。我将其设置为遍历数据集的所有股票,为每个股票训练两个模型。第一个是分类器,它可以预测第二天股票会上涨还是下跌。第二个是回归模型,用于预测第二天的收盘价。

 

对于每种模型,我会使用95%的可用数据进行训练,然后将剩余数据用于验证测试,模拟从未见过的数据。剩下的5%大约相当于3个月的交易数据。任何机器学习模型都可以很好地预测训练过的数据——诀窍是使其更通用,并在从未公开的数据上执行。

 

用1000美元的模拟投资进行验证。如果预测股票会上涨,则买入;如果预测下跌,则卖出。没有考虑交易成本,因为我想看看结果是什么样子。

 

JetsonTX2运行了一个月。

 

有何发现呢?

机器学习可以揭露股票背后的规律,进行市场预测吗?_第4张图片

图源:Unsplash

不出所料,大多数股票的结果都很差,准确度并不高。但是,有些数据在验证上表现得异常出色。在3到6个月内,模拟资金增长了两倍或三倍,而有一组资金数据在这段时间内收获了20倍的利润。

事实证明,这个结果太出乎意料了,谁能想到呢?

 

请记住,这是算法从未用过的数据,即最后保留在训练数据集中的那5%。

机器学习可以揭露股票背后的规律,进行市场预测吗?_第5张图片

上图是股票收盘价,下图是现金。接近零是买入。

是否有一些与市场指标巧妙关联的股票?可以进行预测吗?如果是这样,就可以从价格波动中赚钱。

 

下载巨型数据集几个月后,我编写代码并运行。我进行了更新,输入最新的交易数据,决定查看该模型在此时间段内的运行情况。它们在验证运行方面做得很好。

 

如果在过去的几个月中一直用它们进行实时交易,它们的性能是否也很好?这一点让我感到非常兴奋。

 

结果令人费解和沮丧。在最初的训练和验证运行中表现出色的模型在运行后续数据时可能还不错,但也可能会严重失败并烧毁所有的种子资金。模拟有一半几率会赚钱,一半几率会失败。有时,它的成功率大于50%,而有时却要糟糕得多。

机器学习可以揭露股票背后的规律,进行市场预测吗?_第6张图片

图源:Unsplash

发生了什么呢?它本来看起来是很有前瞻性的。

我最终明白了自己所做的一切。

 

如果股价是随机波动的,成功的概率大约是50%,这正是所期望的。用程序搜寻数百只股票来寻找表现良好的股票,的确在无意中发现了一些在验证时间范围内预测良好的股票。但是,仅在几周或几个月之后,在随机游动的另一部分中,程序失败了。

 

没有任何微妙的潜在模式。这个模型只是偶然走运了几次,我恰好选取的那些模型,本实验是不可重复的。

 

因此,问题就清楚了,机器学习不是万能的。它无法预测随机序列,在训练模型时,要当心自己的偏差。仔细的验证至关重要。

 

当然我确信,自己不是最后一个尝试这种想法的倒霉人,但谨慎行事仍然是必修功课。

机器学习可以揭露股票背后的规律,进行市场预测吗?_第7张图片

图源:Unsplash

如果你想学习,就要少碰随机时间序列。模拟,仔细验证,并注意自己的偏差。

 

希望大家能学习到一些东西,祝大家实操成功!

机器学习可以揭露股票背后的规律,进行市场预测吗?_第8张图片

 

 

留言 点赞 关注

我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

你可能感兴趣的:(人工智能,AI,热点文章)