19

给定一组与Motley Fool CAPS 系统非常相似的数据,个人用户在其中输入各种股票的买入和卖出建议。我想做的是展示每个建议,我猜想(1-5)它是否是未来股价(或每股收益或其他)的良好预测器<5>(即相关系数 = 1)或一个可怕的预测变量(即相关系数 = -1)或介于两者之间。

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

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

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

我的想法是,我可以展示一系列屏幕,并允许我通过显示特定时间段内可用的绝对数据、市场和行业表现来对每个单独的推荐进行排名。我会按照详细列表对股票进行排名,以便排名尽可能客观。我的假设是单个用户的正确率不超过 57%——但谁知道呢。

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

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

现在这里是超级症结所在。我从来没有上过人工智能课/读过人工智能书/更不用说机器学习了。因此,我正在寻找指导——我可以适应的类似系统的示例或描述。寻找信息或任何一般帮助的地方。或者甚至把我推向正确的方向开始......

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

感谢您提前提供任何建议。

4

8 回答 8

35

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

今年的学期项目是根据新闻报道自动预测股价走势。一个团队在相当小的样本上具有 70% 的准确率,这还不错。

关于你的问题,很多公司在配对交易中赚了很多钱(找到一对通常相关的资产,并在它们分歧时买入/卖出对)。请参阅击败经销商的 Ed Thorpe的著作。他平易近人,有点滑稽,如果不是脾气暴躁的话。他长期经营一家优秀的对冲基金。

使用数据挖掘来预测违约(无法偿还债务)的公司并做空†它们,并使用收益购买违约可能性较小的公司的股票,可能还有一些空间。看看生存分析。在 Google Scholar 中搜索金融期刊中的“预测困境”等。

此外,预测在 IPO 后将失去价值的公司(并做空它们。编辑:Facebook!)。在学术文献中存在可以利用的已知偏见。

另外,研究资本结构套利。在这种情况下,公司股票的价值表明一种估值,但债券或期权的价值表明另一种价值。买入便宜的资产,做空昂贵的资产。

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

看在上帝的份上,请阅读塔勒布的《被随机性愚弄》 。

† 做空股票通常涉及致电您的经纪人(与您有良好关系)并借入一些公司股票。然后你把它们卖给一个可怜的混蛋。稍等片刻,希望价格下跌,您购买更多股票并将它们还给您的经纪人。

于 2010-04-22T17:57:45.670 回答
27

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

我只尝试过基因编程,但在“从经验中学习”分支中你会发现神经网络。GP/GA 和神经网络似乎是用于股票市场预测的最常探索的方法,但如果您在Predict Wall Street上进行一些数据挖掘,您也许可以利用朴素贝叶斯分类器来做您想做的事情有兴趣做。

花一些时间学习各种 ML/AI 技术,获取一个小数据集并尝试实现其中一些算法。每个都有其优点和缺点,因此我建议您尝试使用 Naive Bays 分类器(或类似的东西)将它们组合起来。

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

我在 09 年 9 月 9 日开始用真钱进行实时交易。是的,那是神奇的一天!我在开市前发布 GP 的预测(即 Twitter 上的时间戳),我也在开市前下订单。这段时期的利润一直在 25% 左右,我们一直在击败买入并持有策略,而且我们的表现也超过了标准普尔 500 指数,而股票表现不佳。

一些资源:
这里有一些您可能想要查看的资源:

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

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

有趣的事实:
RE:猴子比大多数专家都能挑得更好
显然老鼠也很不错

于 2010-04-22T03:54:03.597 回答
7

我知道猴子比大多数专家都能挑选得更好,那为什么不是人工智能呢?只是让它随机并称它为“高级猿梅森捻线机AI”或其他东西。

于 2010-04-21T22:28:43.100 回答
4

“赚钱”系统的卖家比这些系统的用户赚的钱要多得多。

与其试图预测你无法控制的公司的业绩,不如自己组建一家公司并通过提供产品或服务来满足一些需求(是的,你的产品可能是一个股票预测程序,但有些不太理论的东西是可能是一个更好的主意)。努力工作,你公司自身的价值会比你在股票上做的任何赌博都要快得多。您还将有很多机会将编程技能应用到您自己公司的无数内部需求中。

于 2010-06-26T02:36:46.513 回答
2

几个月来我一直在考虑这个问题。

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

我也在考虑 Kohonen 自学地图。

于 2010-04-22T06:38:27.790 回答
2

如果您想走这条漫长、黑暗、孤独的选股之路,您可能需要研究使用高级数据挖掘软件(如 SPSS 或 SAS 或其他十几种软件中的一种)的数据挖掘技术。

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

还要记住,您的数据将必须不断更新、修剪、调整,因为市场条件会不断变化。

我已经针对研究生级别的课程进行了研究,基本上我在选择股票第二天会上涨还是下跌方面取得了一些成功,但是我的数据集中的股票数量相当少(200)而且已经结束了一个非常短的时间框架,具有一致的市场条件。

我想说的是,您想要编写的代码已经在已经存在的软件中以非常先进的方式完成了。您应该能够将数据输入到其中一个程序中,并使用回归、决策树或聚类来完成您想做的事情。

于 2010-04-21T22:42:54.187 回答
0

这些关于投机过去表现的评论也适用于您。

于 2010-04-22T16:55:54.383 回答
-1

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

我们描述为寻求真理的算法的工作原理如下。

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

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

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

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

一种这样的实现要求人们使用两个参数进行投票。一个是他们的实际投票,另一个是保证百分比,这基本上意味着特定参与者对他们的投票有多少保证或信心。这样一来,信任度高的人在不确定自己的赌注时就不必冒险降低信任度,但同时可以合并赌注,只是不会影响甜蜜点如果使用低保证。同样,如果猜测是直接在最佳位置上,并且确定性较低,他们将不会获得使用高确定性时所获得的好处。

于 2021-04-10T05:31:11.570 回答