3D plot for pricing options over increasing time and asset price

2 次查看(过去 30 天)
I have a function that works out the black scholes formula over changing time and price of the underlying.
I need C to store and save the answer for each iteration, in vector form, in order to plot a 3D to show the price of the call option changing over time and increasing underlying price.
S0=100;
X=120;
r=0.1;
sigma=0.2;
N=50;
x1=linspace(0,0.5,N); %time in years
x2=[0:1:N]'; %price of the underlying
C=zeros(1,N);
for x2=0:N
for x1=0:N
d1=(log(x2/X)+(r+0.5*sigma.^2)*x1)/(sigma*sqrt(x1));
d2=d1-sigma.*sqrt(x1);
C=S0*normcdf(d1)-X*exp(-r*x1)*normcdf(d2)
end
end
  2 个评论
Jan
Jan 2019-3-21
编辑:Jan 2019-3-21
Katie Brewer has removed the contents of all of her questions. It seems, like she is not interested in a cooperative usage of the forum. What a pity.

请先登录,再进行评论。

回答(1 个)

Patel Mounika
Patel Mounika 2019-2-19
You can use array indexing to store the values of C in each iteration.
i=1;
for x2=0:N
for x1=0:N
d1=(log(x2/X)+(r+0.5*sigma.^2)*x1)/(sigma*sqrt(x1));
d2=d1-sigma.*sqrt(x1);
C(i)=S0*normcdf(d1)-X*exp(-r*x1)*normcdf(d2)
i=i+1;
end
end
This might help you.
  2 个评论
Katie Brewer
Katie Brewer 2019-2-19
Thanks,
This works!
Sorry, I'm new to matlab, I want to plot this in a 3D plot with x2 on the X axis, x1 on the Y axis and the option prices on the Z axis, do you know how I would do that?
Thanks

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Price and Analyze Financial Instruments 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by