Wolfram Computation Meets Knowledge

Modified Duration of Bonds

Modified duration is the name given to the price sensitivity, and is the percentage change in price for a unit change in yield.

Modified duration depends on a nonlinear combination of coupon frequency, the number of whole coupon periods, the fraction of year until next coupon, annual yield and the annual coupon rate.

Formula

(QuantityVariable["f", "Unitless"] + QuantityVariable["y", "Unitless"])*QuantityVariable[Subscript["D", "m"], "Unitless"] == (-QuantityVariable["y", "Unitless"]^2 + QuantityVariable["n", "Unitless"]*QuantityVariable["y", "Unitless"]*(QuantityVariable["y", "Unitless"] - QuantityVariable[Subscript["r", "c"], "Unitless"]) - QuantityVariable["f", "Unitless"]*QuantityVariable[Subscript["r", "c"], "Unitless"] + QuantityVariable["f", "Unitless"]*((QuantityVariable["f", "Unitless"] + QuantityVariable["y", "Unitless"])/QuantityVariable["f", "Unitless"])^QuantityVariable["n", "Unitless"]*QuantityVariable[Subscript["r", "c"], "Unitless"] + QuantityVariable["y", "Unitless"]*QuantityVariable["α", "Unitless"]*(QuantityVariable["y", "Unitless"] + (-1 + ((QuantityVariable["f", "Unitless"] + QuantityVariable["y", "Unitless"])/QuantityVariable["f", "Unitless"])^QuantityVariable["n", "Unitless"])*QuantityVariable[Subscript["r", "c"], "Unitless"]))/(QuantityVariable["y", "Unitless"]*(QuantityVariable["y", "Unitless"] + (-1 + ((QuantityVariable["f", "Unitless"] + QuantityVariable["y", "Unitless"])/QuantityVariable["f", "Unitless"])^QuantityVariable["n", "Unitless"])*QuantityVariable[Subscript["r", "c"], "Unitless"]))

symbol description physical quantity
f coupon frequency "Unitless"
y annual yield "Unitless"
Dm modified duration "Unitless"
n number of whole coupon periods "Unitless"
rc annual coupon rate "Unitless"
α fraction of year until next coupon "Unitless"

Forms

Examples

Get the resource:

In[1]:=
ResourceObject["Modified Duration of Bonds"]
Out[1]=

Get the formula:

In[2]:=
FormulaData[ResourceObject["Modified Duration of Bonds"]]
Out[2]=

Use some values:

In[3]:=
FormulaData[
 ResourceObject[
  "Modified Duration of Bonds"], {QuantityVariable["f","Unitless"] -> 
   6, QuantityVariable["\[Alpha]","Unitless"] -> 0.5`, 
  QuantityVariable[
\!\(\*SubscriptBox[\("r"\), \("c"\)]\),"Unitless"] -> 
   Quantity[7, "Percent"], 
  QuantityVariable["y","Unitless"] -> Quantity[5, "Percent"]}]
Out[3]=

Publisher Information