问题标签 [moving-average]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4290 浏览

c# - C#计算时间序列SortedList的移动中位数- 提高性能?

我有一种方法可以计算时间序列的移动中值。与移动平均线一样,它使用固定的窗口或周期(有时称为回溯期)。如果周期为 10,它将创建一个包含前 10 个值 (0-9) 的数组,然后找到它们的中值。它将重复此操作,将窗口增加 1 步(现在的值为 1-10)等等......因此是移动的部分。这个过程与移动平均线完全相同。

中值通过以下方式找到:

  1. 对数组的值进行排序
  2. 如果数组中有奇数个值,则取中间值。5 个值的排序数组的中位数将是第三个值。
  3. 如果数组中有偶数个值,则取中间值每一侧的两个值并将它们平均。6 个值的排序数组的中位数是 (2nd + 3rd) / 2。

我创建了一个函数,它通过填充 a List<double>、调用List<>.Sort(),然后找到适当的值来计算它。

计算上是正确的,但我想知道是否有办法提高这种计算的性能。也许通过手动滚动排序double[]而不是使用列表。

我的实现如下:

0 投票
4 回答
2512 浏览

iphone - 过滤罗盘读数

我正在使用指南针航向来旋转 MKMapView。旋转有点生涩,所以我试图像 iphone 上的谷歌地图一样过滤它(或似乎做了一些诡计)。

我正在尝试使用移动平均公式过滤来自 iphone 指南针的读数,但它在 359 和 0 之间的交叉处失败,因为它开始从 35x 向后平均到 0,并导致地图在从西方。

任何想法最好的方法是过滤这些数据,使其从 359 回到零并保持滚动平均值。

代码在这里:

谢谢你的帮助

0 投票
1 回答
3152 浏览

sql - sql server中的窗口移动平均

我正在尝试创建一个函数来计算SQLServer 2008中的窗口移动平均值。我对 SQL 很陌生,所以我遇到了一些困难。我试图对其执行移动平均的数据需要按天分组(它都是带时间戳的数据),然后需要对其应用可变的移动平均窗口。

我已经有一个按天(和@id)对数据进行分组的函数,它显示在底部。我有几个问题:

在移动平均函数中调用分组函数会更好还是我应该一次完成?

是否可以获取输入函数的日期的移动平均值,但返回n天开始移动平均值,以便返回数据的前n天的平均值不为 0?(即,如果他们想要从 2011 年 1 月 8 日到 2011 年 2 月 8 日的 7 天移动平均线,我在 2011 年 1 月 1 日开始计算移动平均线,以便他们定义的第一天有一个值?)

我正在研究如何进行移动平均,并且知道移动窗口似乎是最好的选择(currentSum = prevSum + todayCount - nthDayAgoCount) / nDays 但我仍在努力找出 SQL 实现这。

我有一个看起来像这样的分组函数(出于可见性目的删除了一些变量):

它返回一个像这样的表:

编辑:回答我问的第一个问题:

我最终创建了一个函数,该函数声明了一个临时表并将 count 函数的结果插入其中,然后使用示例 fromuser662852来计算移动平均值。

0 投票
2 回答
714 浏览

mysql - MySql中的10个周期移动平均线不使用日期

我有一个守门员数据表,下面的片段

我想获取每个守门员的 10 场比赛移动平均值,但我没有日期或比赛编号,例如他的第一场、第二场、第三场比赛等。比赛 ID 也按照在联赛中的顺序分配级别,因此第 200106 场比赛可能是他本赛季的第一场比赛,而 200165 场可能是他的第 2 场比赛,以此类推。

我的问题是:如何获得每个守门员每年分组的最大(10 场比赛移动平均)和最小(10 场比赛移动平均)?

另外,有没有办法使用 MySql 按守门员、年份对游戏 ID 进行排名?

0 投票
1 回答
194 浏览

timer - 用于计算平均值的滚动计时器阵列

语言: C++

开发环境: Microsoft Visual C++

使用的库: MFC

