Black-Scholes formula
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
the cyclist
2019-9-30
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 个评论
the cyclist
2019-9-30
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Price and Analyze Financial Instruments 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!