Gilles De Truchis
Voici une classe qui permet de calculer la prime (spread) d'un CDS mono-support sur obligation et une application flash de pricing des CDS en question. La méthode utilisée est celle du
démantèlement, présentée précédemment.
package fx.bidesign.maths
{
import fx.bidesign.maths.Factorial;
public class CDS
{
public function CDS()
{
}
public static function evaluate( n:Number, s:Number, a:Number, r:Array, rc:Array ):Array
{
var phi:Array = [];
var spreads:Array = [];
var gamma:Array = [];
var leg1:Number = 0;
var leg2:Number = 0;
var value:Number = 0;
a = a / 100;
s = s / 100;
for( var i:int = 0; i < r.length; i++ )
{
r[i] = Number( r[i] ) / 100;
rc[i] = Number( rc[i] ) / 100;
spreads.push( rc[i] - r[i] );
phi.push( (i+1) * 1 / ( 1 - a ) * spreads[i] );
gamma.push( 1 - phi[i] );
if( i == 0 ) leg1 += 1 / Math.pow( 1 + r[i], i+1 ) * phi[i];
else leg1 += 1 / Math.pow( 1 + r[i], i+1 ) * ( gamma[i-1] - gamma[i] );
leg2 += 1 / Math.pow( 1 + r[i], i+1 ) * gamma[i];
}
leg1 *= ( 1 - a ) * n;
leg2 *= s * n;
value = leg1 - leg2;
return [value, leg1, leg2, phi, spreads];
}
}
}
Lun 20 avr 2009
1 commentaire
Hélas je n'ai pas poussé l'application jusque là. Mais il me semble avoir vu passer il y a quelque temps ce genre de programme en VBA sur le net.
Bon courage pour votre recherche.
Gilles De Truchis
Je souhaiterais savoir si vous avez également effectué la programmation du pricing CDS ainsi que des probabilités de survie Risque neutre à partir des spreads cds observés? Auriez vous cette programmation sous VBA à tout hasard?
Très cordialement,
Benjamin