Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

creditCurve Class Reference

#include <creditCurve.h>

Inheritance diagram for creditCurve:

yieldCurve List of all members.

Public Member Functions

 creditCurve (void)
 default constructor

 creditCurve (valarray< yieldPoint > &yp, valarray< CreditSpreadPoint > &cp, char *name=CC_DEFAULT_NAME, Real recoveryRate=CC_DEFAULT_RECOVERY_RATE, Currency currency=CC_DEFAULT_CURRENCY, Frequency frequency=CC_DEFAULT_FREQUENCY)
 Constructor.

 creditCurve (yieldCurve &yc, valarray< CreditSpreadPoint > &cp, char *name=CC_DEFAULT_NAME, Real recoveryRate=CC_DEFAULT_RECOVERY_RATE, Currency currency=CC_DEFAULT_CURRENCY, Frequency frequency=CC_DEFAULT_FREQUENCY)
 creditCurve (Real flatRate, Real flatSpread, char *name=CC_DEFAULT_NAME, Real recoveryRate=CC_DEFAULT_RECOVERY_RATE, Currency currency=CC_DEFAULT_CURRENCY, Frequency frequency=CC_DEFAULT_FREQUENCY)
 creditCurve (yieldCurve &yc, Real flatSpread, char *name=CC_DEFAULT_NAME, Real recoveryRate=CC_DEFAULT_RECOVERY_RATE, Currency currency=CC_DEFAULT_CURRENCY, Frequency frequency=CC_DEFAULT_FREQUENCY)
 creditCurve (const creditCurve &rhs)
creditCurveoperator= (const creditCurve &rhs)
virtual ~creditCurve (void)
yieldCurvecreateSpreadCurve (yieldCurve &underlying, valarray< CreditSpreadPoint > &spreads)
yieldCurvecombineUnderlyingAndSpreads (yieldCurve &underlying, yieldCurve &spreadcurve)
void assignFlatSpread (Real r)
void resampleSpread ()
virtual Real creditSpread (Real maturity) const
virtual Real creditSpread (Date maturityDate) const
virtual Real timeOfCurrentSpread (Real maturity) const
virtual Natural indexOfCurrentSpread (Real maturity) const
virtual Real timeOfPreviousSpread (Real maturity) const
virtual Natural indexOfPreviousSpread (Real maturity) const
virtual Real survivalProbability (Real maturity) const
virtual Real cumulativeDefaultProbability (Real maturity) const
virtual Real swapFees (Real maturity) const
virtual Real defaultProbability (Real maturity) const
 returns conditional default probability at a given maturity.

virtual Real hazardRate (Real maturity) const
 returns hazard rate at a given maturity - this is an alias for defaultProbability i.e.

virtual Real spotRate (Real maturity) const
 Calculates the spot ZCB rate.

virtual Real spotRate (Date maturityDate) const
 Calculates the spot ZCB rate.

virtual Real discountFactor (Real maturity, interestComposition composition=Continuous)
 Calculates the discountFactor.

virtual Real riskyDiscountFactor (Real maturity, interestComposition composition=Continuous)
 Calculates the risky discount factor incorporating the hazard rate.

virtual Real discountFactor (Date maturityDate, interestComposition composition=Continuous)
 Calculates the discountFactor.

virtual Real forwardRate (Real forwardStart, Real effectiveLengthOfTheContractAfterStart, interestComposition composition=Continuous)
 Calculates the fwd rate.

virtual Real forwardRate (Date forwardStart, Date forwardEnd, interestComposition composition=Continuous)
 Calculates the fwd rate.

virtual valarray< RealgetMaturitiesInTheZCBCurve () const
 Return the maturities present in the market curve, both from the Cash and Swap Pointsvalarray<Real>.

virtual char * getName ()
Real getRecoveryRate (void) const
Currency getCurrency (void) const
Frequency getFrequency (void) const

Protected Member Functions

yieldCurvegetUnderlying (void) const
yieldCurvegetCombined (void) const
valarray< CreditSpreadPointgetSpreads (void) const
valarray< cachedvalgetSurvivalProbability (void) const
valarray< cachedvalgetDefaultProbability (void) const
valarray< cachedvalgetSwapFees (void) const

Protected Attributes

yieldCurve_underlying
yieldCurve_combined

Private Member Functions

void copyObj (const creditCurve &rhs)

Private Attributes

