全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
6544 2
2016-01-01
题目: 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
没学过编程= =,求骂醒!

二维码

扫码加我 拉你入群

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

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

全部回复
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个值
二维码

扫码加我 拉你入群

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

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

2016-3-11 17:09:07
没有编程基础,就先学基础,不然问着也没什么收获。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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