首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >查找股票图表的最小最大值

查找股票图表的最小最大值
EN

Stack Overflow用户
提问于 2011-08-15 09:57:55
回答 6查看 13K关注 0票数 27

有没有什么特别的算法可以让我在上面的图片中找到最小和最大点?

我有文本格式的数据,所以我不需要在图片中找到它。股票的问题是,他们有太多的本地mins和maxes,简单的衍生品是行不通的。

我正在考虑使用数字滤波器(z域),并平滑图形,但我仍然有太多的局部最小值和最大值。

我也尝试使用移动平均来平滑图形,但是我还是有太多的many和mins。

编辑:

我读了一些评论,我只是不小心圈出了一些最小值和最大值。

我想我想出了一个可能行得通的算法。首先找到最小点和最大点(当天的最高点和最低点)。然后画三条线,一条是从开到高或从低到低,然后是从低到高或从高到低,最后是闭合。然后,在这三个区域中的每个区域中,找到离直线最远的点作为我的最高点和最低点,然后重复循环。

EN

回答 6

Stack Overflow用户

发布于 2011-09-24 00:16:13

你会注意到,很多答案都是对导数进行了某种低通滤波。某种移动平均,如果你愿意的话。fft、方形窗口移动平均和指数移动平均在基本水平上都非常相似。然而,考虑到在所有移动平均线中的选择,哪一个是最好的?

答案是:高斯移动平均;正态分布的移动平均,你知道的。

原因是:高斯滤波器是唯一不会产生“假”最大值的滤波器;一个从一开始就不存在的最大值。无论是连续数据还是离散数据,理论上都已经证明了这一点(但请确保对离散数据使用离散高斯!)。随着高斯σ的增加,局部最大值和最小值将以最直观的方式合并。因此,如果您希望每天不超过一个局部最大值,则将sigma设置为1,依此类推。

票数 5
EN

Stack Overflow用户

发布于 2011-08-15 17:11:17

只需以精确但可调的方式定义您所说的最小值和最大值,然后调整它,直到找到合适的最小值和最大值。例如,您可以首先通过将每个值替换为该值及其左侧和右侧的N个值的平均值来平滑图形。通过增加N,可以减少找到的最小值和最大值的数量。

然后,您可以将最小值定义为一个点,在该点上,如果您向左和向右跳过A值,则下一个B值都会显示一致的递增趋势。通过增加B,可以找到更少的最小值和最大值。通过调整A,您可以调整允许的最小值或最大值的“平坦”程度。

一旦使用了可调优算法,您就可以调整它,直到它看起来正确为止。

票数 2
EN

Stack Overflow用户

发布于 2011-09-20 20:14:54

您可以使用Spline method为原始函数创建具有所需程度的争用approximation polynom。有了这个多项式之后,在生成的多项式上使用基本演算查找局部最小值/最大值。

请注意,样条方法给出了一个近似多项式,它既是“平滑的”,因此很容易找到局部min/max,并且两者都尽可能接近原始函数,因此局部min/max应该非常接近原始函数中的真实值。

为了提高精度,在生成的多边形中找到局部最小值/最大值后,对于表示局部最小值/最大值的每个x0,您应该在所有x中查找使得x0-delta < x < x0 + delta,以找到该点表示的实际最小值/最大值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7061071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档