QuantLib
A free/open-source library for quantitative finance
Reference manual - version 1.6
Classes | Public Member Functions | List of all members
Swaption Class Reference

Swaption class More...

#include <ql/instruments/swaption.hpp>

+ Inheritance diagram for Swaption:

Classes

class  arguments
 Arguments for swaption calculation More...
 
class  engine
 base class for swaption engines More...
 

Public Member Functions

 Swaption (const boost::shared_ptr< VanillaSwap > &swap, const boost::shared_ptr< Exercise > &exercise, Settlement::Type delivery=Settlement::Physical)
 
Volatility impliedVolatility (Real price, const Handle< YieldTermStructure > &discountCurve, Volatility guess, Real accuracy=1.0e-4, Natural maxEvaluations=100, Volatility minVol=1.0e-7, Volatility maxVol=4.0, Real displacement=0.0) const
 implied volatility
 
Instrument interface
bool isExpired () const
 returns whether the instrument might have value greater than zero.
 
void setupArguments (PricingEngine::arguments *) const
 
Inspectors
Settlement::Type settlementType () const
 
VanillaSwap::Type type () const
 
const boost::shared_ptr< VanillaSwap > & underlyingSwap () const
 
- Public Member Functions inherited from Option
 Option (const boost::shared_ptr< Payoff > &payoff, const boost::shared_ptr< Exercise > &exercise)
 
void setupArguments (PricingEngine::arguments *) const
 
boost::shared_ptr< Payoff > payoff ()
 
boost::shared_ptr< Exercise > exercise ()
 
- Public Member Functions inherited from Instrument
virtual void fetchResults (const PricingEngine::results *) const
 
Real NPV () const
 returns the net present value of the instrument.
 
Real errorEstimate () const
 returns the error estimate on the NPV when available.
 
const Date & valuationDate () const
 returns the date the net present value refers to.
 
template<typename T >
T result (const std::string &tag) const
 returns any additional result returned by the pricing engine.
 
const std::map< std::string, boost::any > & additionalResults () const
 returns all additional result returned by the pricing engine.
 
void setPricingEngine (const boost::shared_ptr< PricingEngine > &)
 set the pricing engine to be used. More...
 
- Public Member Functions inherited from LazyObject
void update ()
 
void recalculate ()
 
void freeze ()
 
void unfreeze ()
 
- Public Member Functions inherited from Observable
 Observable (const Observable &)
 
Observable & operator= (const Observable &)
 
void notifyObservers ()
 
- Public Member Functions inherited from Observer
 Observer (const Observer &)
 
Observer & operator= (const Observer &)
 
std::pair< std::set< boost::shared_ptr< Observable > >::iterator, bool > registerWith (const boost::shared_ptr< Observable > &)
 
void registerWithObservables (const boost::shared_ptr< Observer > &)
 
Size unregisterWith (const boost::shared_ptr< Observable > &)
 
void unregisterWithAll ()
 

Additional Inherited Members

- Public Types inherited from Option
enum  Type { Put = -1, Call = 1 }
 
- Protected Member Functions inherited from Instrument
void calculate () const
 
virtual void setupExpired () const
 
virtual void performCalculations () const
 
- Protected Member Functions inherited from LazyObject
- Protected Attributes inherited from Option
boost::shared_ptr< Payoff > payoff_
 
boost::shared_ptr< Exercise > exercise_
 
- Protected Attributes inherited from Instrument
boost::shared_ptr< PricingEngine > engine_
 
Real NPV_
 
Real errorEstimate_
 
Date valuationDate_
 
std::map< std::string, boost::any > additionalResults_
 
- Protected Attributes inherited from LazyObject
bool calculated_
 
bool frozen_
 

Detailed Description

Swaption class

Tests:
  • the correctness of the returned value is tested by checking that the price of a payer (resp. receiver) swaption decreases (resp. increases) with the strike.
  • the correctness of the returned value is tested by checking that the price of a payer (resp. receiver) swaption increases (resp. decreases) with the spread.
  • the correctness of the returned value is tested by checking it against that of a swaption on a swap with no spread and a correspondingly adjusted fixed rate.
  • the correctness of the returned value is tested by checking it against a known good value.
  • the correctness of the returned value of cash settled swaptions is tested by checking the modified annuity against a value calculated without using the Swaption class.
Examples:
BermudanSwaption.cpp.

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 Instrument.