我在下面使用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];
    }


我想念什么吗?

最佳答案

我没有看到错误。该算法正确地计算了数据数组的平均值,该数据数组的值从索引skipdays(包括)到索引skipdays + period(不包括)。

也许您需要改写这个问题。

10-08 20:17