楼主: assassinzyf
3352 11

【恳请指教】等概率三叉树为欧式期权定价,我的错误在哪? [推广有奖]

  • 0关注
  • 2粉丝

高中生

27%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
229 点
帖子
18
精华
0
在线时间
24 小时
注册时间
2009-11-8
最后登录
2018-7-4

楼主
assassinzyf 发表于 2011-10-3 03:50:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
先谢谢您进来看帖 哈哈

问题:利用等概率三叉树模型为欧式Put期权定价

所用模型是Tian(1993),参数为
  1. u=exp((r-sigma^2/2)*dt+sigma*sqrt(3*dt/2));
  2. m=(r-sigma^2/2)*dt;
  3. d=exp((r-sigma^2/2)*dt-sigma*sqrt(3*dt/2));
  4. p=1/3;
复制代码
u,m,d分别为标的价值上、中、下变化参数;p=1/3表示上、中、下的概率均为1/3。

初步想法是利用同等条件下的二叉树作两步运算,但是现在犯晕了。。。

如果标的价值变动为m的话,标的价格树怎么生成?(ud=1的情况貌似好办的多...)

恳请指教!!






二维码

扫码加我 拉你入群

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

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

关键词:期权定价 欧式期权 等概率 请指教 Sigma 模型 sigma

回帖推荐

irvingy 发表于8楼  查看完整内容

S = S0 * u ^ max(i - N, 0) * d ^ max(N - i, 0), i = 0, 1, ..., 2N 这个只适用于u * d = 1 对于一般的u, d, m S = S0 * d ^ (N - i) * m ^ i, i = 0, 1, ..., 2N 还有我刚发现你最早的 m = (r - sigma ^ 2 / 2) * dt,漏掉了exp

本帖被以下文库推荐

沙发
irvingy 发表于 2011-10-3 07:50:01
S[i]  = S0 * u ^ max(i - N, 0) * d ^ max(N - i, 0), i = 0, 1, ..., 2N

还有你的u, d, m不是Tian Equal Probability Trinomial Tree

藤椅
assassinzyf 发表于 2011-10-3 10:46:17
@ irvingy 谢谢你的回复~

恩,我写错了。。。我这里用到的应该是Hua He(1990)的模型。

另外,我编辑了一下代码,但还是不对,不知道哪里出了问题,可否再请你指教一下?


主要代码如下,
  1. for k=0:2*n   
  2.     S(k+1)=S0*u^max(k-n+1,0)*d^max(n-k-1,0);
  3.     tree(n+1,k+1)=max(0,K-S(k+1)*d^(n-k-1));
  4. end

  5. for l=n-1:-1:0
  6.     for q=0:2*l
  7.         tree(l+1,q+1)=exp(-r*dt)*(p*tree(l+2,q+1)+p*tree(l+2,q+2)+p*tree(l+2,q+3));
  8.     end
  9. end
复制代码
其中,S为underlying asset value,TriPrice为所求期权价格。

进行数值计算,得到下图(但是显然不对。。。)
1.png
代码的哪部分是错的呢?

untitled.png (5.17 KB)

untitled.png

板凳
assassinzyf 发表于 2011-10-3 18:30:28
有人能帮忙看看么?

报纸
shocksky 发表于 2011-10-3 20:22:51
你用的什么软件?R 吗?
不以赚钱为目的的投资就是耍流氓!!

地板
assassinzyf 发表于 2011-10-3 20:52:09
@shocksky
我用的是Matlab~

PS.第二张图是无用的,我刚才误传,想删掉却怎么也删不掉。。。

你知道我的错误在哪儿么? 是标的价格树错了,还是下一步的回溯过程错了?

Any hint or comments on the code would be greatly appreciated!!!
求解惑啊!!!

7
assassinzyf 发表于 2011-10-3 20:55:15
shocksky 发表于 2011-10-3 20:22
你用的什么软件?R 吗?
@shocksky
我用的是Matlab~

PS.第二张图是无用的,我刚才误传,想删掉却怎么也删不掉。。。

你知道我的错误在哪儿么? 是标的价格树错了,还是下一步的回溯过程错了?

8
irvingy 发表于 2011-10-4 08:22:45
assassinzyf 发表于 2011-10-3 20:55
S  = S0 * u ^ max(i - N, 0) * d ^ max(N - i, 0), i = 0, 1, ..., 2N

这个只适用于u * d = 1

对于一般的u, d, m

S = S0 * d ^ (N - i) * m ^ i, i = 0, 1, ..., 2N

  1. St = S * d.^(N - (0: (2 * N))) .* m.^(0:(2 * N));
  2. option = max(K - St, 0);

  3. for j= 0:(N-1)   
  4.     option = exp(-r * dt) * [1/3, 1/3, 1/3] * [option(1:(end-2));option(2:(end-1));option(3:end)];
  5. end
复制代码
还有我刚发现你最早的 m = (r - sigma ^ 2 / 2) * dt,漏掉了exp

已有 1 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
见路不走 + 5 + 5 + 1 + 1 + 1 热心帮助其他会员

总评分: 经验 + 5  论坛币 + 5  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

9
assassinzyf 发表于 2011-10-4 11:24:16
irvingy 发表于 2011-10-4 08:22
S  = S0 * u ^ max(i - N, 0) * d ^ max(N - i, 0), i = 0, 1, ..., 2N

这个只适用于u * d = 1
很感谢你的回复~

但还是弄不出来,抓狂了快。。。

你看我目前改进的代码

  1. dt=T/n; %Time step size

  2. % He (1990) Parameter set
  3. u=exp((r-sigma^2/2)*dt+sigma*sqrt(3*dt/2));
  4. m=exp(r-sigma^2/2)*dt;
  5. d=exp((r-sigma^2/2)*dt-sigma*sqrt(3*dt/2));
  6. p=1/3;

  7. S=S0*d.^(n-(2*n:-1:0)').*m.^((0:2*n)'); %Stock value

  8. C3=max(K-S,0); %Option value at time T

  9. B=sparse(p*eye(2*n+1,2*n+1)+p*diag(ones(2*n,1),1)+p*diag(ones(2*n,1),-1)); %Define matrix to trace back

  10. for i=n:-1:1
  11.      C=B(1:2*i+1,1:2*i)*C; %One step backward
  12. end
  13. price=exp(-r*T)*C;
  14. end
复制代码
这段代码,问题在哪儿呢?

弄了好长时间了。。。 脑袋都大了!

Please help me...


10
assassinzyf 发表于 2011-10-5 00:56:00
顶一顶。。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2025-12-9 07:47