SOLUTIONS

BUILTIN MATHEMATICA SYMBOL
FinancialBond
FinancialBond[params, ambientparams]
gives the value of a financial bond instrument.
FinancialBond[params, ambientparams, prop]
computes the specified property prop.
Details and OptionsDetails 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, {prop_{1}, prop_{2}, ...}] 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 .
 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 timedependent payment function.
 Possible interest specifications include:

r single yield rate {r_{1},r_{2},...} schedule of spot rates applied over unit time intervals {{t_{1},r_{1}},{t_{2},r_{2}},...} schedule of rates changing at the specified time {p_{1}>r_{1},p_{2}>r_{2},...} term structure of interest rates function force of interest, given as a function of time  The following settings can be given for :

"30/360" U.S. 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) "Actual/365L" actual/365L "ActualAFB" actual/actual AFB/FBF master agreement Automatic precise 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 "Convexity" convexity "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 , , .... With a setting , 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 $Assumptions assumptions made about parameters GenerateConditions False whether to generate conditions on parameters
ExamplesExamplesopen allclose all
Basic Examples (6)Basic Examples (6)
Issue price of a 30year annual coupon bond of $1000 with a 6% yield:
In[1]:= 
Out[1]= 
Price of a 10year semiannual coupon bond with a 5% yield 9 months after the issue date:
In[1]:= 
Out[1]= 
Price of a 4% quarterly coupon bond maturing December 31, 2030 and settling September 5, 2013:
In[1]:= 
Out[1]= 
Accrued interest for a semiannual bond maturing on December 31, 2030 and settling on November 12, 2010, using the day count convention:
In[1]:= 
Out[1]= 
Implied coupon rate of a semiannual bond priced at $980 with a yield of 5%:
In[1]:= 
Out[1]= 
Implied yield to maturity for a quarterly coupon bond settling on January 6, 2018 and valued at $900:
In[1]:= 
Out[1]= 
New in 8
Mathematica 9 is now available!
New to Mathematica?
Find your learning path »
Have a question?
Ask support »