Table of Contents

Class BlackIborQuantoCouponPricer

Namespace
NanoQL.Experimental
Assembly
NanoQL.dll

A Black Ibor coupon pricer whose fixing is quanto-adjusted for an index paid in another currency: QuantLib's BlackIborQuantoCouponPricer.

[Experimental("NQL0001")]
public sealed class BlackIborQuantoCouponPricer : BlackIborCouponPricer
Inheritance
BlackIborQuantoCouponPricer
Inherited Members

Remarks

The fixing is adjusted first, then by the base pricer's timing adjustment: for a fixing after the optionlet volatility's reference date, with σ the optionlet volatility and σ_FX the exchange rate's Black volatility at the fixing date and the fixing, ρ their correlation and t the fixing time, the shifted fixing times e^(σσ_FXρt) on a shifted lognormal volatility, and the fixing plus σσ_FXρt on a normal one (Hull, 6th edition, p. 642, as QuantLib's). QuantLib's correlation quote is a double.

Constructors

BlackIborQuantoCouponPricer(BlackVolTermStructure, double, OptionletVolatilityStructure, EvaluationContext)

Initializes a new instance of the BlackIborQuantoCouponPricer class.

public BlackIborQuantoCouponPricer(BlackVolTermStructure fxRateBlackVolatility, double underlyingFxCorrelation, OptionletVolatilityStructure capletVolatility, EvaluationContext context)

Parameters

fxRateBlackVolatility BlackVolTermStructure

The exchange rate's Black volatility.

underlyingFxCorrelation double

The correlation of the index with the exchange rate.

capletVolatility OptionletVolatilityStructure

The optionlet volatility.

context EvaluationContext

The evaluation context, whose at-par switch the pricer takes, as QuantLib's takes the global one.

Exceptions

ArgumentNullException

An argument is null.

Methods

AdjustedFixing(IborCoupon, EvaluationContext, double?)

The fixing with the timing adjustment applied: unchanged for a coupon in advance under Black76, for a coupon paid at the index's maturity, and before the volatility's reference date; otherwise adjusted for the variance accumulated to the fixing date.

protected override double AdjustedFixing(IborCoupon coupon, EvaluationContext context, double? fixing = null)

Parameters

coupon IborCoupon

The coupon.

context EvaluationContext

The evaluation context.

fixing double?

The fixing to adjust; the coupon's index fixing, with the pricer's at-par choice, when null.

Returns

double

The adjusted fixing.

Remarks

The quanto adjustment first, then the base pricer's.

Exceptions

NanoQLException

The adjustment needs a volatility or a forecasting curve that isn't given.