楼主: 人大坛主
5186 4

[问答] 大家好,问大家一个蒙特卡洛期权定价的matlab程序,谢谢大家 [推广有奖]

  • 2关注
  • 2粉丝

博士生

84%

还不是VIP/贵宾

-

威望
0
论坛币
14421 个
通用积分
120.6499
学术水平
5 点
热心指数
5 点
信用等级
5 点
经验
2385 点
帖子
98
精华
0
在线时间
622 小时
注册时间
2011-10-3
最后登录
2024-9-5

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
欧式期权是对的,美式期权定出的价格差距就很大,不知道哪里问题,是理论出问题了吗?谢谢大家

    if AoE  %欧式期权
        P(1,:)=exp(-r*T)*P(N+1,:);
    else
        if type
         P(i,:)=max(exp(-r*dt)*P(i+1,:),max(S(i,:)-K,0));%立即执行与贴现比较
        else
         P(i,:)=max(exp(-r*dt)*P(i+1,:),max(K-S(i,:),0));
        end
    end
这一部的意思是 倒数第二期的价值和立即执行比较,哪个大取哪一个。
MC2(30,28,0.04,1,0.7056,10,100000,1,1)=9.48
MC2(30,28,0.04,1,0.7056,10,100000,1,0)=17.82
这两个上面是欧式的 和书上一样,下面那个美式的也应该是9.48左右,哎。
现附上代码 请大神指点迷津 谢谢

function price=MC2(S0,K,r,T,sigma,N,M,type,AoE)%M是模拟次数 type=1是期权看涨 AoE=1 欧式期权
dt=T/N;
R=exp((r-sigma^2/2)*dt+sigma*sqrt(dt)*randn(N,M));
S=cumprod([S0*ones(1,M);R]);%合并矩阵
if type%看涨期权
    P(N+1,:)=max(S(N+1,:)-K,0);
else
    P(N+1,:)=max(K-S(N+1,:),0);
end
for i=N:-1:1
    if AoE  %欧式期权
        P(1,:)=exp(-r*T)*P(N+1,:);
    else
        if type
         P(i,:)=max(exp(-r*dt)*P(i+1,:),max(S(i,:)-K,0));%立即执行与贴现比较
        else
         P(i,:)=max(exp(-r*dt)*P(i+1,:),max(K-S(i,:),0));
        end
    end
end
price=mean(P(1,:));
end


二维码

扫码加我 拉你入群

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

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

关键词:MATLAB程序 MATLAB atlab matla 期权定价 蒙特卡洛 matlab 程序

沙发
人大坛主 发表于 2015-3-25 14:18:38 |只看作者 |坛友微信交流群
顶一下

使用道具

藤椅
人大坛主 发表于 2015-3-25 18:46:06 |只看作者 |坛友微信交流群
顶一下 期权定价啊

使用道具

板凳
人大坛主 发表于 2015-3-25 18:46:56 |只看作者 |坛友微信交流群
我用遍历树倒是解出来一样,不过就想知道上面哪里有问题 希望多多指教

使用道具

报纸
gossip888 发表于 2016-9-17 17:55:07 |只看作者 |坛友微信交流群
抓狂了

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-5 22:49