Page 1 of 1

Risky Annuity Formula implemented in Bloomberg

Posted: July 5th, 2016, 3:19 pm
by Mattew46
Hi all! I wanna ask you if someone knows the exact formula, through which Bloomberg compute the risky annuity for a cds. I know Bloomberg uses a simplified formula for risky annuity, using a flat spread, and maybe it assumes that the payments of a cds are made at the maturity.Thank you in advance.

Risky Annuity Formula implemented in Bloomberg

Posted: July 5th, 2016, 10:17 pm
by bearish
If you go to cdsmodel.com you will find not just the formula, but source code. It is not nearly as simple as you think it is. Although, it probably should be....

Risky Annuity Formula implemented in Bloomberg

Posted: July 7th, 2016, 7:15 am
by Mattew46
Hi Bearish! Just one question. I used the command in Matlab ( I used the command cdsrpv01) in order to get the risky annuity and I get quite consistent data. However for just few quoted spread I get strange result (complex numbers). How can I do? These strange results are when I have an hazard rate greater than 1 (ex 1.29 with default probability about 99%, very risky).Could you suggest me something? Thanks

Risky Annuity Formula implemented in Bloomberg

Posted: July 7th, 2016, 3:57 pm
by bearish
Hmm, complex numbers have their use in math finance, but this is probably not where you want them. I am not familiar with the particular Matlab function, but most likely it is taking the log of a number that ought to be positive, but which is in fact negative due to some numerical precision issue. I see no easy way out short of stepping into the code to find the offending line. Once you know where it is going wrong you can start thinking about how to fix it, or at least code around it. Of course, names on the verge of default (where the problem arises) really should not be quoted in spread terms, but I know for a fact that it has happened, so that is neither here nor there. For names quoted in up-front terms, there is the separate problem when you encounter an up-front premium greater than (1-R), in which case you are forced to change R...