當前位置:首頁 » 股市行情 » 如何用norminv模擬股票價格
擴展閱讀
股票行情教育 2024-05-22 02:17:48
廣東疫苗公司股票代碼 2024-05-22 02:14:49
股票軟體里的貨幣基金嗎 2024-05-22 02:06:57

如何用norminv模擬股票價格

發布時間: 2024-04-18 08:14:54

❶ 怎麼用 Excel 做蒙特卡洛模擬

1、首先,填入這三個活動時間估算的樂觀值,最可能值和悲觀值。
分別計算這三個活動的均值和標准差。
均值=(樂觀值+4 * 最可能值 + 悲觀值)/ 6
標准差=(悲觀值-樂觀值)/ 6
根據第二步計算出來的均值和標准差,對三個活動按照正態分布進行隨機模擬。因為是測試項目,這里我們只進行隨機100次。
公式:=INT(NORMINV(RAND(),$F$2,$G$2))
其中:NORMINV 正態分布;INT 去整; RAND() 取隨機數;
2、將隨機出來的值,進行固化。也就是將上一步中紅框的區域,按值復制一份。以防止隨機數在每次更改單元格後都會發生變化。
3、由於3個活動均為FS的關系,所以三個互動的時間之和就等於總項目時間。
將總工期考入新的Sheet,並進行從小到大的重新排序。
4、將排序後的數據進行篩選,剔除重復數據。從而的到全部模擬出來工期的值。
進行頻度統計。首先選中與總工期相對應的頻度下面的單元格D2:D23,然後輸入公式「=FREQUENCY(A2:A101,C2:C23)」,然後按下Ctrl+Shift+Enter。如此會計算出模擬出來各個總工期的發生次數。
5、計算積累頻度:每一個頻度的積累頻度=自身的頻度+前面所有項的頻度之和
選擇二維折線圖;
6、在添加的空白折線圖上右鍵「選擇數據區域」: 數據區域即總工期和積累頻度兩列。由於我們並不需要總工期呈現為曲線形式,在選擇後的對話框中,將總工期刪除,只保留累計頻度。
將「累計頻度改為「蒙特卡洛模擬」。
7、選擇標軸C2:C23
最終選擇一個好看的樣式,展現辛苦生成的圖表就可以啦。

注意事項:這里模擬的項目是一個只有3個首尾相接活動的簡單項目。在實際項目中,必須考慮由於活動工期變化所導致的關鍵路徑變化的情況。

❷ 怎麼用 Excel 做蒙特卡洛模Ƌ

下面是在Excel中模擬一隻股票價格的例子。假設股票價格
的對數收益率服從正態分布,均值為0,每日變動標准差為0.1,
模擬股票價格1年的路徑,過程如下:
用到兩個內置函數,即用rand()來產生0到1之間的隨機數,然後用norminv()來獲得服從既定分布的隨機數,即收益率樣本=norminv(rand(), 0, 0.1)。假定股票價格的初始值是100元,那麼模擬的價格就是 S=100 * exp(cumsum(收益率樣本))。
其中的cumsum()不是Excel的內置函數,其意思就是收益率樣本的累積,每個時刻的值都是當前樣本及此前所有樣本的和,如,收益率樣本從單元格C3開始,當前計算C15對應的模擬價格,則模擬價格計算公式是:100 * exp(sum($C$3:C15))。
由此可以得到股票價格的一條模擬路徑。

其他非正態分布也可以通過類似方式得到分布的抽樣,即分布函數的逆函數,這些函數Excel都內置了。所以,做蒙特卡洛模擬的時候,關鍵是先確定所需模擬的分布,然後進行抽樣,然後應用層面的各種公式就可以在抽樣的基礎上進行計算了。

--------以下是補充的--------
根據上面提到的思路,其實可以很便捷地為期權做定價。下面就用蒙特卡洛方法為一個普通的歐式看漲期權定價(蒙特卡洛在為普通期權plain vanilla option定價時不佔優勢,因為相對於解析法而言計算量很大。但是,如果要給結構比較復雜的奇異期權定價時,可能蒙特卡洛法就比較實用,有時可能成為唯一的方法)。

1)假設這個期權是歐式看漲期權,行權價格為50元,標的股票當前的價格也是50元,期權剩餘時間是1天。
2)假設標的股票的價格服從對數正態分布,即股票的每日收益率服從正態分布,均值為0,每日標准差為1%。

