Black-Scholes formula
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Francesco Rossi
il 30 Set 2019
Commentato: the cyclist
il 30 Set 2019
I tried to build this function, but when I try it, this gives me different result, compared to the online solvers.
Does anyone spots the error?
function [C] = BlackScholesCall(S,K,t,r,sd)
% Calculates the price of a call option
% INPUT S 1x1 ... Current stock price (underlying)
% K 1x1 ... Strike price
% t 1x1 ... Time to maturity
% r 1x1 ... Risk-free interest rate
% sd 1x1 ... standard deviation (volatility of the underlying)
% OUTPUT C 1x1 ... The price of a call option
% USAGE BlackScholesCall(S,K,t,r,sd)
C = S*normcdf((log(S/K)+(r+(1/2)*sd^2)^t)/(sd*sqrt(t)))-K*exp(-r*t)*normcdf((log(S/K)+(r+(1/2)*sd^2)^t)/(sd*sqrt(t))-sd*sqrt(t));
end
0 Commenti
Risposta accettata
the cyclist
il 30 Set 2019
Both places where you have
(r+(1/2)*sd^2)^t
it should be
(r+(1/2)*sd^2)*t
FYI, I think this would be been easier to debug if you had defined the variables d1 and d2, as in the wikipedia page. That's how I broke it out and found the error.
2 Commenti
the cyclist
il 30 Set 2019
The best form of thanks is to upvote and/or accept helpful answers. This rewards the contributor, and also points future users to useful answers.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Financial Toolbox in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!