全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
877 2
2014-06-18
求各位大神教我用excel做期权定价,单期多起二叉树,灰常感谢

二维码

扫码加我 拉你入群

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

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

全部回复
2014-6-18 04:52:34
Hi, buddy,
are you talking about Black-Scholes Option Valuation model?

If so, let me know please,
I will send one to you.
二维码

扫码加我 拉你入群

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

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

2014-6-18 10:30:00
I assume you are referring to Binomial Tree model.
Here is the customized function code.

-------------------------------------------------------------------------------
Binomial Tree Excel VBA Code
-------------------------------------------------------------------------------

Function binomial_tree(S, K, t, r, sigma, N)

Dim delta_t As Double
Dim u As Double
Dim d As Double
Dim j As Integer 'number of up movements on the tree
Dim i As Integer 'number of time intervals that have passed
Dim a As Double
Dim call_price() As Double
Dim put_price() As Double
Dim p As Double

delta_t = t / N
u = Exp(sigma * Sqr(delta_t))
d = -Exp(sigma * Sqr(delta_t))
a = Exp(r * delta_t)
p = (a - d) / (u - d)

ReDim call_price(1 To N, 1 To N)
ReDim put_price(1 To N, 1 To N)


For j = N To 1 Step -1

call_price(N, j) = WorksheetFunction.Max(S * u ^ j * d ^ (N - j) - K, 0)
put_price(N, j) = WorksheetFunction.Max(K - S * u ^ j * d ^ (N - j), 0)

For i = N - 1 To 1 Step -1
For j = N - 1 To 1 Step -1

call_price(i, j) = Exp(-r * delta_t) * (p * call_price(i + 1, j + 1) + (1 - p) *
call_price(i + 1, j))
put_price(i, j) = Exp(-r * delta_t) * (p * put_price(i + 1, j + 1) + (1 - p) *
put_price(i + 1, j))

Next j
Next i

binomial_tree = Array(call_price, put_price)


End Function

=======================================================

Copy the code in your Excel developer VBA interface.
It should solve your problem.
Good luck.
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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