全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
4834 5
2016-05-23
function discpayoff=blsmc(s0,K,r,time,sigma,Nu)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%蒙特卡洛方法计算欧式看涨期权的价格      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%输入参数
%s0   股票价格
%K    执行价
%r    无风险利率
%sigma 股票波动的标准差
%Nu   模拟的次数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
randn('seed',0);
nuT=(r-0.5*sigma^2).*time;
sit=sigma*sqrt(time);
N=size(time,2);
  m=1;
for k=1:N
    sT=mean(s0*exp(nuT(m,k)+sit(m,k)*randn(Nu,1)))
discpayoff=exp(-r*time(m,k))*max(0,sT-K);
%期权到期时的现金流
end
end
sT有结果,discpayoff全为零,matlab新手,希望大家给与帮助!!!

二维码

扫码加我 拉你入群

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

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

全部回复
2016-5-24 00:16:06
我不是很懂MATLAB,不过我猜大概是那句sT=mean(...)有问题,为何要取mean呢?sT是随机变量,不是随机变量的期望。我觉得,discpayoff(这个随机变量)的期望是期权的价值。
你看呢?
二维码

扫码加我 拉你入群

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

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

2016-5-24 00:32:18
水漫霖铃 发表于 2016-5-23 14:09
function discpayoff=blsmc(s0,K,r,time,sigma,Nu)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%蒙特卡洛 ...
sT是一个数,这个数小于K,  可不都是0。。。
二维码

扫码加我 拉你入群

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

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

2016-5-25 11:06:45
vsksing 发表于 2016-5-24 00:32
sT是一个数,这个数小于K,  可不都是0。。。
事实上,应该只有一小部分是0,所以我感觉全是0是不对的。后来我改了程序,就可以了!
二维码

扫码加我 拉你入群

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

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

2016-5-25 11:10:15
TimeT 发表于 2016-5-24 00:16
我不是很懂MATLAB,不过我猜大概是那句sT=mean(...)有问题,为何要取mean呢?sT是随机变量,不是随机变量的 ...
你说的很对,mean这个地方存在理论上的错误,谢谢!!!应该对最后的期权价格取均值,表示对多次模拟的结果取均值的效果,不知道你赞同这种说法吗?
二维码

扫码加我 拉你入群

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

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

2016-6-11 12:57:09
水漫霖铃 发表于 2016-5-25 11:10
你说的很对,mean这个地方存在理论上的错误,谢谢!!!应该对最后的期权价格取均值,表示对多次模拟的结 ...
同意对多次模拟的结果取均值
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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