Table of Contents

Class AverageBMALeg

Namespace
NanoQL.Coupons
Assembly
NanoQL.dll

A builder of a sequence of average-BMA coupons.

public sealed record AverageBMALeg : IEquatable<AverageBMALeg>
Inheritance
AverageBMALeg
Implements
Inherited Members

Remarks

An immutable builder: each method returns a modified copy, so a builder kept and reused never changes under its holder. ToLeg() builds the leg, in place of QuantLib's conversion operator; it reads no context. A builder has no value equality: its vectors compare by reference. A notional, gearing or spread vector shorter than the schedule repeats its last element.

Constructors

AverageBMALeg(Schedule, BMAIndex)

Initializes a new instance of the AverageBMALeg class.

public AverageBMALeg(Schedule schedule, BMAIndex index)

Parameters

schedule Schedule

The schedule of accrual dates.

index BMAIndex

The BMA index.

Exceptions

ArgumentNullException

An argument is null.

Methods

Equals(AverageBMALeg?)

public bool Equals(AverageBMALeg? other)

Parameters

other AverageBMALeg

Returns

bool

Equals(object?)

public override bool Equals(object? obj)

Parameters

obj object

Returns

bool

GetHashCode()

public override int GetHashCode()

Returns

int

ToLeg()

Builds the leg.

public ImmutableArray<CashFlow> ToLeg()

Returns

ImmutableArray<CashFlow>

The leg, one coupon per schedule period.

Exceptions

ArgumentException

A gearing is zero.

NanoQLException

No notionals were given; the schedule is empty; or a date is computed on QuantLib's empty calendar where it can't give one.

ToString()

public override string ToString()

Returns

string

WithGearings(IEnumerable<double>)

Sets the coupons' gearings; the last one repeats for any further coupons.

public AverageBMALeg WithGearings(IEnumerable<double> gearings)

Parameters

gearings IEnumerable<double>

The gearings.

Returns

AverageBMALeg

The modified builder.

WithGearings(double)

Sets one gearing for every coupon; 1 by default.

public AverageBMALeg WithGearings(double gearing)

Parameters

gearing double

The gearing.

Returns

AverageBMALeg

The modified builder.

WithNotionals(IEnumerable<double>)

Sets the coupons' notionals; the last one repeats for any further coupons.

public AverageBMALeg WithNotionals(IEnumerable<double> notionals)

Parameters

notionals IEnumerable<double>

The notionals.

Returns

AverageBMALeg

The modified builder.

WithNotionals(double)

Sets one notional for every coupon.

public AverageBMALeg WithNotionals(double notional)

Parameters

notional double

The notional.

Returns

AverageBMALeg

The modified builder.

WithPaymentAdjustment(BusinessDayConvention)

Sets the business-day convention of the payment dates; following by default.

public AverageBMALeg WithPaymentAdjustment(BusinessDayConvention convention)

Parameters

convention BusinessDayConvention

The convention.

Returns

AverageBMALeg

The modified builder.

Exceptions

ArgumentOutOfRangeException

The convention isn't a member of the enum.

WithPaymentDayCounter(DayCounter?)

Sets the accrual day counter; the index's by default.

public AverageBMALeg WithPaymentDayCounter(DayCounter? dayCounter)

Parameters

dayCounter DayCounter

The day counter; the index's when null, QuantLib's empty day counter.

Returns

AverageBMALeg

The modified builder.

WithSpreads(IEnumerable<double>)

Sets the coupons' spreads; the last one repeats for any further coupons.

public AverageBMALeg WithSpreads(IEnumerable<double> spreads)

Parameters

spreads IEnumerable<double>

The spreads.

Returns

AverageBMALeg

The modified builder.

WithSpreads(double)

Sets one spread for every coupon; 0 by default.

public AverageBMALeg WithSpreads(double spread)

Parameters

spread double

The spread.

Returns

AverageBMALeg

The modified builder.

Operators

operator ==(AverageBMALeg?, AverageBMALeg?)

public static bool operator ==(AverageBMALeg? left, AverageBMALeg? right)

Parameters

left AverageBMALeg
right AverageBMALeg

Returns

bool

operator !=(AverageBMALeg?, AverageBMALeg?)

public static bool operator !=(AverageBMALeg? left, AverageBMALeg? right)

Parameters

left AverageBMALeg
right AverageBMALeg

Returns

bool