2012-07-06 94 views
0

我想制作一个模拟股票价格的程序,其中的数据是随机的。我在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

有两个随机数。第一个决定第二个的量级乘数。第一种方法可以按某种方式进行定价,以使尖峰更少(或更多)普遍(如果它的等于或小于0.8,则乘数为1.如果它大于.8,则倍数为5) – 2012-07-06 04:00:43

+0

我觉得对于时间的标志和随机数发生器对股市行为的建模有一些元评论。 – Affe 2012-07-06 04:26:19

+0

我试过,但它显示不断增加或减少,但不是突然下降和高峰。 Ho为此实现一个算法 – mallikarjun 2012-07-06 04:58:51

回答

2

股票市场通常被建模为一个随机游走。即你有上升或下降一个值的机会相等。即

price += Math.random() >= 0.5 ? +1 : -1; 

您可以添加到您的模型,有安静的时候(小于每秒移动)和繁忙次(每秒移动)

建模的新闻事件(这会导致突然增加,减少或持有的股票)更复杂。我会模拟这个分开。即您的价格很可能会比平时大幅上涨。