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
fxRateBlackVolatilityBlackVolTermStructureThe exchange rate's Black volatility.
underlyingFxCorrelationdoubleThe correlation of the index with the exchange rate.
capletVolatilityOptionletVolatilityStructureThe optionlet volatility.
contextEvaluationContextThe 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
couponIborCouponThe coupon.
contextEvaluationContextThe evaluation context.
fixingdouble?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.