gpt4 book ai didi

java - 如何在Java中设置初始移动平均值?

转载 作者:行者123 更新时间:2023-12-01 09:29:20 28 4
gpt4 key购买 nike

我想使用以下公式主动计算股票数据的移动平均值:

 public class Average {

private static double usdJpy;
private int counter = 1;

private double movingAverageUsdJpy_ = 100.5;

public void calculateAverage(){

ReadData myData = new ReadData();

usdGbp = myData.getUsdGbp();
usdJpy = myData.getUsdJpy();

System.out.println("Before: " + movingAverageUsdJpy_);

movingAverageUsdJpy_ = (counter * movingAverageUsdJpy_ + usdJpy) / (counter + 1);

counter++;

System.out.println("Moving Average: " + movingAverageUsdJpy_);
}

}

-> Counter 是数组中元素的数量。

我的问题是,由于股票数据已经有移动平均线,我想将初始移动平均线值设置为该值(例如 97.883)。然而,每次我调用我的方法时,我的程序为 movingAverage 计算的最新值将被我之前设置的初始值覆盖,因此给出错误的结果。我不能真正使用 Final,因为每次调用该方法时都需要更新 movingAverage,所以真的很卡!

有办法解决这个问题吗?

最佳答案

你的公式不正确。如果 counter 是尚未递增的值,则使用

移动平均 = (计数器 * 移动平均 + 最新率)/(计数器 + 1)

然后将 counter 加 1。请注意,如果您希望 counter 的大小固定(在报告此类财务数据时很常见),那么您需要将这个数量的元素保留在内存中。

关于java - 如何在Java中设置初始移动平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39574830/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com