楼主: ray320
5964 2

[问答] 期权定价蒙特卡洛模拟,matlab程序求改错! [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

50%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
20 点
帖子
1
精华
0
在线时间
1 小时
注册时间
2015-9-10
最后登录
2016-1-1

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
题目: Let S0 = 10,   r = 0.03,  sigma= 0.4, and dt = 1/52. We want to simulate weekly prices of the
stock Si, i = 1: 52 for a 1-year period.
Suppose that you want to determine the price of a European call option maturing in 1-year with strike
price K = 12. Use simulation techniques to estimate this price.
我写的程序跑出来都是0....
程序如下
function c=ucoption(S,K,sigma,r,T,M,N)
for i=1:N
for i=1:M
S=S*exp((r-0.5*sigma^2)*T+sigma*(T^0.5)*randn);
St(1,i)=S;
end
c=exp(-r*T)*max(S-K,0);
C(1,i)=c;
end
没学过编程= =,求骂醒!

二维码

扫码加我 拉你入群

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

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

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

沙发
Linmccc 发表于 2016-3-4 14:10:52 |只看作者 |坛友微信交流群
好,骂醒你,好好看书。很久没碰而且电脑没装matlab没办法运行一下可能会有些错误,如果有错你自己再debug下。monte carlo如果只是二维的话就尽量写成矩阵吧,for循环如果数据模拟得多的话好像会慢一点,一点经验。

function[ST,C]=ucoption(S0,K,sigma,r,T)
deltaT=1/52;%%你的T输入为1的话每周就是1/52
Nstep=T/deltaT; %%%52周52个step,T输入1年!
Niteration=100;%%%%重复模拟100列,求出平均值,这样会比较准,可以更多比如1000
Z=randn(Nstep,Niteration);
S=S0*exp((r-0.5*sigma^2)*deltaT*cumsum(ones(Nstep,Niteration))+sigma*(T^0.5)*deltaT*cumsum(Z));
ST=mean(S,2);%%%%%%求每周那Niteration次模拟的均值
C=exp(-r*T)*max(ST-K*ones(Nstep,1),0);%%每周的股价对应的一年后maturity的euro的call的价格
end

大概这样。得出来的结果是两个矩阵ST跟C,每个都有52个值

使用道具

藤椅
Xaero 发表于 2016-3-11 17:09:07 |只看作者 |坛友微信交流群
没有编程基础,就先学基础,不然问着也没什么收获。

使用道具

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

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

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

GMT+8, 2024-4-27 23:45