Logo
Reference manual - version qle_version
Public Member Functions | List of all members
BlackIndexCdsOptionEngine Class Reference

#include <qle/pricingengines/blackindexcdsoptionengine.hpp>

+ Inheritance diagram for BlackIndexCdsOptionEngine:

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.
 
 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.
 
 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::CreditVolCurvevolatility () const
 
void calculate () const override
 

Additional Inherited Members

- Protected Member Functions inherited from IndexCdsOptionBaseEngine
void registerWithMarket ()
 Register with market data.
 
QuantLib::Real fep () const
 Calculate the discounted value of the front end protection.
 
- Protected Attributes inherited from IndexCdsOptionBaseEngine
std::vector< QuantLib::Handle< QuantLib::DefaultProbabilityTermStructure > > probabilities_
 Store inputs.
 
std::vector< QuantLib::Real > recoveries_
 
QuantLib::Handle< QuantLib::YieldTermStructure > discountSwapCurrency_
 
QuantLib::Handle< QuantLib::YieldTermStructure > discountTradeCollateral_
 
QuantLib::Handle< QuantExt::CreditVolCurvevolatility_
 
QuantLib::Real indexRecovery_
 Assumed index recovery used in the flat strike spread curve calculation if provided.
 
std::vector< QuantLib::Real > notionals_
 Store the underlying index CDS notional(s) during calculation.
 

Detailed Description

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.

Member Function Documentation

◆ IndexCdsOptionBaseEngine()

Constructor taking a vector of default probability term structures bootstrapped from the index constituent spread curves and a vector of associated recovery rates.