clear all; close all; clc; clf; |
K = 100; L = 2.5*K; T = 1/365; sigma = 0.3; r = 0.03; |
cash = 100; Nx = L+1; x = linspace(0,L,Nx); h = x()-x(); |
payoff(1:Nx) = 0.0; payoff(x >= K) = cash; |
%% Price %% |
d1 = (log(x/K) + (r+sigma2/2)*T)/(sigma*sqrt(T)); |
d2 = d1 - (sigma*sqrt(T)); |
exact = cash*exp(-r*T).*normcdf(d1); |
figure(); hold on; grid on; |
plot(x,payoff,,k-,,x,exact,,r-,); axis([0 L -5 1.05*cash]); |
%% Delta %% |
del = cash*exp(-r*T).*normpdf(d1)./(sigma*sqrt(T)*x); |
figure(); hold on; grid on; |
plot(del,,r-,,,LineWidth,,1); axis([0 L -5 1.1*max(del)]); |
%% Gamma %% |
gam = -cash*exp(-r*T) * (d1.*normpdf(d2))./((sigma*x).2*T); |
figure(); hold on; grid on; plot(gam,,r-,,,LineWidth,,1); |
axis([0 L -1.1*max(gam) 1.1*max(gam)]); |
%% theta %% |
the = cash*exp(-r*T)*(r*normcdf(d2) + normpdf(d2)... |
.* (d1/(2*T) - r/(sigma*sqrt(T)))); |
figure(); hold on; grid on; plot(the,,r-,,,LineWidth,,1); |
axis([0 L -1.1*max(the) 1.1*max(the)]); |
%% Vega %% |
veg = -cash*exp(-r*T)*(normpdf(d2)).*d1/sigma; |
figure(); hold on; grid on; plot(veg,,r-,,,LineWidth,,1); |
axis([0 L -1.1*max(veg) 1.1*max(veg)]); |
%% Rho %% |
rho = cash*exp(-r*T)*((-T*normcdf(d2)) + sqrt(T)/sigma*(normpdf(d2))); |
figure(); hold on; grid on; plot(rho,,r-,,,LineWidth,,1); |
axis([0 L 3*min(rho) 1.1*max(rho)]); |