使用人工智能(AI)来预测股票价格

时间:2010-04-21 22:24:39

标签: f# artificial-intelligence machine-learning finance classification

给定一组与Motley Fool CAPS system非常相似的数据,其中个别用户输入各种股票的买入和卖出建议。我想要做的是显示每个推荐,并且我想一些关于它是否是好的预测器的速率(1-5)< 5> (即相关系数= 1)未来股票价格(或eps或其他)或可怕的预测者(即相关系数= -1)或其间的某个地方。

每个推荐都会标记给特定用户,以便随时跟踪。我还可以根据sp500价格等因素跟踪市场方向(看涨/看跌)。我认为在模型中有意义的组件将是:

user
direction (long/short)
market direction
sector of stock

一直认为有些用户在牛市中比熊市更好(反之亦然),而有些用户在空头方面比在多头方面更好 - 然后是上述组合。我可以自动标记市场方向和行业(基于当时的市场和推荐的股权)。

我的想法是,我可以提供一系列屏幕,并允许我通过显示特定时间段内的可用数据绝对,市场和扇区输出性能来对每个推荐进行排名。我会按照详细的清单对股票进行排名,以便排名尽可能客观。我的假设是单个用户的权利不超过57% - 但谁知道。

我可以加载系统并说“让我们将推荐排名为90天前的股票价值预测”;这将代表一组非常明确的排名。

现在这里是关键 - 我想创建某种机器学习算法,可以在一系列时间内识别模式,以便当推荐流入应用程序时,我们保持该库存的排名(即类似于相关系数) )关于该建议的可能性(除了过去的一系列建议)将影响价格。

现在这里是超级难题。我从未参加过AI课程/阅读AI书籍/从不介意机器学习。所以我想寻找指导 - 我可以适应的类似系统的样本或描述。寻找信息或任何一般帮助的地方。或者甚至推动我朝着正确的方向开始......

我希望用F#实现这一点,并且能够用F#中的新技能给我的朋友留下深刻的印象,他们可以实现机器学习,并且可以包含在技术组合或博客空间中的某些东西(应用程序/源代码);

提前感谢您的任何建议。

9 个答案:

答案 0 :(得分:34)

我拥有MBA学位,并在顶尖的研究生院教授数据挖掘。

今年的项目一词是从新闻报道中自动预测股票价格走势。一个团队在一个相当小的样本上有70%的准确率,这也不错。

关于你的问题,许多公司在pair trading上赚了很多钱(找到一对通常相关的资产,并在他们分歧时买卖对)。请参阅writings的Ed Thorpe的Beat the Dealer。他是无障碍的,有点好笑,如果不是吝啬的话。他长期经营着一家优秀的对冲基金。

使用数据挖掘可能会有一些空间来预测将违约(无法偿还债务)和卖空†的公司,并将收益用于购买不太可能违约的公司的股票。看看survival analysis。在Google学术搜索中搜索金融期刊中的“预测遇险”等。

此外,预测在首次公开募股后会失去价值的公司(并将其缩短。编辑:Facebook!)。在学术文献中存在可以被利用的已知偏见。

另外,请查看capital structure arbitrage。这是当公司股票的价值表明一个估值时,但债券或期权的价值表明另一个价值。买便宜的资产,短的昂贵的资产。

技术包括生存分析,序列分析(隐马尔可夫模型,条件随机场,顺序关联规则)和分类/回归。

对于上帝的爱,请阅读塔勒布的Fooled By Randomness

†卖空股票通常涉及打电话给你的经纪人(你有良好的关系)并借入一些公司股票。然后你卖给一些可怜的混蛋。等一下,希望价格下跌,你买了一些股票,并把它们还给你的经纪人。

答案 1 :(得分:27)

我对你的建议:
那里有几个机器学习/人工智能(ML / AI)分支:
http://www-formal.stanford.edu/jmc/whatisai/node2.html

我只尝试过遗传编程,但在“从经验中学习”分支中你会发现神经网络。 GP / GA和神经网络似乎是用于股市预测目的的最常用的方法,但是如果你在Predict Wall Street上进行一些数据挖掘,你或许可以利用Naive Bayes分类器来做你所做的事情。对此感兴趣。

花一些时间了解各种ML / AI技术,获取一个小数据集并尝试实现其中一些算法。每个人都有自己的优点和缺点,所以我建议你尝试使用Naive Bays分类器(或类似的东西)来组合它们。

我的经历:
我正在研究硕士论文的问题所以我将使用遗传编程推销我的结果:www.twitter.com/darwins_finches

