Class AverageBMALeg
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
Exceptions
- ArgumentNullException
An argument is null.
Methods
Equals(AverageBMALeg?)
public bool Equals(AverageBMALeg? other)
Parameters
otherAverageBMALeg
Returns
Equals(object?)
public override bool Equals(object? obj)
Parameters
objobject
Returns
GetHashCode()
public override int GetHashCode()
Returns
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
WithGearings(IEnumerable<double>)
Sets the coupons' gearings; the last one repeats for any further coupons.
public AverageBMALeg WithGearings(IEnumerable<double> gearings)
Parameters
gearingsIEnumerable<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
gearingdoubleThe 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
notionalsIEnumerable<double>The notionals.
Returns
- AverageBMALeg
The modified builder.
WithNotionals(double)
Sets one notional for every coupon.
public AverageBMALeg WithNotionals(double notional)
Parameters
notionaldoubleThe 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
conventionBusinessDayConventionThe 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
dayCounterDayCounterThe 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
spreadsIEnumerable<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
spreaddoubleThe spread.
Returns
- AverageBMALeg
The modified builder.
Operators
operator ==(AverageBMALeg?, AverageBMALeg?)
public static bool operator ==(AverageBMALeg? left, AverageBMALeg? right)
Parameters
leftAverageBMALegrightAverageBMALeg
Returns
operator !=(AverageBMALeg?, AverageBMALeg?)
public static bool operator !=(AverageBMALeg? left, AverageBMALeg? right)
Parameters
leftAverageBMALegrightAverageBMALeg