我想制作一个模拟股票价格的程序,其中数据是随机的。我使用 Math 中的 random() 方法来生成数字。该程序添加一个 float ,并在经过一定限制后减去它。我的问题是:我想要值(value)突然下降和上升。我怎样才能生成这个?
这是我的代码:
private static float lastValue= 50.187786f;
private static float limit=49.627786f;
private static float min_value=0.334834f;
private float randomValue() {
double factor = Math.random()/10;
if (lastValue >limit+min_value){
lastValue=lastValue-(float)factor;
}else if(limit<limit-min_value){
lastValue = lastValue + (float) factor;
}else{
lastValue = lastValue + (float) factor;
}
最佳答案
股票市场通常被建模为随机游走。即,您有相同的机会上升或下降一个值。即
price += Math.random() >= 0.5 ? +1 : -1;
您可以在模型中添加较安静的时间(每秒移动次数较少)和较繁忙的时间(每秒移动次数较多)。
对新闻事件(导致股票突然上涨、下跌或持有)建模更加复杂。我会单独建模。也就是说,价格变动幅度比正常情况大得多的可能性很小。
关于java - 模拟股票价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11355615/