Valuation of Credit Default Options

Credit default swap options which are better known by the term CDS Swaptions are useful instrument to trade future expectation of the credit worthiness of a reference entity in the option format. As the name suggest, they are similar to their interest rate counterparts, but differ in terms of ‘knock out’ feature which makes the option worthless if the reference entity defaults before the option expiry. We review the standard European option pricing and suggest few alternatives from the Levy class models that provide tractable treatment for the jumps-enriched intensity processes in the credit markets.

4 Likes

Hi Igor,
great post again.
I’ve been trying to replicate your results but I have run into difficulties with the last example of valuation under a Gamma process with non-deterministic volatility. The result I get is a complex number.
This is the code:

pm1 = ParameterMixtureDistribution[GammaDistribution[a, b], 
   b \[Distributed] ExponentialDistribution[\[Lambda]]];
sol3 = Solve[{Mean[pm1] == x0 + \[Mu]*t, 
   StandardDeviation[pm1] == \[Sigma] Sqrt[t]}, {a, \[Lambda]}]
sol3vals = {a /. sol3[[1]], \[Lambda] /. sol3[[1]]};
evpm1 = Subscript[A, 0]
    Expectation[If[x > k, x - k, 0], x \[Distributed] pm1, 
    Assumptions -> k > 0 && t > 0] // Simplify
evpmcal = evpm1 /. {a -> sol3vals[[1]], \[Lambda] -> sol3vals[[2]]};
evpmcal /. {t -> 3, x0 -> 0.014, 
  k -> 0.014, \[Sigma] -> 0.004, \[Mu] -> 0, Subscript[A, 0] -> 45.598}

0.133831 - 0.116303 I

May I know what I’m doing wrong?
Many thanks in advance,
Ruben

1 Like

Hello Ruben
The problem with Gamma mixture resides in the parameter definition. For Gamma process, both parameters have to be positive.
This is ensured when sigma (in the context of other parameters defined in this example) is at least 80 bp

In[79]:= pm1 = 
  ParameterMixtureDistribution[GammaDistribution[a, b], 
   b \[Distributed] ExponentialDistribution[\[Lambda]]];

In[80]:= sl5 = 
  Solve[{Mean[pm1] == x0 + \[Mu]*t, 
    StandardDeviation[pm1] == \[Sigma] Sqrt[t]}, {a, \[Lambda]}];

In[81]:= sl5vals = {a /. sl5[[1]], \[Lambda] /. sl5[[1]]};

In[82]:= evpm1 = 
 Subscript[A, 0]
    Expectation[If[x > k, x - k, 0], x \[Distributed] pm1, 
    Assumptions -> k > 0 && t > 0] // Simplify

   In[69]:= evpmcal = 
  evpm1 /. {a -> sl5vals[[1]], \[Lambda] -> sl5vals[[2]]};

In[78]:= evpmcal /. {t -> 5, x0 -> 0.014, 
  k -> 0.014, \[Sigma] -> 0.008, \[Mu] -> 0, Subscript[A, 0] -> rann}

Out[78]= 0.0269472

Hope this answers your question. If not, please let me know.
Kind regards
Igor

2 Likes

Hi Igor,
thanks for the explanation. I understand now what’s going on.
Regards,
Ruben

Igor

Thank you very much for your fascinating series on the application of Mathematica to finance, but is it possible to get the notebook behind this and the other PDF files?

Regards
Michael