我在09/09/09以真实的钱开始直播交易..是的,这是一个神奇的日子!我在市场开盘前发布了GP的预测(即推特上的时间戳),我也在市场开盘前下单。这一时期的利润约为25%,我们一直超过买入和买入。保持策略,我们也表现优于标准普尔500指数,表现不佳的股票。

一些资源:
以下是您可能需要查看的一些资源:

Chatter:
“金融人”的普遍共识是,人工智能是一种伏都教科学,你不能让计算机预测股票价格,如果你尝试这样做,你肯定会放弃你的钱。尽管如此,同样的人会告诉你,只有唯一的在股票市场上赚钱的方法是建立和改进你自己的交易策略并密切关注它。

AI算法的想法不是建立Chip并让他为你交易,而是自动化创建策略的过程。

有趣的事实:
RE:猴子可以比大多数专家更好地选择 显然是rats are pretty good too

答案 2 :(得分:6)

我理解monkeys can pick better than most experts,为什么不是AI?只需将其随机称为“高级猿猴梅森捻线虫AI”或其他东西。

答案 3 :(得分:4)

“赚钱”系统的卖家然后由这些系统的用户赚了更多钱。

不要试图预测您无法控制的公司的业绩,而是自己组建公司并通过提供产品或服务满足一些需求(是的,您的产品可能是一个股票预测计划,但有点像较少的理论可能是一个更好的主意)。努力工作,你公司自身的价值将比你对股票做的任何赌博都快得多。您还将有很多机会将编程技能应用于您自己公司的众多内部要求。

答案 4 :(得分:2)

如果你想沿着这条漫长而黑暗,寂寞的道路试图挑选股票,你可能想要使用先进的数据挖掘软件(如SPSS或SAS或其他十几种软件之一)来研究数据挖掘技术。

您可能希望使用组合或技术指标和基本数据。数据很可能是高度相关的,因此需要使用PCA等功能减少技术来减少功能的数量。

另外请记住,由于市场条件会不断变化,您的数据将不断更新,修整和改组。

我已经用这个研究级别课程进行了研究,基本上我在选择股票是否会在第二天上升或下降但我的数据集中的股票数量相当小(200)时有所成功。这是在非常短的时间内,市场条件一致。

我想说的是你想要编码的内容已经在已经存在的软件中以非常先进的方式完成。您应该能够将数据输入到其中一个程序中,并使用回归,或决策树或聚类能够执行您想要执行的操作。

答案 5 :(得分:2)

您如何处理这样一个事实,即您开始使用系统时,您已经更改了系统,因此您的AI运行模式不再有效?

答案 6 :(得分:2)

我已经考虑了几个月了。

我正在考虑随机矩阵理论/ Wigner的分布。

我也在考虑Kohonen的自学地图。

答案 7 :(得分:0)

speculationpast performance上的这些评论也适用于您。

答案 8 :(得分:0)

我代表一群试图以一般形式预测股票的学者,这些形式也可以应用于任何事物,甚至是内容评级。

我们将其描述为求真算法,其工作原理如下。

基本上每个参与者都有自己的信用等级。这意味着您的信誉或可信度越高,他们的选票就越重要。可信度是通过每张投票与加权可信度的接近程度来计算的。就好像您越接近已针对可信度进行调整的平均投票数,您就会获得更好的可信度值。

例如,假设每个人都预测股票的价值将在 30 天内达到 X 值(期货期权)。平均预测的人会获得更好的信任。这里的关键是个人不知道平均值是多少,只知道系统。该系统通过对猜测进行加权来进一步调整,以便产生最佳可信度的目标点是那些已经被赋予更多可信度的选票。因此,最聪明的人(从历史上看是准确的)会投射出最佳点,用于进一步定义谁获得更多信任。

该系统也可以改进以随着时间的推移进行调整。例如,当您找到实际价值时,那些猜测它的人可以获得更高的信任度。在您无法知道未来结果的情况下,您仍然可以考虑未来平均加权可信度是否发生变化。如果人们及早发现趋势,他们可以获得更多奖励。关键是我们甚至不需要知道未来的结果,只要加权评级在未来发生变化就足以奖励那些早早在最佳位置下注的人。

这样的系统可用于对股票价格、货币汇率甚至内容本身进行评级。

一个这样的实现要求人们使用两个参数进行投票。一个是他们的实际投票,另一个是保证百分比,这基本上意味着特定参与者对他们的投票有多大把握或信心。这样,一个高信任度的人在不确定自己的赌注时不需要冒险降低他们的信任度,但同时,赌注可以被纳入,它不会像甜蜜点那样摇摆不定如果使用低保证。同样,如果猜测直接在最佳位置,且保证性较低,他们将无法获得使用较高保证性时所获得的收益。