Example: Modified Macauley Duration of a Security with Periodic Payments
The modified Macauley duration of a 10 year bond which pays interest semiannually is returned in this example.
using System;
using Imsl.Finance;
public class mdurationEx1
{
public static void Main(String[] args)
{
DateTime settlement = DateTime.Parse("7/1/85");
DateTime maturity = DateTime.Parse("7/1/95");
double coupon = .075;
double yield = .09;
Bond.Frequency freq = Bond.Frequency.SemiAnnual;
DayCountBasis dcb = DayCountBasis.BasisActual365;
double mduration = Bond.Mduration(settlement, maturity, coupon,
yield, freq, dcb);
Console.Out.WriteLine("The modified Macauley duration " +
"of the bond");
Console.Out.WriteLine("with semiannual interest payments is "
+ mduration);
}
}
Output
The modified Macauley duration of the bond
with semiannual interest payments is 6.73871136648053
Link to C# source.