gives the value of a financial bond instrument.


computes the specified property prop.

Details and Options

  • FinancialBond represents a class of financial instruments involving a series of coupon payments together with a principal payment made at maturity.
  • FinancialBond works with numeric or arbitrary symbolic expressions.
  • FinancialBond[params,ambientparams,{prop1,prop2,}] computes multiple properties and returns the results as a list.
  • FinancialBond[params,ambientparams,"Rules"] computes all available properties.
  • All parameters in FinancialBond are given as a set of rules {param1,val1,param2,val2,}].
  • Possible parameters include:
  • "FaceValue"face value or par value
    "Coupon"coupon rate or payment function
    "Maturity"maturity or call/put date
    "CouponInterval"coupon payment interval
    "RedemptionValue"redemption value (if different from face value)
  • Possible ambient parameters include:
  • "InterestRate"yield to maturity or yield rate
    "Settlement"settlement date
    "DayCountBasis"day count convention
  • Settlement and maturity specifications can be entered as dates or abstract time units.
  • The coupon may be specified as a single rate or a time-dependent payment function.
  • Possible interest specifications include:
  • rsingle yield rate
    {r1,r2,}schedule of spot rates applied over unit time intervals
    {{t1,r1},{t2,r2},}schedule of rates changing at the specified time
    {p1->r1,p2->r2,}term structure of interest rates
    functionforce of interest, given as a function of time
  • The following settings can be given for "DayCountBasis":
  • "30/360"US bond basis
    "30E/360"Eurobond basis (ISDA 2006)
    "30E/360German"Eurobond basis (ISDA 2000, German)
    "30E+/360"30E+/360 day count convention
    "ActualICMA"actual/actual ICMA
    "ActualISDA"actual/actual ISDA
    "Actual/365"actual/365 (fixed)
    "Actual/360"actual/360 (French)
    "ActualAFB"actual/actual AFB/FBF master agreement
    Automaticprecise calendrical calculations
  • FinancialBond can compute the following properties:
  • "Value"price adjusted for accrued interest
    "FullValue"unadjusted price
    "AccruedInterest"accrued interest at settlement
    "Duration"Macaulay duration
    "ModifiedDuration"modified duration
    "CouponPeriodDays"days in coupon period containing the settlement
    "CouponToSettlementDays"days from previous coupon to settlement
    "SettlementToCouponDays"days from settlement to next coupon
    "NextCouponDate"next coupon date
    "PreviousCouponDate"previous coupon date
    "RemainingCoupons"remaining coupon payments
    "AccruedFactor"fraction of coupon payment representing the accrued interest
  • When abstract time units are used in a FinancialBond with maturity , the specified settlement time must lie within the range of the bond's existence ().
  • By convention, yield to maturity and coupon specifications are assumed to be nominal with a compounding interval equal to the coupon payment interval. By using the EffectiveInterest function or a functional interest rate specification, any desired compounding can be achieved.
  • When a coupon interval q is specified, coupon payments occur at times q, 2q, . Without a coupon interval, payments are assumed to occur at times 1, 2, . With a setting "CouponInterval"->0, the function specified by "Coupon"->f is taken to be continuous.
  • When dates are specified in FinancialBond, and when either the coupon or interest rate is specified as a function, or when the interest rate is specified as a list of rates or a term structure, the function assumes that time 0 occurs at the nearest point before the settlement date that represents an integral number of years from the maturity date.
  • Payment functions may be given as recurrence relations. RSolve can be used to convert recurrence relations into functions of time for use in FinancialBond.
  • When abstract time units are used in FinancialBond, calendrical properties are not applicable.
  • The following options can be given:
  • Assumptions$Assumptionsassumptions made about parameters
    GenerateConditionsFalsewhether to generate conditions on parameters


open all close all

Basic Examples  (6)

Issue price of a 30-year annual coupon bond of $1000 with a 6% yield:

Click for copyable input

Price of a 10-year semiannual coupon bond with a 5% yield 9 months after the issue date:

Click for copyable input

Price of a 4% quarterly coupon bond maturing December 31, 2030, and settling September 5, 2013:

Click for copyable input

Accrued interest for a semiannual bond maturing on December 31, 2030, and settling on November 12, 2010, using the "Actual/360" day count convention:

Click for copyable input

Implied coupon rate of a semiannual bond priced at $980 with a yield of 5%:

Click for copyable input

Implied yield to maturity for a quarterly coupon bond settling on January 6, 2018, and valued at $900:

Click for copyable input

Scope  (9)

Generalizations & Extensions  (5)

Applications  (7)

Properties & Relations  (2)

Possible Issues  (1)

Neat Examples  (2)

Introduced in 2010