Example: Duration of a Security with Periodic Payments
The annual duration of a 10 year bond which pays interest semiannually is returned in this example.
using System;
using Imsl.Finance;
public class durationEx1
{
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 duration = Bond.Duration(settlement, maturity, coupon,
yield, freq, dcb);
Console.Out.WriteLine("The annual duration of the bond with" +
"\nsemiannual interest payments is " +
duration);
}
}
Output
The annual duration of the bond with
semiannual interest payments is 7.04195337797215
Link to C# source.