Options
All
  • Public
  • Public/Protected
  • All
Menu

Coupon paying the performance of a CPI (zero inflation) index

The performance is relative to the index value on the base date.

The other inflation value is taken from the refPeriodEnd date with observation lag, so any roll/calendar etc. will be built in by the caller. By default this is done in the InflationCoupon which uses ModifiedPreceding with fixing days assumed positive meaning earlier, i.e. always stay in same month (relative to referencePeriodEnd).

This is more sophisticated than an %IndexedCashFlow because it does date calculations itself.

todo we do not do any convexity adjustment for lags different to the natural ZCIIS lag that was used to create the forward inflation curve.

Hierarchy

Implements

Index

Properties

_accrualEndDate

_accrualEndDate: Date

_accrualPeriod

_accrualPeriod: Real

_accrualStartDate

_accrualStartDate: Date

Protected _baseCPI

_baseCPI: Real

Protected _dayCounter

_dayCounter: DayCounter

_exCouponDate

_exCouponDate: Date

Protected _fixedRate

_fixedRate: Real

Protected _fixingDays

_fixingDays: Natural

Protected _index

_isDisposed

_isDisposed: boolean = false

_nominal

_nominal: Real

_observables

_observables: Set<Observable> = new Set()

Protected _observationInterpolation

_observationInterpolation: InterpolationType

Protected _observationLag

_observationLag: Period

_observers

_observers: Set<Observer> = new Set()

_paymentDate

_paymentDate: Date

Protected _pricer

_refPeriodEnd

_refPeriodEnd: Date

_refPeriodStart

_refPeriodStart: Date

Protected _spread

_spread: Spread

accrualDays

accrualDays: () => Integer

Type declaration

accrualEndDate

accrualEndDate: () => Date

Type declaration

    • (): Date
    • Returns Date

accrualPeriod

accrualPeriod: () => Time

Type declaration

accrualStartDate

accrualStartDate: () => Date

Type declaration

    • (): Date
    • Returns Date

accruedDays

accruedDays: (d: Date) => Integer

Type declaration

accruedPeriod

accruedPeriod: (d: Date) => Time

Type declaration

    • Parameters

      • d: Date

      Returns Time

date

date: () => Date

Type declaration

    • (): Date
    • Returns Date

deepUpdate

deepUpdate: () => void

Type declaration

    • (): void
    • Returns void

dispose

dispose: () => void

Type declaration

    • (): void
    • Returns void

exCouponDate

exCouponDate: () => Date

Type declaration

    • (): Date
    • Returns Date

hasOccurred

hasOccurred: (refDate: Date, includeRefDate: boolean) => boolean

Type declaration

    • (refDate: Date, includeRefDate: boolean): boolean
    • Parameters

      • refDate: Date
      • includeRefDate: boolean

      Returns boolean

init

init: (paymentDate: Date, nominal: Real, accrualStartDate: Date, accrualEndDate: Date, refPeriodStart?: Date, refPeriodEnd?: Date, exCouponDate?: Date) => Coupon

Type declaration

    • (paymentDate: Date, nominal: Real, accrualStartDate: Date, accrualEndDate: Date, refPeriodStart?: Date, refPeriodEnd?: Date, exCouponDate?: Date): Coupon
    • Parameters

      • paymentDate: Date
      • nominal: Real
      • accrualStartDate: Date
      • accrualEndDate: Date
      • Optional refPeriodStart: Date
      • Optional refPeriodEnd: Date
      • Optional exCouponDate: Date

      Returns Coupon

isDisposed

isDisposed: boolean

nominal

nominal: () => Real

Type declaration

notifyObservers

notifyObservers: () => void

Type declaration

    • (): void
    • Returns void

referencePeriodEnd

referencePeriodEnd: () => Date

Type declaration

    • (): Date
    • Returns Date

referencePeriodStart

referencePeriodStart: () => Date

Type declaration

    • (): Date
    • Returns Date

registerObserver

registerObserver: (o: Observer) => void

Type declaration

registerWith

registerWith: (h: Observable) => void

Type declaration

registerWithObservables

registerWithObservables: (o: Observer) => void

Type declaration

tradingExCoupon

tradingExCoupon: () => boolean

Type declaration

    • (): boolean
    • Returns boolean

unregisterObserver

unregisterObserver: (o: Observer) => void

Type declaration

unregisterWith

unregisterWith: (h: Observable) => Size

Type declaration

unregisterWithAll

unregisterWithAll: () => void

Type declaration

    • (): void
    • Returns void

Methods

accept

accruedAmount

  • accruedAmount(d: Date): Real

adjustedFixing

  • adjustedFixing(): Rate
  • Returns Rate

amount1

baseCPI

  • Returns Rate

Protected checkPricerImpl

cpiIndex

cpicInit

  • Parameters

    • baseCPI: Real
    • paymentDate: Date
    • nominal: Real
    • startDate: Date
    • endDate: Date
    • fixingDays: Natural
    • zeroIndex: ZeroInflationIndex
    • observationLag: Period
    • observationInterpolation: InterpolationType
    • dayCounter: DayCounter
    • fixedRate: Real
    • Default value spread: Spread = 0
    • Default value refPeriodStart: Date = null
    • Default value refPeriodEnd: Date = null
    • Default value exCouponDate: Date = null

    Returns CPICoupon

dayCounter

fixedRate

  • Returns Real

fixingDate

  • fixingDate(): Date

fixingDays

icInit

  • Parameters

    • paymentDate: Date
    • nominal: Real
    • startDate: Date
    • endDate: Date
    • fixingDays: Natural
    • index: InflationIndex
    • observationLag: Period
    • dayCounter: DayCounter
    • Default value refPeriodStart: Date = null
    • Default value refPeriodEnd: Date = null
    • Default value exCouponDate: Date = null

    Returns InflationCoupon

index

indexFixing

  • indexFixing(): Rate

indexFixing1

  • indexFixing1(): Rate
  • Returns Rate

Protected indexFixing2

  • indexFixing2(d: Date): Rate
  • Parameters

    • d: Date

    Returns Rate

indexObservation

  • indexObservation(onDate: Date): Rate
  • Parameters

    • onDate: Date

    Returns Rate

observationInterpolation

observationLag

price

pricer

rate

setPricer

spread

  • Returns Spread

update

  • update(): void