valarray< CreditSpreadPoint_spreads
valarray< cachedval_survivalProbability
valarray< cachedval_defaultProbability
valarray< cachedval_swapFees
Real _recoveryRate
Currency _currency
Frequency _frequency

Friends

ostream & operator<< (ostream &os, const creditCurve &c)
ostream & operator<< (ostream &os, const creditCurve *c)

Constructor & Destructor Documentation

creditCurve::creditCurve void   ) 
 

default constructor

Definition at line 24 of file creditCurve.cpp.

References CC_MAX_NUM_SPREADS.

creditCurve::creditCurve valarray< yieldPoint > &  yp,
valarray< CreditSpreadPoint > &  cp,
char *  name = CC_DEFAULT_NAME,
Real  recoveryRate = CC_DEFAULT_RECOVERY_RATE,
Currency  currency = CC_DEFAULT_CURRENCY,
Frequency  frequency = CC_DEFAULT_FREQUENCY
 

Constructor.

Parameters:
yp - as with yield curve, array of yield points
cp - array of credit spreads for different maturities
recoveryRate - amount of debt collected in case of default
currency - that the debt is denominated in
frequency - annual, semi-annual, etc.
name - a string identifying the curve

Definition at line 100 of file creditCurve.cpp.

References _combined, _underlying, CC_MAX_NUM_SPREADS, combineUnderlyingAndSpreads(), createSpreadCurve(), Real, resampleSpread(), and yieldCurve::yieldCurve().

creditCurve::creditCurve yieldCurve yc,
valarray< CreditSpreadPoint > &  cp,
char *  name = CC_DEFAULT_NAME,
Real  recoveryRate = CC_DEFAULT_RECOVERY_RATE,
Currency  currency = CC_DEFAULT_CURRENCY,
Frequency  frequency = CC_DEFAULT_FREQUENCY
 

Definition at line 32 of file creditCurve.cpp.

References _combined, _underlying, CC_MAX_NUM_SPREADS, combineUnderlyingAndSpreads(), createSpreadCurve(), Real, resampleSpread(), and yieldCurve::yieldCurve().

creditCurve::creditCurve Real  flatRate,
Real  flatSpread,
char *  name = CC_DEFAULT_NAME,
Real  recoveryRate = CC_DEFAULT_RECOVERY_RATE,
Currency  currency = CC_DEFAULT_CURRENCY,
Frequency  frequency = CC_DEFAULT_FREQUENCY
 

Definition at line 55 of file creditCurve.cpp.

References _combined, _underlying, assignFlatSpread(), CC_MAX_NUM_SPREADS, combineUnderlyingAndSpreads(), Real, and yieldCurve::yieldCurve().

creditCurve::creditCurve yieldCurve yc,
Real  flatSpread,
char *  name = CC_DEFAULT_NAME,
Real  recoveryRate = CC_DEFAULT_RECOVERY_RATE,
Currency  currency = CC_DEFAULT_CURRENCY,
Frequency  frequency = CC_DEFAULT_FREQUENCY
 

Definition at line 77 of file creditCurve.cpp.

References _combined, _underlying, assignFlatSpread(), CC_MAX_NUM_SPREADS, combineUnderlyingAndSpreads(), Real, and yieldCurve::yieldCurve().

creditCurve::creditCurve const creditCurve rhs  ) 
 

Definition at line 129 of file creditCurve.cpp.

References copyObj().

creditCurve::~creditCurve void   )  [virtual]
 

Definition at line 243 of file creditCurve.cpp.

References _combined, and _underlying.


Member Function Documentation

void creditCurve::assignFlatSpread Real  r  ) 
 

Definition at line 214 of file creditCurve.cpp.

References _defaultProbability, _spreads, _survivalProbability, _swapFees, Natural, r, Real, and Relative.

Referenced by creditCurve().

yieldCurve * creditCurve::combineUnderlyingAndSpreads yieldCurve underlying,
yieldCurve spreadcurve
 

Definition at line 181 of file creditCurve.cpp.

References Cash, yieldCurve::getMaturitiesInTheZCBCurve(), mergeunique(), Natural, yieldCurve::spotRate(), and yieldCurve::yieldCurve().

Referenced by creditCurve().

void creditCurve::copyObj const creditCurve rhs  )  [private]
 

Definition at line 140 of file creditCurve.cpp.

