Clarus Financial Technology

ISDA SIMM™ in Excel – Equity Derivatives

Equity Derivatives Initial Margin

So far we have successfully built and maintained Excel spreadsheets to calculate Delta IM for rates products, for multi-currency portfolios and also for Swaptions that cover both Vega and Curvature IM. Given the remit of ISDA SIMM™ to be easy to replicate, I thought this week I would turn my focus to an asset class I have little experience of – Equity Derivatives. The ISDA reference docs are here.

1. Risk Sensitivities For Delta

For Delta inputs, the sensitivities are much as we were with Rates. For Delta;

\( \tag {1} s  =  V(x+1 \%.x)-V(x)\)

i.e. we bump the price of the underlying equity by 1% and record the valuation change (V).

We must now assign each position to a Risk Bucket. There are 12 categories defined by ISDA as per the below:

Below is a representative input grid of positions, mapped to their Risk Buckets:

Showing;

2. Risk Weightings

We now apply the requisite risk weights to each bucket, according to the ISDA calibration. This is a simple look-up table providing a Risk Weight per bucket:

For now, I will run these assuming that we are below the Concentration Threshold. Please refer to my separate blog on Concentration Thresholds for the implementation of these risk multipliers.

Showing;

3. Correlations

We must now perform two distinct steps:

  1. Aggregate positions within a Risk Bucket
  2. Aggregate positions across Risk Buckets

This is a subtly different process to the one we performed for Rates. In Rates, the equivalent of a Risk Bucket is a Currency. To calculate the Delta Initial Margin for Rates, we would have to aggregate across multiple maturities (using one covariance matrix) and additionally across multiple indices (using another covariance matrix). This made step (1) for Rates fairly complicated (it is even more complicated for Credit….).

This is not the case for Equities, albeit we will likely be dealing with many many more than the (fictitious) 13 securities I am presenting here.

Aggregating Positions within a Risk Bucket

From an Excel perspective, we need to create a co-variance matrix that maps each security to all others. At first, we are interested in the within-bucket relationships, and all other co-variances are zero. The within-bucket correlations are calibrated by ISDA as per the below:

For each bucket, we must therefore calculate the appropriate co-variance between ISINs in the same bucket. This means deriving the co-variance matrices, according to which bucket each ISIN is in. As we see, for my example, I only have ISINs 5 and 13 in the same bucket – hence all of the zeros:

Covariance matrix by ISIN

Showing;

This is how I implement the key formula that we keep on revisiting in these blogs:

\( \tag {2} K = \sqrt{\sum\limits_{k}{WS_{k}^2+{\sum\limits_{k}}{\sum\limits_{l≠k}{f_{kl}{ρ_{kl}}{WS_{k}}{WS_{l}}}}}}\)

Where;

\( {WS_{k}}\) is the input sensitivity multiplied by the ISDA-supplied risk weighting.

\({f_{kl}}\) is the modification we have to make to our correlations in the case that one of the risk factors is above the Concentration Threshold. See my blog on this for more. For now, we assume we are below the CTs.

\({ρ_{kl}}\) is the correlation matrix that we just defined. It defines the correlation of the “WS” terms from one ISIN to the next (i.e. between k and l in the nomenclature). So for example, ISDA deem that ISINs falling within Bucket 11 have a correlation of 63% with each other. These are not currency dependent – one table serves all currencies.

I therefore calculate the value of “K” for each bucket, squaring the WS terms and adding in the sumproduct of correlation x WS:

Kb by bucket including interim calcs

Aggregating Positions across Risk Buckets

Now another small subtlety of the docs. The aggregation formula across buckets (equation 4 below) looks, at first pass, almost identical to the one for combining within a bucket (equation 2 above). But it is important to note that we must first calculate Sb for each bucket – as well as Kb above. We’ve defined Sb before:

\( \tag {3}{S_{b} = max(min({\sum\limits_{k}}WS_{k},K_{b}),-K_{b})}\)

\( {S_{b}}\) is either the sum of all of the “Weighted Sensitivities” or the value of K for bucket b. We first take the smaller of the sum of the WS’s and then the larger of this and  “negative K” for bucket b. This means that \( {S_{b}}\) can, in some instances, be a negative number.

Note that we do not calculate an Sb value for the Residual bucket (bucket 12 on my grid above).

We must now combine these calculated Sb values with the ISDA-supplied intra-bucket covariance matrix below:

Bucket Covariance Matrix

This final step is therefore nice and simple. We simply square each Kb value and add in the sumproduct of the Sb terms with their appropriate Bucket number in the covariance matrix. Put in equation-form:

\( {\tag {4} DeltaMargin = \sqrt{\sum\limits_{b}{K_{b}^2+{\sum\limits_{b}}{\sum\limits_{c≠b}{γ_{bc}}{S_{b}}{S_{c}}}}}+K_{residual}}\)

Where;

\(γ_{bc}\) represents the “ISDA Bucket Correlations” matrix immediately above.

The full suite of calculations is below:

ISDA SIMM Equity Derivs Initial Margin in Excel

Et Voila! An ISDA SIMM Initial Margin amount of $3,112,170 for our relatively diverse array of securities.

In Summary

Stay informed with our FREE newsletter, subscribe here.

Exit mobile version