Black-Scholes-Formel

Notationen

Kumulative Fehlerfunktion

N(x)=1/sqrt(2*Pi)*int(exp(-y^2/2), y=-infinity .. x)

N:=proc(x) begin (1+erf(x/sqrt(2)))/2 end_proc;

Formeln

Black-Scholes-Formel für europäische Call-Optionen

BlackScholesCall:=
proc(S,K,t,r,sigma)
  local d1,d2;
begin
  d1:=((r+sigma^2/2)*t+ln(S/K))/(sigma*sqrt(t));
  d2:=((r-sigma^2/2)*t+ln(S/K))/(sigma*sqrt(t));
  S*N(d1)-K*exp(-r*t)*N(d2);
end_proc;

Black-Scholes-Formel für europäische Put-Optionen, berechnet nach der Put-Call-Paritätsformel

BlackScholesPut:=
proc(S,K,t,r,sigma)
begin
  BlackScholesCall(S,K,t,r,sigma)+K*exp(-r*t)-S
end_proc;

Bilder

Festzinsrate r=10%, Volatilität 0.2, Zeitraum T=1 Jahr

Abhängigkeit des Optionspreises einer Call-Option vom Basispreis (x-Achse) für verschiedene Ausübungspreise K (K=0.5, 1, 1.5, 2, 2.5).

C1:=(S,K)-> float(BlackScholesCall(S,K,1,0.1,0.2));
s:=plot::Function2d(C1(S,0.5*i),S=0..4) $ i=1..5:
plot(s);

Abhängigkeit des Optionspreises einer Put-Option vom Basispreis (x-Achse) für verschiedene Ausübungspreise K (K=0.5, 1, 1.5, 2, 2.5).

P1:=(S,K)-> float(BlackScholesPut(S,K,1,0.1,0.2));
s:=plot::Function2d(P1(S,0.5*i),S=0..4) $ i=1..5:
plot(s);