File
cca.m
Name
cca
Synopsis
cca - calculates the difference between put price and CDS price to determine company contribution to systemic risk based on Grey et al. (2010).
Introduction
NOTE: PART OF A SET OF 2 RELATED FILES:
Gray and Jobst (2010) propose using contingent claims analysis (CCA) to measure systemic risk from market-implied expected losses, with immediate practical applications to the analysis of implicit government contingent liabilities, i.e., guarantees. In addition, the framework also helps quantify the individual contributions of financial institutions to overall contingent liabilities in the event of a systemic distress. Based on a sample of the 36 largest financial institutions (banks, insurance companies, and asset managers), this systemic risk measurement framework generates an estimate of the joint contingent liabilities from market-implied government support. This approach does not only quantify the magnitude of potential risk transfer to the government but also helps indicate the contribution of individual institutions to contingent liabilities over time.
License
=============================================================================
Copyright 2011, Dimitrios Bisias, Andrew W. Lo, and Stavros Valavanis
COPYRIGHT STATUS: This work was funded in whole or in part by the Office of
Financial Research under U.S. Government contract TOSOFR-11-C-0001, and is,
therefore, subject to the following license: The Government is granted for
itself and others acting on its behalf a paid-up, nonexclusive, irrevocable,
worldwide license to reproduce, prepare derivative works,
distribute copies to the public, perform and display the work.
All other rights are reserved by the copyright owner.
THIS SOFTWARE IS PROVIDED "AS IS". YOU ARE USING THIS SOFTWARE AT YOUR OWN RISK. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS, CONTRIBUTORS, OR THE UNITED STATES GOVERNMENT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=============================================================================
Inputs
Outputs
Code
% Run warning message
warning('OFRwp0001:UntestedCode', ...
['This version of the source code is very preliminary, ' ...
'and has not been thoroughly tested. Users should not rely on ' ...
'these calculations.']);
% We need to solve a system of non-linear equations for asset price and
% asset volatility
% For this we need to guess an initial point
% Set the initial point equal to equity and its volatility
x0 = [equity; volatility];
% Use cca_fun which contains expressions to solve for asset price and asset
% volatility
val = @(x)cca_fun(equity, volatility, risk_free_rate, default_barrier, ...
time_to_maturity, x(1),x(2));
% Solve the expression.
[x,fval] = fsolve(val,x0);
% We solved for (asset price)^1/2 and (asset volatility)^1/2 to ensure the
% values are positive. We recover asset price and asset volatility here.
x=x.^2;
% Solve for implied price of put
d1 = (log(x(1)/default_barrier)+(risk_free_rate + (x(2)^2)/2) ...
*time_to_maturity)/(x(2)*sqrt(time_to_maturity));
d2 = d1 - x(2)*sqrt(time_to_maturity);
% The price of the put
put_price = default_barrier *exp(-risk_free_rate*time_to_maturity) ...
*normcdf(-d2)-x(1)*normcdf(-d1);
% Solve for price of CDS implied put
% Risky debt
debt = default_barrier*exp(-risk_free_rate*time_to_maturity) - put_price;
% The price of the CDS put option
cds_put=(1-exp(-(cds_spread/10000)*(default_barrier/debt-1) ...
*time_to_maturity))*default_barrier*exp(-risk_free_rate*time_to_maturity);
% Get systemic risk contribution
systemic_risk_indicator_contribution = put_price - cds_put;
Examples
NOTE: Numbers used in the examples are arbitrary valid values.
They do not necessarily represent a realistic or plausible scenario.
equity = 5;
volatility = 1.2;
risk_free_rate = .02;
default_barrier = 10;
time_to_maturity = 20;
cds_spread = 1.5;
[put_price systemic_risk_indicator_contribution] = cca(equity, ...
volatility, risk_free_rate, default_barrier, time_to_maturity, ...
cds_spread);
References