#include <qle/pricingengines/blackindexcdsoptionengine.hpp>
Public Member Functions | |
IndexCdsOptionBaseEngine (const QuantLib::Handle< QuantLib::DefaultProbabilityTermStructure > &probability, QuantLib::Real recovery, const Handle< YieldTermStructure > &discountSwapCurrency, const Handle< YieldTermStructure > &discountTradeCollateral, const QuantLib::Handle< QuantExt::CreditVolCurve > &volatility) | |
Constructor taking a default probability term structure bootstrapped from the index spreads. More... | |
IndexCdsOptionBaseEngine (const std::vector< QuantLib::Handle< QuantLib::DefaultProbabilityTermStructure > > &probabilities, const std::vector< QuantLib::Real > &recoveries, const Handle< YieldTermStructure > &discountSwapCurrency, const Handle< YieldTermStructure > &discountTradeCollateral, const QuantLib::Handle< QuantExt::CreditVolCurve > &volatility, QuantLib::Real indexRecovery=QuantLib::Null< QuantLib::Real >()) | |
Public Member Functions inherited from IndexCdsOptionBaseEngine | |
IndexCdsOptionBaseEngine (const QuantLib::Handle< QuantLib::DefaultProbabilityTermStructure > &probability, QuantLib::Real recovery, const Handle< YieldTermStructure > &discountSwapCurrency, const Handle< YieldTermStructure > &discountTradeCollateral, const QuantLib::Handle< QuantExt::CreditVolCurve > &volatility) | |
Constructor taking a default probability term structure bootstrapped from the index spreads. More... | |
IndexCdsOptionBaseEngine (const std::vector< QuantLib::Handle< QuantLib::DefaultProbabilityTermStructure > > &probabilities, const std::vector< QuantLib::Real > &recoveries, const Handle< YieldTermStructure > &discountSwapCurrency, const Handle< YieldTermStructure > &discountTradeCollateral, const QuantLib::Handle< QuantExt::CreditVolCurve > &volatility, QuantLib::Real indexRecovery=QuantLib::Null< QuantLib::Real >()) | |
const std::vector< QuantLib::Handle< QuantLib::DefaultProbabilityTermStructure > > & | probabilities () const |
const std::vector< QuantLib::Real > & | recoveries () const |
const QuantLib::Handle< QuantLib::YieldTermStructure > | discountSwapCurrency () const |
const QuantLib::Handle< QuantLib::YieldTermStructure > | discountTradeCollateral () const |
const QuantLib::Handle< QuantExt::CreditVolCurve > | volatility () const |
void | calculate () const override |
Private Member Functions | |
void | doCalc () const override |
Engine specific calculation. More... | |
void | spreadStrikeCalculate (QuantLib::Real fep) const |
void | priceStrikeCalculate (QuantLib::Real fep) const |
QuantLib::Real | forwardRiskyAnnuityStrike () const |
Additional Inherited Members | |
Protected Member Functions inherited from IndexCdsOptionBaseEngine | |
void | registerWithMarket () |
Register with market data. More... | |
QuantLib::Real | fep () const |
Calculate the discounted value of the front end protection. More... | |
Protected Attributes inherited from IndexCdsOptionBaseEngine | |
std::vector< QuantLib::Handle< QuantLib::DefaultProbabilityTermStructure > > | probabilities_ |
Store inputs. More... | |
std::vector< QuantLib::Real > | recoveries_ |
QuantLib::Handle< QuantLib::YieldTermStructure > | discountSwapCurrency_ |
QuantLib::Handle< QuantLib::YieldTermStructure > | discountTradeCollateral_ |
QuantLib::Handle< QuantExt::CreditVolCurve > | volatility_ |
QuantLib::Real | indexRecovery_ |
Assumed index recovery used in the flat strike spread curve calculation if provided. More... | |
std::vector< QuantLib::Real > | notionals_ |
Store the underlying index CDS notional(s) during calculation. More... | |
Black index CDS option engine
Prices index CDS option instruments quoted in terms of strike spread or strike price. If the strike is in terms of spread, it is assumed that the volatility structure's strike dimension, if there is one, is in terms of spread also. This is the standard quotation convention for investment grade index families like CDX IG and ITraxx Europe. If the strike is in terms of price, it is assumed that the volatility structure's strike dimension, if there is one, is in terms of price also. This is the standard quotation convention for high yield index families like CDX HY and CDX EM.
The valuation of the index CDS options with strike price is a reasonably straightforward application of Black's formula. The approach is outlined for example in Mark-to-market Credit Index Option Pricing and Credit Volatility Index, John Yang and Lukasz Dobrek, 23 June 2015, Section 1.1. Here, we calculate the front end protection (FEP) adjusted forward price as opposed to deriving it from the market quotes of payer and receiver CDS options with the same strike.
The valuation of the index CDS options with strike spread follows the approach outlined in Modelling Single-name and Multi-name Credit Derivatives, Dominic O'Kane, 2008, Section 11.7. This is also the approach outlined in Credit Index Option, ICE, 2018.
Definition at line 48 of file blackindexcdsoptionengine.hpp.
|
overrideprivatevirtual |
Engine specific calculation.
Implements IndexCdsOptionBaseEngine.
Definition at line 38 of file blackindexcdsoptionengine.cpp.
|
private |
Definition at line 46 of file blackindexcdsoptionengine.cpp.
|
private |
Definition at line 113 of file blackindexcdsoptionengine.cpp.
|
private |
Definition at line 172 of file blackindexcdsoptionengine.cpp.
IndexCdsOptionBaseEngine | ( | const QuantLib::Handle< QuantLib::DefaultProbabilityTermStructure > & | probability, |
QuantLib::Real | recovery, | ||
const Handle< YieldTermStructure > & | discountSwapCurrency, | ||
const Handle< YieldTermStructure > & | discountTradeCollateral, | ||
const QuantLib::Handle< QuantExt::CreditVolCurve > & | volatility | ||
) |
Constructor taking a default probability term structure bootstrapped from the index spreads.
IndexCdsOptionBaseEngine | ( | const std::vector< QuantLib::Handle< QuantLib::DefaultProbabilityTermStructure > > & | probabilities, |
const std::vector< QuantLib::Real > & | recoveries, | ||
const Handle< YieldTermStructure > & | discountSwapCurrency, | ||
const Handle< YieldTermStructure > & | discountTradeCollateral, | ||
const QuantLib::Handle< QuantExt::CreditVolCurve > & | volatility, | ||
QuantLib::Real | indexRecovery = QuantLib::Null<QuantLib::Real>() |
||
) |
Constructor taking a vector of default probability term structures bootstrapped from the index constituent spread curves and a vector of associated recovery rates.