References _combined, _currency, _defaultProbability, _frequency, _recoveryRate, _spreads, _survivalProbability, _swapFees, _underlying, getCombined(), getCurrency(), getDefaultProbability(), getFrequency(), getRecoveryRate(), getSpreads(), getSurvivalProbability(), getSwapFees(), getUnderlying(), and yieldCurve::yieldCurve().

Referenced by creditCurve(), and operator=().

yieldCurve * creditCurve::createSpreadCurve yieldCurve underlying,
valarray< CreditSpreadPoint > &  spreads
 

Definition at line 153 of file creditCurve.cpp.

References Absolute, Cash, Natural, yieldCurve::spotRate(), and yieldCurve::yieldCurve().

Referenced by creditCurve().

virtual Real creditCurve::creditSpread Date  maturityDate  )  const [inline, virtual]
 

Definition at line 144 of file creditCurve.h.

References _combined, _underlying, Real, and yieldCurve::spotRate().

virtual Real creditCurve::creditSpread Real  maturity  )  const [inline, virtual]
 

Definition at line 139 of file creditCurve.h.

References _combined, _underlying, Real, and yieldCurve::spotRate().

Referenced by defaultProbability(), maincreditcurve(), and swapFees().

Real creditCurve::cumulativeDefaultProbability Real  maturity  )  const [virtual]
 

Definition at line 290 of file creditCurve.cpp.

References Real, and survivalProbability().

Referenced by maincreditcurve().

Real creditCurve::defaultProbability Real  maturity  )  const [virtual]
 

returns conditional default probability at a given maturity.

Parameters:
maturity - time at which to evaluate probability
Returns:
conditional default probability - the same probability will be returned for all times between two spreads

Definition at line 357 of file creditCurve.cpp.

References _defaultProbability, _recoveryRate, _underlying, creditSpread(), yieldCurve::discountFactor(), indexOfCurrentSpread(), Natural, Real, survivalProbability(), swapFees(), timeOfCurrentSpread(), and timeOfPreviousSpread().

Referenced by hazardRate(), maincreditcurve(), survivalProbability(), and swapFees().

virtual Real creditCurve::discountFactor Date  maturityDate,
interestComposition  composition = Continuous
[inline, virtual]
 

Calculates the discountFactor.

Parameters:
maturity : just after ZCBrates are computed, it it very easy [done at trhe constructor level]

Reimplemented from yieldCurve.

Definition at line 206 of file creditCurve.h.

References _combined, and yieldCurve::discountFactor().

virtual Real creditCurve::discountFactor Real  maturity,
interestComposition  composition = Continuous
[inline, virtual]
 

Calculates the discountFactor.

Parameters:
maturity : just after ZCBrates are computed, it it very easy [done at trhe constructor level]

Reimplemented from yieldCurve.

Definition at line 189 of file creditCurve.h.

References _combined, yieldCurve::discountFactor(), and Real.

virtual Real creditCurve::forwardRate Date  forwardStart,
Date  forwardEnd,
interestComposition  composition = Continuous
[inline, virtual]
 

Calculates the fwd rate.

Parameters:
forwardStart start of the rate
maturityAfterForward maturity after the start

Reimplemented from yieldCurve.

Definition at line 229 of file creditCurve.h.

References _combined, and yieldCurve::forwardRate().

virtual Real creditCurve::forwardRate Real  forwardStart,
Real  effectiveLengthOfTheContractAfterStart,
interestComposition  composition = Continuous
[inline, virtual]
 

Calculates the fwd rate.

Parameters:
forwardStart start of the rate
maturityAfterForward maturity after the start

Reimplemented from yieldCurve.

Definition at line 216 of file creditCurve.h.

References _combined, yieldCurve::forwardRate(), and Real.

yieldCurve* creditCurve::getCombined void   )  const [inline, protected]
 

Definition at line 248 of file creditCurve.h.

References _combined.

Referenced by copyObj().

Currency creditCurve::getCurrency void   )  const [inline]
 

Definition at line 240 of file creditCurve.h.

References _currency, and Currency.

Referenced by copyObj().

valarray<cachedval> creditCurve::getDefaultProbability void   )  const [inline, protected]
 

Definition at line 251 of file creditCurve.h.

References _defaultProbability.

Referenced by copyObj().

Frequency creditCurve::getFrequency void   )  const [inline]
 

Definition at line 241 of file creditCurve.h.

References _frequency, and Frequency.

Referenced by copyObj().

virtual valarray<Real> creditCurve::getMaturitiesInTheZCBCurve  )  const [inline, virtual]
 

