Borrar filtros
Borrar filtros

Option pricing using the Black-Scholes transformation to Heat Equation

19 visualizaciones (últimos 30 días)
Joshua Devall
Joshua Devall el 6 de Oct. de 2018
Comentada: REEM A el 15 de Nov. de 2021
I'm currently working on a project that requires me to use MATLAB to find and plot the value of a call option against share price using explicit finite difference method. As many times as I've re-derived the heat equation from Black-Scholes as well as the required initial and boundary conditions my MATLAB code isn't giving me the correct solution. I have a feeling it may be how I'm implementing the conditions within the code but am unsure where the error is being made. Any help or insight is much appreciated, cheers!
E = 50; %exercise price
X = log(250/E); %max share price
sigma = 0.3; %volatility
T = sigma^2*1/2; %time interval
nx = 21; %number of steps in x direction
nt = 201; %number of steps in t direction
r = 0.3; %rate
k = 2*r/sigma^2;
dx = 2*X/(nx-1);
dt = T/(nt-1);
x = -X:dx:X;
t = 0:dt:T;
alpha = dt/dx^2;
%Initialising U mesh, initial and boundary conditions
u = zeros(nx,nt);
u(:,1) = max(exp(1/2*(k+1)*x)-exp(1/2*(k-1)*x),0);
u(1,:) = 0;
u(nx,:) = exp(1/2*(k+1)*X+1/4*(k+1)^2*t)-exp(1/2*(k-1)*X+1/4*(k-1)^2*t);
%Implementation of explicit method
for j=1:nt-1 %time loop
for i=2:nx-1 %asset price loop
u(i,j+1) = u(i,j)+alpha*(u(i+1,j)-2*u(i,j)+u(i-1,j));
end
end
for j=1:nt
for i=1:nx
V(i,j)=E*exp(-1/2*(k-1)*(i-1)*dx/2-1/4*(k+1)^2*(j-1)*dt)*u(i,j);
end
end
plot(E*exp(x), V(1:end,1:end));
ylabel('Value');
xlabel('Asset price');
grid;
  1 comentario
REEM A
REEM A el 15 de Nov. de 2021
Could you pleas find in matlab the errors between the exact solution and approximate solution

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Price and Analyze Financial Instruments en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by