AssetSwap Class Reference

Bullet bond vs Libor swap. More...

#include <ql/instruments/assetswap.hpp>

Inheritance diagram for AssetSwap:

List of all members.

Classes

class  arguments
 Arguments for asset swap calculation More...
class  results
 Results from simple swap calculation More...

Public Member Functions

 AssetSwap (bool payBondCoupon, const boost::shared_ptr< Bond > &bond, Real bondCleanPrice, const boost::shared_ptr< IborIndex > &iborIndex, Spread spread, const Schedule &floatSchedule=Schedule(), const DayCounter &floatingDayCount=DayCounter(), bool parAssetSwap=true)
 AssetSwap (bool parAssetSwap, const boost::shared_ptr< Bond > &bond, Real bondCleanPrice, Real nonParRepayment, Real gearing, const boost::shared_ptr< IborIndex > &iborIndex, Spread spread=0.0, const DayCounter &floatingDayCount=DayCounter(), Date dealMaturity=Date(), bool payBondCoupon=false)
Spread fairSpread () const
Real floatingLegBPS () const
Real floatingLegNPV () const
Real fairCleanPrice () const
Real fairNonParRepayment () const
bool parSwap () const
Spread spread () const
Real cleanPrice () const
Real nonParRepayment () const
const boost::shared_ptr< Bond > & bond () const
bool payBondCoupon () const
const Leg & bondLeg () const
const Leg & floatingLeg () const
void setupArguments (PricingEngine::arguments *args) const
void fetchResults (const PricingEngine::results *) const

Detailed Description

Bullet bond vs Libor swap.

for mechanics of par asset swap and market asset swap, refer to "Introduction to Asset Swap", Lehman Brothers European Fixed Income Research - January 2000, D. O'Kane

Warning:
bondCleanPrice must be the (forward) price at the floatSchedule start date
Bug:
fair prices are not calculated correctly when using indexed coupons.

Member Function Documentation

void setupArguments ( PricingEngine::arguments *  ) const [virtual]

When a derived argument structure is defined for an instrument, this method should be overridden to fill it. This is mandatory in case a pricing engine is used.

Reimplemented from Swap.

void fetchResults ( const PricingEngine::results *  r) const [virtual]

When a derived result structure is defined for an instrument, this method should be overridden to read from it. This is mandatory in case a pricing engine is used.

Reimplemented from Swap.