我正在开发一个使用一类股票的程序。 其中一种方法应该计算股票的当前价值。 说明说"股数乘以当前价格"。 我有一种方法可以通过将此当前值乘以随机百分比来更新价格。 运行程序后,getCurrentValue 返回的值将与初始值相同, 那就是它永远不会改变。然后我将当前价格的变量更改为静态,现在当前价值的值发生了变化,但它返回的答案确实很高。类似于 3.7E18 的东西。最初将当前价格设置为 100。
我的代码有问题还是说明错误? 我真的不知道股票是如何估值的。
这是我的一些代码:
private static double currentPrice;
public void updatePrice(){
double multiplier = 1.05 + new Random().nextGaussian() * 0.25;
currentPrice = getCurrentValue() * multiplier;
}
public double getCurrentValue(){
double currentValue = numShares * currentPrice;
return currentValue;
}
您的当前价值是整只股票的总价值。您可以使用此值来确定新价格。这是价格和交易量的双倍。从乘法中删除音量,您将获得合理的价格。此外,当前价格应属于实际股票,而不是所有股票的一个变量。所以它不应该是静态的。
class Stock {
private double currentPrice=1;
public void updatePrice(){
double multiplier = 1.05 + new Random().nextGaussian() * 0.25;
currentPrice *= multiplier;
}
public double getCurrentValue(){
double currentValue = numShares * currentPrice;
return currentValue;
}
}