### A free/open-source library for quantitative finance

Classes | Public Member Functions
Swaption Class Reference
Financial instruments

Swaption class More...

`#include <ql/instruments/swaption.hpp>`

Inheritance diagram for Swaption:
[legend]

List of all members.

## 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) 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

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

Possible enhancements:
  add greeks and explicit exercise lag

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