calcBSImpVol(cp,P,S​,K,T,r,q)

버전 1.13.0.0 (7.25 KB) 작성자: Mark Whirdy
Calculates Black-Scholes Implied Volatility for Full Surface at High Speed
다운로드 수: 2.3K
업데이트 날짜: 2018/2/11

라이선스 보기

Calculates Black-Scholes Implied Volatility Surface for an Option Price Matrix.
Uses Li's Rational Function Approximator for the Initial Estimate, followed by
3rd-Order Householder's Root Finder (i.e. using vega,vomma & ultima) for greater
convergence rate and wider domain-of-convergence relative to Newton-Raphson. Both
Li's Approximator and the Root Finder are calculated matrix-wise (i.e.
fully vectorized) for increased efficiency.

인용 양식

Mark Whirdy (2024). calcBSImpVol(cp,P,S,K,T,r,q) (https://www.mathworks.com/matlabcentral/fileexchange/41473-calcbsimpvol-cp-p-s-k-t-r-q), MATLAB Central File Exchange. 검색됨 .

MATLAB 릴리스 호환 정보
개발 환경: R2012b
모든 릴리스와 호환
플랫폼 호환성
Windows macOS Linux
카테고리
Help CenterMATLAB Answers에서 Financial Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
버전 게시됨 릴리스 정보
1.13.0.0

removed the linear regression code which estimates the initial vol for points lying outside Li's domain of approximation. this regression code required in-domain values to be passed-in by the user to work. Out-of-domain vols are now 0.8

1.12.0.0

Amended to facilitate input variables "cp", "q" & "r" as matrices
cp Call[+1],Put[-1] [m x n],[1 x 1]
r Continuous Risk-Free Rate [m x n],[1 x 1]
q Continuous Div Yield [m x n],[1 x 1]

1.11.0.0

Amended Code allowing matrix inputs for "cp", "r" and "q"

cp Call[+1],Put[-1] [m x n],[1 x 1]
r Continuous Risk-Free Rate [m x n],[1 x 1]
q Continuous Div Yield [m x n],[1 x 1]

1.9.0.0

Changed comment
"S Underlying Price [m x n]"
to
"S Underlying Price [1 x 1]"
.. as was misleading
This version of the file handles S as a scalar only.

1.7.0.0

Re-factoring of anonymous functions in Householder root solver to re-calculate derivatives & for only those points which have not converged. This increases speed by 20-50% (depending on particular surface).

1.6.0.0

Added Comments

1.1.0.0

Fixed bug in Put-Call Parity line

P = P + S.*exp(-q.*T) - K.*exp(-r.*T); % Convert Put to Call by Parity Relation

1.0.0.0