Merton Structural Credit Model (Matrixwise Solver)
Calculates the Value of Firm Assets, Volatility of Firm Assets,
Debt-Value, Credit-Spread, Default Probability and Recovery Rate as per
Merton's Structural Credit Model. The value and volatility of firm assets
are found by Bivariate Newton Root-Finding Method of the Merton
Simultaneous Equations. The Newton Method is carried out matrixwise
(i.e. fully vectorised) in a 3d Jacobian so that bivariate ranges of
(E_t,sig_E,K,T) values may simultaneously calculated. (See Examples)
Function requires mtimesx.m available on the Matlab File Exchange at
http://www.mathworks.com/matlabcentral/fileexchange/25977-mtimesx-fast-matrix-multiply-with-multi-dimensional-support
Outputs
A_t: Value of Firm's Assets [A_t = Call(K,sig_A,A_t,t,T,r)]
sig_A: Volatility of Firm's Assets
D_t: Value of Firm Debt [D_t = pv(K) - Put(K,sig_A,A_t,t,T,r)]
s: Credit Spread
p: Default Probability
R: Expected Recovery
d: Black-Scholes Parameter Anonymous Function
Inputs
E_t: Value of Equity
sig_E: Equity Volatility
K: Debt Barrier
t: Estimation Time (Years)
T: Maturity Time (Years)
r: Risk-free-Rate
Example 1
T = 5;
t = 0;
K = 500;
sig_E = 0.5;
r = 0.05;
E_t = 1200;
[A_t,sig_A,D_t,s,p,R,d1] = calcMertonModel(E_t,sig_E,K,t,T,r);
Example 2: Variates (sig_E,E_t)
t = 0; r = 0.05;
sig_E = (0.05:0.05:0.8)'; E_t = (100:100:2000)';
[sig_E,E_t] = meshgrid(sig_E,E_t);
K = repmat(600,size(sig_E)); T = repmat(5,size(sig_E));
[A_t,sig_A,D_t,s,p,R,d1] = calcMertonModel(E_t,sig_E,K,t,T,r);
Example 3: Variates (K,T)
t = 0; r = 0.05;
K = (100:100:4000)'; T = (0.1:0.1:10)';
[K,T] = meshgrid(K,T);
sig_E = repmat(0.4,size(K)); E_t = repmat(1300,size(K));
[A_t,sig_A,D_t,s,p,R,d1] = calcMertonModel(E_t,sig_E,K,t,T,r);
Citation pour cette source
Mark Whirdy (2024). Merton Structural Credit Model (Matrixwise Solver) (https://www.mathworks.com/matlabcentral/fileexchange/39717-merton-structural-credit-model-matrixwise-solver), MATLAB Central File Exchange. Extrait(e) le .
Compatibilité avec les versions de MATLAB
Plateformes compatibles
Windows macOS LinuxCatégories
Tags
Remerciements
Inspiré par : MTIMESX - Fast Matrix Multiply with Multi-Dimensional Support
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Découvrir Live Editor
Créez des scripts avec du code, des résultats et du texte formaté dans un même document exécutable.
Version | Publié le | Notes de version | |
---|---|---|---|
1.5.0.0 | Removed fsolve dependency (Optim Toolbox) for efficiency increase (even in scalar inputs case) Full Code re-factorization to facilitate matrixwise calculation of bivariate ranges of {E_t,sig_E,K,T} values using 3d Newton Jacobian solution. |
||
1.4.0.0 | Added the Black-Scholes Parameter Anonymous Function Handle as an Output to allow for further analysis (sensitivity, greeks etc) d = @(z,A_t,sig_A,T,t,K,r)((1/(sig_A*sqrt(T-t)))*(log(A_t/K) + (r + (z)*0.5*sig_A^2)*(T-t))); z = +1/-1 |
||
1.3.0.0 | Minor code refactoring, code returns the Black-Scholes Parameter to allow for further sensitivity analysis & calculation of greeks d = @(z,A_t,sig_A,T,t,K,r)
|
||
1.1.0.0 | Added Expected-Recovery calclulation [A_t,sig_A,D_t,s,p,R] = calcMertonModel(E_t,sig_E,K,t,T,r); |
||
1.0.0.0 |