根據分布假設,首先用rand()函數產生在0到1之間的均勻分布樣本。為了提高精確度,這里抽樣的數量為1000個(其實1000個是很少的了,通常需要10萬個甚至50萬個,但是在Excel表格中操作這么多數字,不方便,這是Excel的不足之處)。
下一步,用norminv(probability, mean, std)函數來獲得股票收益率分布的1000個抽樣,其中的probability參數由rand()產生的抽樣逐個代入,mean=0.0, std = 0.01。注意這里抽樣得到的日度收益率。也就是說,這個樣本對應的下一個交易日股票價格的收益率分布。
下一步,股票價格=50×exp(收益率樣本),得到股票價格分布的抽樣,有1000個樣本。

根據我做的實驗,這1000個樣本的分布圖形(histogram)跟對數正態分布是比較接近的,如下圖所示:
圖的橫軸是股票價格,縱軸是樣本中出現的頻率。
得到了股票價格未來一天分布的樣本之後,就可以以此樣本來計算期權的價格了。
歐式看漲期權的定義為:
C=max(S-K,0)

所以,根據這個計算公式可以計算出在到期那天在特定的價格下期權的價值。在Excel中,相當於 期權價值=max(股票價格樣本 - 50,0)。由此就可以得到了該期權未來1天價值的樣本。
然後,將未來價值貼現回來(用無風險利率貼現,假設無風險利率為0.05,則貼現公式是=exp(-0.05/360)×期權價值,得到期權價格的1000個樣本。
最後,對期權價格的1000個樣本求平均,Excel函數average(期權價格樣本),就可以得到期權的價格了。
我這里算出來的是:0.2015元。
而根據Black-Scholes期權定價公式算出來的理論價格則是0.2103元。二者比較接近,但是還是有差距。

而且,每次刷新Excel表格,就重新做一次模擬,得到的模擬價格變動比較大,有時是0.2043元,有時是0.1989元。由於這個抽樣的數量比較小(1000個樣本),所以估算的結果受到樣本的影響會比較大。如果把抽樣數量提高100倍甚至500倍,那麼樣本變動的影響可能會小一個或者兩個數量級。但是計算量就大了,如果計算機性能不夠高,那麼利用Excel來做的話,比較困難。
這就是我的工作台:

------ 再來一個 --------
看到有人提到利用蒙特卡洛方法來估計圓周率Pi,挺有意思,也簡單,所以就在Excel中做了一個實驗。
基本原理在於在直角坐標系中的第一個象限中的一個單位圓,如下圖所示:
在這個面積為1的正方形中,有四分之一的圓,圓的半徑與正方向的邊長都是1。那麼根據圓的面積公式,這個圖形中陰影部分的面積應該是 Pi/4。
下面開始進入蒙特卡洛的解法。
即,如果我們對這個正方形平面中的點進行均勻地抽樣,隨著抽樣點的增多,那麼落入陰影內的點的數量與總抽樣數量的比,應該基本上等於陰影的面積Pi/4與整個正方形面積1的比,即Pi/4。用數學表示,就是
陰影內的樣本點數量 ÷ 總數量 = Pi/4
所以,Pi = 4 × 陰影內的樣本點數量 ÷ 總數量。

下面就在Excel中進行實驗。
用rand()函數生成2000個隨機數,作為隨機樣本點的X軸坐標,
再用rand()函數生成2000個隨機數,作為隨機樣本點的Y軸坐標。
如此就得到了2000個隨機樣本點,這些點的X軸坐標和Y軸坐標都大於零且小於1,所以是在前面所說的正方形之中的點。
下一步,判斷樣本點是否處於陰影之內,由於這個陰影就是單位圓在直角坐標系第一想像的四分之一,所以圓陰影內的點都符合如下不等式:
翻譯到Excel中,就是用IF函數來判斷,例如:
IF(A2^2 + B2^2 <=1, 1, 0)

即,如果樣本點在陰影中,得到1,否則得到0。這樣就把樣本點區分開來了。
最後,把所有得到的1和0加總,就知道所有樣本點中處於陰影中樣本點的數量了。
最後根據
Pi = 4 × 陰影內的樣本點數量 ÷ 總數量
就可以算出Pi來了。
我這個試驗中算出來的 Pi=3.142。
以下是樣本點的散點圖:
由於樣本數量有限,所以計算出來的Pi的精度並不高。
以下是工作界面,挺簡單的。
來源:知乎