全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
3042 3
2010-09-30
小女子新人报道,望高手相助。
我用VBA写了二叉树期权定价的程序,明明都有按照案例来写,公式也都对的,可是无法运行。
显示总是错误溢出
各位高人能不能帮我看看哪里出问题了。
万分感激,标红的是VBA显示错误的语句。


Function BinoptVal(iopt, iea, S, X, r, tyr, sigma, nstep)
'Returns Binomial Option Value(ipot=1 for call,-1for put;
'iea=1 for euro,=2 for amer)

Dim delt, erdt, u, d, P, pstar, mu
Dim i As Integer, j As Integer
Dim vvec As Variant    'to be a vector
ReDim vvec(nstep)     'know size of vector

'caculate parameters
delt = tyr / nstep  'length of the time step
erdt = Exp(r * delt) 'compounding factor
mu = 0 'the stock growth rate
u = Exp(mu * delt + sigma * Sqr(delt)) 'up multiplier
d = Exp(mu * delt - sigma * Sqr(delt)) 'down multiplier
P = (S * erdt - d) / (u - d) ' up prob
pstar = 1 - P 'down prob

  'calculating vector of option values after n steps
    For i = 0 To nstep
      vvec(i) = Application.Max(iopt * (S * (u ^ i) * (d ^ (nstep - i)) - X), 0)
    Next i
    'calculating conditional payoffs & discounting back step by step
        For j = nstep - 1 To 0 Step -1
            For i = 0 To j
            vvec(i) = (P * vvec(i + 1) + pstar * vvec(i)) / erdt
  Next i
        Next j
   
    BinoptVal = vvec(0)

End Function
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-10-1 02:50:02
哪位高人现身一下啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-10-5 12:35:30
Option Base 0  'arrays number from 0
Function BinOptVal(iopt, iea, S, X, r, q, tyr, sigma, nstep) 'code for European Options CRR
'returns binomial option value,European only where iopt=1 for call,-1 for put and iea=1 for EU,2 for USA
Dim delt, erdt, ermqdt, u, d, p, pstar
Dim i As Integer, j As Integer
Dim vvec As Variant
ReDim vvec(nstep)   'known size of vector
'calculate parameters
  delt = tyr / nstep 'length of time step
  erdt = Exp(r * delt) 'compounding factor
  ermqdt = Exp((r - q) * delt) 'drift term
  u = Exp(sigma * Sqr(delt))  'up multiplier
  d = 1 / u                   ' down multiplier
  p = (ermqdt - d) / (u - d)  'up prob
  pstar = 1 - p               'down prob

'calculating vector of of option values after nstep
  For i = 0 To nstep
  vvec(i) = Application.Max(iopt * (S * (u ^ i) * (d ^ (nstep - i)) - X), 0)
  Next i
  'claculating conditional payoff & discounting back step-by-step
    For j = nstep - 1 To 0 Setp-1
      For i = 0 To j
                   vvec(i) = (p * vvec(i + 1) + pstar * vvec(i)) / erdt
     
If iea = 2 Then vvec(i) = Application.Max(vvec(i), iopt * (S * (u ^ i) * (d ^ (j - i)) - X))
      Next i
    Next j
   BinOptVal = vvec(0)
End Function
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-10-16 21:28:22
有没有定义tyr
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群