Return the maturities present in the market curve, both from the Cash and Swap Pointsvalarray<Real>.

Reimplemented from yieldCurve.

Definition at line 234 of file creditCurve.h.

References _combined, and yieldCurve::getMaturitiesInTheZCBCurve().

virtual char* creditCurve::getName  )  [inline, virtual]
 

Reimplemented from yieldCurve.

Definition at line 237 of file creditCurve.h.

References _combined, and yieldCurve::getName().

Real creditCurve::getRecoveryRate void   )  const [inline]
 

Definition at line 239 of file creditCurve.h.

References _recoveryRate, and Real.

Referenced by copyObj().

valarray<CreditSpreadPoint> creditCurve::getSpreads void   )  const [inline, protected]
 

Definition at line 249 of file creditCurve.h.

References _spreads.

Referenced by copyObj().

valarray<cachedval> creditCurve::getSurvivalProbability void   )  const [inline, protected]
 

Definition at line 250 of file creditCurve.h.

References _survivalProbability.

Referenced by copyObj().

valarray<cachedval> creditCurve::getSwapFees void   )  const [inline, protected]
 

Definition at line 252 of file creditCurve.h.

References _swapFees.

Referenced by copyObj().

yieldCurve* creditCurve::getUnderlying void   )  const [inline, protected]
 

Definition at line 247 of file creditCurve.h.

References _underlying.

Referenced by copyObj().

virtual Real creditCurve::hazardRate Real  maturity  )  const [inline, virtual]
 

returns hazard rate at a given maturity - this is an alias for defaultProbability i.e.

probability of default at time t conditional on no earlier default.

Parameters:
maturity - time at which to evaluate probability
Returns:
conditional default probability

Definition at line 172 of file creditCurve.h.

References defaultProbability(), and Real.

Referenced by maincreditcurve().

Natural creditCurve::indexOfCurrentSpread Real  maturity  )  const [virtual]
 

Definition at line 254 of file creditCurve.cpp.

References _spreads, Natural, and Real.

Referenced by defaultProbability(), survivalProbability(), swapFees(), and timeOfCurrentSpread().

Natural creditCurve::indexOfPreviousSpread Real  maturity  )  const [virtual]
 

Definition at line 272 of file creditCurve.cpp.

References _spreads, Natural, and Real.

Referenced by timeOfPreviousSpread().

creditCurve & creditCurve::operator= const creditCurve rhs  ) 
 

Definition at line 134 of file creditCurve.cpp.

References copyObj().

void creditCurve::resampleSpread  ) 
 

Definition at line 228 of file creditCurve.cpp.

References _combined, _defaultProbability, _spreads, _survivalProbability, _swapFees, _underlying, Natural, Relative, and yieldCurve::spotRate().

Referenced by creditCurve().

Real creditCurve::riskyDiscountFactor Real  maturity,
interestComposition  composition = Continuous
[virtual]
 

Calculates the risky discount factor incorporating the hazard rate.

Parameters:
maturity - maturity to calculate risky discount factor for

risky discount = risk free discount * survival probability

In the class notes we have RF = DF * (1 - Q(T)) Q(T) is cumulative default probability so it is the complement of S(T), the cumulative survival probability.

In discrete time we have the identity: (S(n) - S(n+1)) / S(n) = q(n) where q(n) is the default probability for period n conditional on no earlier default. q(n) is a discrete time version of hazard rate. In the limit (as dt -> 0) this leads to the expression S(t) = exp(-(integral from 0 to t)*h(t)*dt)

The risky discount factor is a "discounted" discount factor - the discounting applied is the survival probability. In continuous time we can use the expression above but since we have calculated everything to this point in discrete time and we have an explicit expression for the survival probability we use this as the discount factor rather than the continuous time expression above.

Definition at line 394 of file creditCurve.cpp.

References _underlying, yieldCurve::discountFactor(), Real, and survivalProbability().

Referenced by maincreditcurve(), and riskybond::quotedPrice().

virtual Real creditCurve::spotRate Date  maturityDate  )  const [inline, virtual]
 

Calculates the spot ZCB rate.

Parameters:
maturityDate : maturityDate of the ZCB

Reimplemented from yieldCurve.

Definition at line 180 of file creditCurve.h.

References _combined, Real, and yieldCurve::spotRate().

virtual Real creditCurve::spotRate Real  maturity  )  const [inline, virtual]
 

