Imaginary butterfly

Yesterday night, I finish reading a book. This morning, I was wondering what to do next. Weather is not good enough to play golf, and I was reduced to start a reading a new book or let my imagination wander. I choose the latter, and from imagination to imaginary there was only a short step. And from imaginary to imaginary capital and FRTB another short step.

So I decided to create a simple swap position with imaginary capital according to the standard approach of the FRTB.
  • Creating the matrix in rule 77: 10 lines of (Matlab) code.
  • Finding the not positively defined sub-matrices of dimension 3 of the qbove: 10 lines of (Matlab) code
  • Creating an actual position and computing its risk weighted sensitivity and FRTB capital: 50 lines of (Java) code
  • Result: priceless!
Priceless has to be understood as the capital required to hold that position is imaginary, and you can not buy imagination for any price!

Maybe a little bit more details about the computation. First step is creating the matrix described in rule 77. The result is:
Tenor 0.25Y 0.50Y 1Y 2Y 3Y 5Y 10Y 15Y 20Y 30Y
0.25Y 1.0000 0.9704 0.9139 0.8106 0.7189 0.5655 0.4000 0.4000 0.4000 0.4000
0.50Y 0.9704 1.0000 0.9704 0.9139 0.8607 0.7634 0.5655 0.4190 0.4000 0.4000
1Y 0.9139 0.9704 1.0000 0.9704 0.9418 0.8869 0.7634 0.6570 0.5655 0.4190
2Y 0.8106 0.9139 0.9704 1.0000 0.9851 0.9560 0.8869 0.8228 0.7634 0.6570
3Y 0.7189 0.8607 0.9418 0.9851 1.0000 0.9802 0.9324 0.8869 0.8437 0.7634
5Y 0.5655 0.7634 0.8869 0.9560 0.9802 1.0000 0.9704 0.9418 0.9139 0.8607
10Y 0.4000 0.5655 0.7634 0.8869 0.9324 0.9704 1.0000 0.9851 0.9704 0.9418
15Y 0.4000 0.4190 0.6570 0.8228 0.8869 0.9418 0.9851 1.0000 0.9900 0.9704
20Y 0.4000 0.4000 0.5655 0.7634 0.8437 0.9139 0.9704 0.9900 1.0000 0.9851
30Y 0.4000 0.4000 0.4190 0.6570 0.7634 0.8607 0.9418 0.9704 0.9851 1.0000

The next step is checking if there are sub-matrices of dimension 3 that are not positively defined. There are in total 120 possible combination of that type of matrices. A number small enough that one can scan all of them and look for negative eigenvalues. This is probably not the most efficient numerical procedure but as it takes less than a second to run it, this is not the most important part.

Out of those 120 possible matrices, 34 (!) are not positively defined. I selected the “worst”, according to a arbitrary criterion, for the sequel of this analysis. This is the sub-matrix with indices (2, 5, 8), i.e. the nodes 0.5Y, 3Y and 15Y. The smallest  eigenvalue is -0.0042 and the associated eigenvector [-0.4401, 0.7638, -0.4721]. The Matlab code for that part is provided below and should be applied to the “cor” matrix presented above.

% Copyright (C) 2016 by Marc Henrard

 c3 = nchoosek(1:10, 3);  
 nbProb=0;  
 for(i=1:length(c3))  
   e = eig(cor(c3(i,:), c3(i, :)));  
   if(min(e)<0)  
     nbProb=nbProb+1;  
     b3(nbProb, :) = c3(i,:);  
     be3(nbProb,:) = e';  
   end  
 end  
 nbProb  
 [m, ind] = min(be3(:,1))  
 b3(ind, :)  
 be3(ind, :)  
 B3 = cor(b3(ind, :), b3(ind, :));  
 [V, D] = eig(B3);  
 p3 = V(:,1)  


Creating a positively defined matrix than can be used as a correlation matrix and at the same time looks plausible for finance application is not trivial. Throwing random numbers or made-up functions to create the different elements is not likely to produce an acceptable result. From the above description, the functional form proposed by the BCBS is clearly not appropriate.

We have now enough information to create a simple example with imaginary capital. Select a position that will create a risk weighted sensitivity close enough to the above eigenvalue. I selected the following positions in EONIA ATM swaps with maturities 0.5Y, 3Y and 15Y: -400m, 150m and -20m with negative number for a receiver and positive number for a payer. This is a type of butterfly position. Entering the above position in my efficient tools, I get immediately the following sensitivity vector:
[0.00, -202516257.66, 0.00, 0.00, 460337138.18, 0.00, 0.00, -290770969.62, 0.00, 0.00]
The above figures were obtained with data from 20-Nov-2015. The sensitivities are computed by algorithmic differentiation; they do not fit the “bad” definition of sensitivity used in the FRTB, but are close enough for the result I want to illustrate.

Now let the FRTB capital computation tool apply the risk weights and the (pseudo-)correlation to that position and you get:

FRTB capital computed involves the square root of a negative number
  |-->; Partial capital is: 0.0 + 2100828.445881 i

What does that mean in practice? I don't have the slightest idea, but it certainly looks very cool! And ...

I have my imaginary butterfly!

Beyond the funny result and tone used in this blog, there is a serious problem. The careless construction of the approach make the result completely meaningless. The credibility of the financial regulators will decrease further, if possible, and the number produced by this new regulation will fill the boxes of costly and pointless reports.

If you have an interest in reducing the capital of your swap book, don't hesitate to contact me for consulting work.

Comments

Popular posts from this blog

Multi-curve framework book: new edition in progress

Rigged: part 1 - Will there be a part 2?

Treasury / Swap spreads are negative. And what?