我正在使用下面的ActiveQuant FinancialLibrary SimpleMovingAverage函数SMA():
以下算法是否存在错误,通过查看“未来”来计算平均值(因为它&i;(期间+跳过))?
public static double SMA(int period, double[] vals, int skipdays) {
double value = 0.0;
for (int i = skipdays; i < (period + skipdays); i++) {
value += vals[i];
}
value /= (double) period;
return value;
}
for循环可以替换为下面的那个,它向后看。
for (int i = skipdays - period; i < skipdays; i++) {
value += vals[i];
}
我错过了什么吗?
答案 0 :(得分:1)
我没有看到任何错误。该算法正确计算数据数组的平均值,从索引skipdays
(包括)到索引skipdays + period
(不包括)period > 0
。
也许你需要重新解释这个问题。