3

我想做的是采用某种股票模式(定义为一系列 x 和 y 坐标)并将其与历史股票价格进行比较。如果我在历史价格中发现任何与我定义的模式相似的东西,我想将其作为匹配项返回。

我不确定如何确定两条曲线的相似程度。我做了一些研究,你可以找到两条直线的相似性(使用线性回归),但我还没有找到比较两条曲线的好方法。

我现在最好的方法是从我正在查看的历史数据范围中获取几个高点和低点,找到线的斜率,然后将它们与我试图匹配的模式的斜率进行比较,看看它们是否'大致相同。

有更好的想法吗?我很想听听他们的声音!

编辑:感谢您的输入!我之前考虑过最小二乘法,但我不确定该去哪里。不过,在我收到输入之后,我认为首先计算每条线的最小二乘以稍微平滑数据,然后像 James 建议的那样缩放和拉伸模式应该可以得到我想要的东西。

我计划使用它来识别股票中的某些技术标志以确定买卖信号。已经有一些网站在某种程度上可以做到这一点(例如 stockfetcher),但我当然想自己尝试一下,看看是否可以做得更好。

4

6 回答 6

2

计算每个点上残差(y 差)的总最小二乘。这应该为您提供几何拟合的度量(它们看起来有多相似)。然后,您应该能够为“足够相似”设置一些容差。

http://en.wikipedia.org/wiki/Curve_fitting

于 2008-12-18T00:38:43.150 回答
1

数学不是我的强项,但是您也许可以使用Correlation

计算两个数据集之间的相关值,如果相关性大于某个值(0.8?),则认为这两个数据集足够相似。

于 2008-12-18T02:34:30.857 回答
0

一种想法可能是采用不同时间范围的移动平均线(每周、数月、数年;每周数月、数年等),并将它们与现在的移动平均线进行比较。

单个平均值也可以让您更轻松地进行比较。如果平均值中的连续项目采用某种标准化形式(例如从 0..1 考虑拆分等),您可以将向量中的连续元素相互比较一些范围epsilon,并获得比赛的潜力。

只是一个想法。

Mathworld ( http://mathworld.wolfram.com/ ) 也应该有一些曲线比较。

于 2008-12-18T00:27:23.063 回答
0

问题之一是使用非线性函数的曲线拟合并不总是适用于您的某些模式,具体取决于它们的复杂程度。您可以使用二次或三次或其他多项式的阶数来获得更准确的结果,但它并非在所有情况下都有效,尤其是在数据随时间发生任何急剧变化的情况下。

老实说,我认为一个合理且相对简单的解决方案是“缩放”和“拉伸”您的模式,使其与历史数据出现在相同的范围内。您可以对 x 轴使用插值,对 y 轴使用乘法加偏移。之后,只需查看每个点的平方差的平均值,如果低于阈值,则可以认为它是匹配的。它需要进行一些调整才能获得可预测的结果,但我认为这是一种很好的方法,它应该允许您定义任何类型的模式,而无需依赖回归产生良好拟合的曲线。本质上它只是统计的应用。您还可以查看标准偏差或方差以获得更全面的方法。

于 2008-12-18T00:30:50.983 回答
0

或者看看衍生品?

理论上,股票价格运动通常被建模为带有漂移因子的布朗运动。(我知道的很少,但是看看这里

如果你不介意我问,那可能是什么目的?

于 2008-12-18T00:33:39.917 回答
0

最小二乘并不是你能做的最好的。使用 RANSAC 算法。它会处理这种数据,因为这种数据非常不可预测,而且经常是嘈杂的。

于 2009-03-20T21:11:06.130 回答