function [v]=call(S,E,r,sigma,tau) d1=(log(S/E)+(r+0.5*sigma^2)*tau)/(sigma*sqrt(tau)); d2=(log(S/E)+(r-0.5*sigma^2)*tau)/(sigma*sqrt(tau)); v=S*normcdf(d1)-E*exp(-r*tau)*normcdf(d2)
je 0.3?
>> call(100,120,0.01,0.3,0.5)
ans =
2.6056
, hodnota portfólia je
- cenu callu poznáme, takže môžeme vyjadriť cenu putu.
geometrického Brownovho pohybu - tzv. historickú volatilitu.
% pocet pracovnych dni medzi x,y vo formate 'mm/dd/yy'
% ukazka vypoctu pre x=1.3.2011 a y=31.3.2011
x=datenum('03/01/11');
y=datenum('03/31/11');
pocDni=0;
for i=x+1:y
den=weekday(i); % 1=nedela, 2=pondelok, ...
if (den>1)&&(den<7) pocDni=pocDni+1; end;
end;
, ktorej dosadením do Black-Scholesovho vzorca dostaneme trhovú cenu opcie.
)).
)),S), tak implikovaná volatilita existuje a je jednoznačne určená.
global s; global e; global tau; global r; global v; s=85.2; e=80; r=0.01; tau=0.5; v=11.12; % hladame nulovy bod tejto funkcie sig=0.01:0.01:0.5; plot(sig,rozdiel(sig),sig,zeros(1,length(sig))); % vypocet sImpl=fzero(@rozdiel,0.4);Výstup:
je 0.3.