我想制作一个模拟股票利率的程序,其中数据是随机的。我在Math中使用random()方法来生成数字。程序添加一个浮点数,经过一些限制后,它会减去它。我的问题是:我想要一些突然下降和价值上升。我怎样才能生成这个?
这是我的代码:
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;
}
答案 0 :(得分:3)
股票市场通常被建模为随机游走。即你有相同的机会上升或下降一个值。即
price += Math.random() >= 0.5 ? +1 : -1;
您可以在模型中添加更安静的时间(每秒移动次数更少)和更繁忙的时间(每秒移动次数更多)。
对新闻事件进行建模(导致股票突然增加,减少或持有)更加复杂。我会单独模拟这个。也就是说,你的价格变动的可能性很小。