什么是计算简单移动平均的最快库/算法? 我编写了自己的代码,但在330,000项十进制数据集上运行太慢了。
- 周期 / 时间(毫秒)
- 20 / 300;
- 60 / 1500;
- 120 / 3500。
这是我的方法的代码:
public decimal MA_Simple(int period, int ii) {
if (period != 0 && ii > period) {
//stp.Start();
decimal summ = 0;
for (int i = ii; i > ii - period; i--) {
summ = summ + Data.Close[i];
}
summ = summ / period;
//stp.Stop();
//if (ii == 1500) System.Windows.Forms.MessageBox.Show((stp.ElapsedTicks * 1000.0) / Stopwatch.Frequency + " ms");
return summ;
} else return -1;
}
Data.Close[]
是一个固定大小(1,000,000)的十进制数组。
decimal
具有 96 位精度,对于这种累积求和计算而言比double
或float
要表现出更好的性能。 - nneonneo