Class ConvertibleBond
- Namespace
- NanoQL.Instruments
- Assembly
- NanoQL.dll
The convertible bond base class: a bond its holder may convert into shares at the conversion ratio, under an exercise, with a schedule of calls, soft calls and puts.
public abstract class ConvertibleBond : Bond
- Inheritance
-
ConvertibleBond
- Derived
- Inherited Members
Remarks
Its engine (BinomialConvertibleEngine) reads what QuantLib's setupArguments
computes for the settlement date of the context it prices under: the callabilities not yet occurred there, their
clean prices made dirty with the bond's accrued amount at the call date, and each one's trigger, a soft call's own
or none. A plain bond's engine (DiscountingBondEngine) refuses a convertible bond, as
QuantLib's refuses it when it sets up its arguments, with "wrong argument type".
Most members inherited from Bond, such as the yield and the yield-based prices, refer to the underlying plain-vanilla bond and don't take convertibility and callability into account, as QuantLib warns of its own.
Unsealed, an extension point, as QuantLib's base is: the zero-coupon, fixed-coupon and floating-rate convertibles derive from it. Its protected constructor follows Bond's construction contract: a derived constructor writes the cash flows and builds the redemption, QuantLib's notional of 100.
Constructors
ConvertibleBond(Exercise, double, IEnumerable<Callability>, Date?, int, Schedule, double)
Initializes a new instance of the ConvertibleBond class, with no cash flows yet.
protected ConvertibleBond(Exercise exercise, double conversionRatio, IEnumerable<Callability> callability, Date? issueDate, int settlementDays, Schedule schedule, double redemption)
Parameters
exerciseExerciseThe conversion's exercise.
conversionRatiodoubleThe number of shares one bond converts into.
callabilityIEnumerable<Callability>The calls, soft calls and puts, copied, the last one the latest.
issueDateDate?The issue date, or null for none.
settlementDaysintThe settlement days.
scheduleScheduleThe schedule, whose calendar is the bond's and whose end date its maturity.
redemptiondoubleThe redemption, per 100 of notional.
Remarks
QuantLib checks the last callability's date only, not the latest's, as here. Its exercise and its conversion ratio are checked when the bond is priced, as QuantLib's are, but the exercise's null, which is refused here.
Exceptions
- ArgumentNullException
The exercise, the callabilities or the schedule is null.
- ArgumentOutOfRangeException
settlementDaysis negative.- ArgumentException
The issue date is
default(Date); a callability is null; or the last callability is after the maturity date.- NanoQLException
The schedule is empty.
Properties
Callability
Gets the calls, soft calls and puts.
public ImmutableArray<Callability> Callability { get; }
Property Value
ConversionRatio
Gets the number of shares one bond converts into.
public double ConversionRatio { get; }