Merton Structural Credit Model (Matrixwise Solver)

Matrixwise Calculation Firm Asset Value, Volatility, Debt Value, Spread, Default Prob, Exp-Recovery
1,8K Downloads
Aktualisiert 14. Mai 2013

Lizenz anzeigen

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);

Zitieren als

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. Abgerufen.

Kompatibilität der MATLAB-Version
Erstellt mit R2011a
Kompatibel mit allen Versionen
Plattform-Kompatibilität
Windows macOS Linux
Kategorien
Mehr zu Risk Management Toolbox finden Sie in Help Center und MATLAB Answers

Community Treasure Hunt

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

Start Hunting!
Version Veröffentlicht Versionshinweise
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)
z=+1/-1 for Call/Put

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