Chemist_MZ 发表于 2012-4-26 13:07 
写得很不清楚我用word简单写了下这个随机微分方程的解,你参考下,希望有帮助,其他地方应该没有什么问题, ...
您好,不知道能不能再麻烦您一下,我在做状态价格密度的估计时遇到一个问题,想请您帮我看一下
在B_S公式的假设下,我先用参数估计的方法得到状态价格密度的函数(是期权价格函数关于敲定价格的二阶偏导数),该假设下股价收益率服从正态分布,得到的状态价格密度也应该是一个对数正态分布,但是做出来的图形差距非常大,不知道怎么回事
%模拟B-S假设下的状态价格密度SPD:(错的)
t=0:0.001:1;%时间跨度
dt=0.001;%时间间隔
z=zeros(1001,1);%预留计算内存空间
s=zeros(1001,1);
c=zeros(1001,1);
R=zeros(1001,1);
a=zeros(1001,1);
b=zeros(1001,1);
e=zeros(1001,1);
d=zeros(1001,1);
f=zeros(1001,1);
p=0.1;%假设股票收益率满足ds/s=p*dt+sig*dZ
sig=0.29;
s(1)=15;%股票现价
r=0.035;%无风险利率
k=17;%执行价
for i=1:1000;
z(i)=sqrt(dt)*randn(1);
R(i)=exp((p-0.5*sig^2)*dt+sig*z(i));
s(i+1)=s(i)*R(i);
d1=(log(s(i)/k)+(r+0.5*sig^2)*(1-t(i)))/sqrt(sig^2*(1-t(i)));
d2=(log(s(i)/k)+(r-0.5*sig^2)*(1-t(i)))/sqrt(sig^2*(1-t(i)));
c(i)=s(i)*normcdf(d1,0,1)-k*exp(-r*(1-t(i)))*normcdf(d2,0,1);
a(i)=(r-0.5*sig^2)*(1-t(i));
b(i)=-log(s(i)/s(1));
e(i)=2*(1-t(i))*sig^2;
d(i)=s(i)*sqrt(2*pi*(1-t(i))*sig^2);
f(i)=1/d(i)*exp((b(i)-a(i))^2/e(i));%SPD
end
dd1=(log(s(1001)/17)+(r+0.5*sig^2)*(1-1))/sqrt(sig*(1-t(1001))+eps);
dd2=(log(s(1001)/17)+(r-0.5*sig^2)*(1-t(1001)))/sqrt(sig*(1-t(1001))+eps);
c(1001)=s(1001)*normcdf(dd1,0,1)-k*exp(-r*(1-t(1001)))*normcdf(dd2,0,1);
s(1001)=s(1000)+s(1000)*R(1000);
f(1001)=1/d(1001)*exp((b(1001)-a(1001))^2/e(1001));
subplot(2,2,1),plot(t,s,'r')
subplot(2,2,2),plot(R,f,'b')
subplot(2,2,3),plot(t,c,'y')