Calculates the spot ZCB rate.

Parameters:
maturity : if it is exact it just gives the result from a Point, else an interpolated one based on interpolator

Reimplemented from yieldCurve.

Definition at line 176 of file creditCurve.h.

References _combined, Real, and yieldCurve::spotRate().

Real creditCurve::survivalProbability Real  maturity  )  const [virtual]
 

Definition at line 295 of file creditCurve.cpp.

References _survivalProbability, defaultProbability(), indexOfCurrentSpread(), Natural, Real, timeOfCurrentSpread(), and timeOfPreviousSpread().

Referenced by cumulativeDefaultProbability(), defaultProbability(), maincreditcurve(), riskyDiscountFactor(), and swapFees().

Real creditCurve::swapFees Real  maturity  )  const [virtual]
 

Definition at line 320 of file creditCurve.cpp.

References _swapFees, _underlying, creditSpread(), defaultProbability(), yieldCurve::discountFactor(), indexOfCurrentSpread(), Natural, Real, survivalProbability(), timeOfCurrentSpread(), and timeOfPreviousSpread().

Referenced by defaultProbability().

Real creditCurve::timeOfCurrentSpread Real  maturity  )  const [virtual]
 

Definition at line 249 of file creditCurve.cpp.

References _spreads, indexOfCurrentSpread(), and Real.

Referenced by defaultProbability(), survivalProbability(), and swapFees().

Real creditCurve::timeOfPreviousSpread Real  maturity  )  const [virtual]
 

Definition at line 285 of file creditCurve.cpp.

References _spreads, indexOfPreviousSpread(), and Real.

Referenced by defaultProbability(), survivalProbability(), and swapFees().


Friends And Related Function Documentation

ostream& operator<< ostream &  os,
const creditCurve c
[friend]
 

Definition at line 69 of file creditCurve.h.

ostream& operator<< ostream &  os,
const creditCurve c
[friend]
 

Definition at line 423 of file creditCurve.cpp.


Member Data Documentation

yieldCurve* creditCurve::_combined [protected]
 

Definition at line 245 of file creditCurve.h.

Referenced by copyObj(), creditCurve(), creditSpread(), discountFactor(), forwardRate(), getCombined(), getMaturitiesInTheZCBCurve(), getName(), operator<<(), resampleSpread(), spotRate(), and ~creditCurve().

Currency creditCurve::_currency [private]
 

Definition at line 264 of file creditCurve.h.

Referenced by copyObj(), and getCurrency().

valarray<cachedval> creditCurve::_defaultProbability [mutable, private]
 

Definition at line 260 of file creditCurve.h.

Referenced by assignFlatSpread(), copyObj(), defaultProbability(), getDefaultProbability(), and resampleSpread().

Frequency creditCurve::_frequency [private]
 

Definition at line 265 of file creditCurve.h.

Referenced by copyObj(), and getFrequency().

Real creditCurve::_recoveryRate [private]
 

Definition at line 263 of file creditCurve.h.

Referenced by copyObj(), defaultProbability(), and getRecoveryRate().

valarray<CreditSpreadPoint> creditCurve::_spreads [private]
 

Definition at line 256 of file creditCurve.h.

Referenced by assignFlatSpread(), copyObj(), getSpreads(), indexOfCurrentSpread(), indexOfPreviousSpread(), resampleSpread(), timeOfCurrentSpread(), and timeOfPreviousSpread().

valarray<cachedval> creditCurve::_survivalProbability [mutable, private]
 

Definition at line 259 of file creditCurve.h.

Referenced by assignFlatSpread(), copyObj(), getSurvivalProbability(), resampleSpread(), and survivalProbability().

valarray<cachedval> creditCurve::_swapFees [mutable, private]
 

Definition at line 261 of file creditCurve.h.

Referenced by assignFlatSpread(), copyObj(), getSwapFees(), resampleSpread(), and swapFees().

yieldCurve* creditCurve::_underlying [protected]
 

Definition at line 244 of file creditCurve.h.

Referenced by copyObj(), creditCurve(), creditSpread(), defaultProbability(), getUnderlying(), resampleSpread(), riskyDiscountFactor(), swapFees(), and ~creditCurve().


The documentation for this class was generated from the following files:
Note: Generated nightly - reload for latest version
Generated on Thu Dec 22 23:12:39 2005 for terreneuve by doxygen 1.3.6