2012-07-06 218 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; 

您可以添加到您的模型,有安靜的時候(小於每秒移動)和繁忙次(每秒移動)

建模的新聞事件(這會導致突然增加,減少或持有的股票)更復雜。我會模擬這個分開。即您的價格很可能會比平時大幅上漲。