问题:这应该相当简单,但我无法完全理解它。我正在尝试计算给定时间内的滚动平均值 - 比如说五秒。每秒钟,我的程序都会收到一条数据消息,其中包含一些数字信息,包括处理过程中的 CPU 空闲时间。

我希望能够向用户显示五秒钟内的平均 CPU 空闲时间。我正在考虑只使用一个数组并每五秒存储一个值,但我不确定如何进行滚动部分。除非有其他内置方法可以进行滚动计算?

0 投票
0 回答
2057 浏览

r - R中矩阵和/或空间数据(邻域统计)的有效移动窗口统计

我正在使用 R 中的光栅和相关包来做一些遥感工作。对于我正在编写的许多函数,我很想快速计算邻域/移动窗口统计信息。不幸的是,我或其他人编写的任何 R 实现都非常非常慢。

我知道 caTools 包提供了用 C 语言编写的向量/时间序列功能,可以节省 10 倍以上的时间。是否有人熟悉为矩阵和空间数据提供此功能的类似包或函数?

快速示例:

理想情况下,我想更快地执行此操作并且用于更大的栅格。

非常感谢,尼克

附言。这里有一些关于 R 函数在向量上进行移动窗口操作的巨大速度差异的有趣讨论:http: //tolstoy.newcastle.edu.au/R/help/04/10/5161.html

0 投票
7 回答
12160 浏览

java - 移动平均/总算法

我需要在平面文件读取循环中跟踪过去 7 天的工作时间。它被用来衡量工作名册的“疲劳度”。

现在我有一些有用的东西,但它似乎相当冗长,我不确定是否有更简洁的模式。

目前,我有一个带有静态数组的 Java 类来保存最后 x 天的数据,然后当我阅读文件时,我砍掉第一个元素并将其他 6 个(一周滚动总计)向后移动一个。这个静态数组的处理是在它自己的方法中完成的,即。

我的问题:这是一种合理的设计方法,还是有一些非常明显和简单的方法来完成这项任务?多谢你们

0 投票
2 回答
7259 浏览

c# - C# MSChart 蜡烛棒和移动平均线图表。错误:公式错误 - 没有足够的周期数据点

你不能在你自己的帖子上投票 0

我正在尝试在每日数据上创建一个带有 MA(15) 的股票蜡烛。

我可以毫无问题地创建带有 OHLC 条的图表。

但是当我开始使用 MA 的 DataManipulator.FinancialFormula 时,我不断收到“公式错误 - 期间没有足够的数据点”的错误。

有人可以帮我解决这个问题吗?谢谢

这是代码。

0 投票
1 回答
496 浏览

r - 在没有 for/while 循环的情况下移动 60 d 相关性

我有一个包含两列的矩阵。我想计算两列之间的“运行”60 天相关性。是否有可能以 R 方式执行此操作,即不使用 for/while 循环。

基本上我的 t 日计算将基于 (t-60:t) 而 t-1 日将基于 (t-61:t-1) 等等。

0 投票
3 回答
1891 浏览

algorithm - 有效保存加权移动平均的数据结构/算法

在存储日志记录时,我想总结许多不同类别的移动平均值。想象一个服务,它一次保存 Web 服务器日志一个条目。让我们进一步想象一下,我们无权访问记录的记录。因此,我们只看到它们一次,但以后无法访问它们。

对于不同的页面,我想知道

  • 总点击数(简单)
  • “最近”的平均值(比如一个月左右)
  • “长期”平均值(一年以上)

是否有任何巧妙的算法/数据模型可以保存此类移动平均线,而无需通过汇总大量数据来重新计算它们?

我不需要精确的平均值(正好 30 天左右),只需要趋势指标。所以一些模糊性根本不是问题。它应该只是确保新条目的权重高于旧条目。

一种解决方案可能是为每个月自动创建统计记录。但是,我什至不需要过去一个月的统计数据,所以这似乎有点矫枉过正。它不会给我一个移动平均线,而是每个月都换成新的值。