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;
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;
BlackScholesPut:=
proc(S,K,t,r,sigma)
begin
BlackScholesCall(S,K,t,r,sigma)+K*exp(-r*t)-S
end_proc;
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);