如何计算噪声时间序列数据的斜率

时间:2010-08-15 04:23:27

标签: artificial-intelligence machine-learning time-series quantitative-finance forex

我的流程消耗来自外汇市场的多个实时价格数据来源,并生成2个时间序列数据流作为其输出。输出有噪声(即不像sin或cos那样平滑),两个流都绑定在0和100之间。

机器学习或人工智能中是否有一种方法可以帮助我识别出1个信号是陡峭阳性而另一个是陡峭阴性?我玩弄了简单的移动平均线和指数移动平均线来平滑线条,但是我输了太多信息。

4 个答案:

答案 0 :(得分:0)

您可以应用超级机器学习。

功能:最后 n 数据点的值。 标签:-1减少+1增加

现在你只需要一些带标签的样本这将给出一个这样的表格(这里 n = 5):

# t-4, t-3, t-2, t-1, t, label
#-----------------------------
54, 43, 98, 1, 45, +1
21, 12,  5, 98, 4, +1
 6, 78, 45, 65, 37 -1
...

现在拿一些即用型机器学习库(如WEKA)并在此训练一个分类。根据算法,您还可以获得结果确定性的度量。您需要多少标记的训练样本很难预测。尝试100开始,但它也可能超过1000.这些功能也有很多潜力。如果你不使用绝对值而不是差异,它可能会更好。

标记的训练数据可以手动标记。但对于市场预测,通常可以根据历史数据自动执行此操作。

应该有很多关于股票预测的文献。人们已经(现在仍然)在这个领域进行了多年的研究。以上当然是非常原始的。


另一个方法是通过你的数据拟合曲线并采用它的衍生物。你对数据的了解越多,这个问题就越强烈。例如,如果您对产生噪声的概率模型有很好的了解,则可以推导出“最佳”拟合(最大可能性等)。如果您对基础信号(您尝试测量的信号)有所了解,这也有帮助(它是线性的吗?是二次的吗?,libschiz cont。?。有界?,......)。

这个approch需要特定于问题的知识,这些知识可能无法获得并且需要大量的数学知识。但它可能非常有价值,因为你不会像机器学习一样使用黑盒子,而是使用你理解并可以分析的材料模型。

答案 1 :(得分:0)

Lawnmower's suggestion听起来不错,但还有几点需要考虑:

  • 首先,就我理解的问题而言,有两种以上可能的标签:

    • 发出信号1;信号2下来
    • 信号2向上;信号1下来
  • 其次,手动标记数据将非常繁琐,因为很可能您需要大量数据来训练,测试和验证模型。 Mechanical turk可以帮助您完成此任务

  • 即使您接受了割草机的建议,我也会在培训前稍微平滑一下数据

  • 将每个输入变量与另一个输入变量对应输出,以了解变量如何影响结果。如果实际上不可能成对绘图,请尝试使用PCA或其他降维技术

答案 2 :(得分:0)

如何确定一个人是陡峭的正面而另一个是对原始数据的陡负。然后只将结果标记为有效,如果它在该状态持续足够长的时间或者在某个小时间段内足够大的分数。

答案 3 :(得分:0)

我不知道这个话题是否仍然存在,但我想我会提到我们有一些时间序列数据也非常嘈杂。为了生成显示数据的图形的趋势线,我们执行了“峰值降低”操作。

对于每个数据点,我们采用了之前5个数据点的平均值和标准差(在最大日期范围内 - 我认为是21天)。然后,我们测量当前值的距离与前5的平均值,以标准偏差表示。如果该点超过均值的2 std dev以上,我们在计算趋势线时使用均值而不是实际值。

如果有一个大的跳跃或下降,结果是持久的,峰值减少步骤会随着时间的推移而调整,并开始将异常值视为“新常态”。