-
Notifications
You must be signed in to change notification settings - Fork 0
Home
I met Paolo Barucca at a CoSyDy workshop at QMUL in July of last year, where he gave a talk on an earlier version of the NEVA scheme. We discussed the potential multiplicity of solutions, a problem I was convinced should go away given the correct adaptation to his approach. The only concrete suggestion I made at that time was that one should allow for default at times preceding final maturity T, and I am pleased to see that that idea made it into the subsequent version. But I believe there is a little more work required to make the scheme properly coherent.
I have written some prototype Python code, mainly to be sure that I understand my own proposal. At the time of writing (12 Dec 17) I can claim no more for it than that it runs. The file lattice.py contains the bulk of my contribution. I chose the pseudospectral method of solving PDEs for its parsimony (the computation is potentially a heavy one) but I am beginning to think another method (e.g. multigrid, possibly with something like PCA to reduce dimensionality) might be better suited.
Let m(t, τ) = e-τ be the density function for time to maturity τ of debt held at time t. It has mass ∫0∞m(t, τ) dτ = 1 and mean time to maturity ∫0∞τ m(t, τ) dτ = 1 (matching NEVA’s current assumption). Moreover it solves the steady state equation Dtm = m + Dτm = 0.
The m term in that last equation represents a continuous replenishing of the bond portfolio so as to keep it constant. Without such a term, the assumption implicitly made in NEVA that a bank’s barrier of failure is independent of time will in general be false. By including it, we find a plausible model that benefits from certain advantages afforded by that property. For example time disappears entirely from the valuation equation
Dtv = ½ σ2 Dyv - ½ σ2 Dyyv + v - 1 = 0.
Like the m term in the previous equation, the v term in this steady state equation represents a continuous replenishing of the bond portfolio. The constant loss term (- 1) represents maturing debt, the value of which will be realised as cash. If our portfolio were replenished with debt bought at face value then we should require exactly that amount of cash to do so. In practice risky debt ought to come at a discount (corresponding to 1 - v), so there is profit to be made in lending to a risky counterparty so long as it does not in fact default. But to take account of such profits and profit motives is beyond the scope of this model.
The steady state valuation equation in one dimension happens to have an exact solution, v = 1 - exp{-½(-1 + √(1+8/σ2))y}. Unfortunately we will be able to make little use of that if we are to address another dubious assumption implicit in NEVA, again relating to a bank’s barrier of failure. It is that such a barrier is independent not only of time but also of any asset value other than the one corresponding to the bank’s own portfolio. I propose to abandon this assumption entirely, and instead to base our treatment on a valuation PDE constructed in multiple ‘spatial’ dimensions, each corresponding to the portfolio of a different bank. (If you were wondering where asset value correlations had got to, we shall see them here.) But solving it is likely to be a much more demanding task computationally.
It is straightforward to generalise the Black-Scholes-Merton equation to an underlying space of n correlated assets. Each of these will correspond to a bank’s external holdings, that is, to its portfolio of assets in the real economy.
Assume each asset ai to evolve according to the geometric Brownian motion dai = aiμi dt + ai dWi with dWidWj = Sij dt. Consider some option with value u (the unknown). A hedged portfolio will be given by Π = u + ∑i hiai (h to be determined).
Now du = Dtu dt + ∑i Daiu dai + ½ ∑ij Daiaju daidaj = (Dtu + ½ ∑ij Sijaiaj Daiaju) dt + ∑i Daiu dai.
Make hi = -Daiu so that dΠ = du + ∑i hi dai = (Dtu + ½ ∑ij Sijaiaj Daiaju) dt.
Uncertainty has been hedged away in this last expression. Let us make the standard assumption that significant arbitrage is impossible, while neglecting interest rates and coupon payments. We come to the multi-dimensional Black-Scholes-Merton PDE
Dtu = -½ ∑ij Sijaiaj Daiaju.
With ai = Aieyi for all i, we have Dyiu = ai Daiu and Dyiyju = aiaj Daiaju + ai Daiu δi,j so we may alternatively write Dtu = ½ ∑i Sii Dyiu - ½ ∑ij Sij Dyiyju.
Consider now the valuation of the whole bond portfolio (continuously replenished as described in the previous section). The steady state equation is
½ ∑i Sii Dyiv - ½ ∑ij Sij Dyiyjv + v - 1 = 0.
Figure: Dependencies among solutions with different sets of banks presumed to survive.

The figure illustrates the problem for three banks labelled 1, 2 and 3. At the initial time, all three banks survive; their debts may be valued by solving the PDE for each. The result of this we call v ({1,2,3}). It is a vector of three components, each a function of asset values representing the valuation of one bank’s debt over and above its recovery value. The argument {1,2,3} is the set of surviving banks.
This corresponds to the topmost entry in the figure. (I see that I am again mixing up u and v without explanation; in my notes I have made various distinctions at various times, but for the purposes of this informal description it is probably best to consider them one and the same.)
So far so straightforward. But in the previous paragraph I glossed over something we will need before we can look for any solutions to the PDE—its boundary conditions. The region in which all three banks survive (call it V({1,2,3}) ) will be bounded on three sides, one where bank 1 fails, one where bank 2 fails and one where bank 3 fails. At the boundary where bank 1 fails, v1 must be zero while v2 and v3 are given by u ({2,3}), the solution as calculated for the case in which only banks 2 and 3 survive. Similarly at the boundary where bank 2 fails, v2 is zero while while v1 and v3 are given by u ({1,3}). Where bank 3 fails, v3 is zero while v1 and v2 are given by u ({1,2}). In this way we construct the lattice of dependencies as drawn.
In practice we start at the bottom of the picture and work up. This piece of logic is written into the fixedpoint_equity method of BankingSystemCorrelatedGBM in lattice.py. Further program-specific details may be found here.