作者nicke (.........)
看板Option
標題[問題]想請教一下程式碼的問題
時間Fri Mar 6 13:02:45 2009
我想詢問版上的高手
有用VBA寫過股價走勢的嗎
想詢問VBA程式碼該如何寫
Public Function mcasiancall(s, k, r, sg, t, n, m)
Dim st()
ReDim st(n)
st(0) = s
dt = t / n
temp2 = 0
For i = 1 To m
temp1 = 0
For j = 1 To n
randn = Application.WorksheetFunction.NormInv(Rnd, 0, 1)
st(j) = st(j - 1) * Exp((r - sg ^ 2 / 2) * dt + sg * Sqr(dt) * randn)
temp1 = temp1 + st(j)
Next
temp2 = temp2 + max(temp1 / n - k, 0)
Next
mcasiancall = Exp(-r * t) * temp2 / m
End Function
以上是買權賣權的隨機價格
那如果我想改成大盤股價走勢
也就是參數換成成長率跟波動率
我要怎麼改 比較簡單
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.171.89.1
1F:→ wave1et:先把你試的po上來吧,你這樣問誰知道問題在那 03/06 13:13
※ 編輯: nicke 來自: 118.171.89.1 (03/06 13:31)
2F:→ yuekun:雖然大致上看得懂你的變數 但你好歹也定義一下吧 03/07 14:32
3F:→ yuekun:這應該是亞式的選擇權 其實你用蒙地卡羅先把股價存在一個 03/07 14:33
4F:→ yuekun:array再做平均就好了 現在記憶體這麼大 不用用這種寫法來 03/07 14:34
5F:→ yuekun:節省記憶體 我用過100萬次的蒙地卡羅 CPU1.3G RAM1G 來跑 03/07 14:35
6F:→ yuekun:大概1分鐘可以知道結果 這是我的經驗 03/07 14:36