Wolfram Computation Meets Knowledge

Macaulay Duration of Bonds

Modified duration is the name given to the weighted average time until cash flows are received, and is measured in years.

The Macaulay 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["D", "Unitless"]*QuantityVariable["f", "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
D duration "Unitless"
f coupon frequency "Unitless"
y annual yield "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["Macaulay Duration of Bonds"]
Out[1]=

Get the formula:

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

Use some values:

In[3]:=
FormulaData[
 ResourceObject[
  "Macaulay Duration of Bonds"], {QuantityVariable["y","Unitless"] -> 
   Quantity[5, "Percent"]}]
Out[3]=

Source Metadata

Publisher Information