Lundi 20 avril 2009
1
20
/04
/2009
00:40
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];
}
}
}
Télécharger les sources (.rar)
Par Gilles De Truchis
-
Publié dans : Programmation AS3
0
-
Recommander