IFinance.Duration

Syntax

Duration(Settlement: DateTime; Maturity: DateTime; CouponRate: Double; YieldP: Double; Frequency: Integer; [Basis: Integer = 0]): Double;

Parameters

Settlement. The payment day on securities. Must be less than Maturity

Maturity. The security's maturity date. Must be greater than Settlement

CouponRate. The security's price per $100 face value. Must be positive

YieldP. The security's redemption price per $100 face value. Must be positive

Frequency. The annual number of coupon payments. The parameter can take the following values:

Basis. The day calculation method used. Select a value from 0 to 4:

Optional parameter.

Description

The Duration method returns Macaulay duration for supposed face value of $100.

Comments

The duration is determined as a weighted mean of present value of cash flows and is used as a measure of reaction of bond prices to change in yield.

The agreement date is the date of selling a coupon, for example, a bond, to the buyer. The payment date is the coupon expiry date. For example, a bond with duration of 30 years was issued on Jan 1 2008 and was acquired by a buyer in 6 months after the issue date. The issue date is Jan 1 2008, the settlement date - July 1 2008, and the maturity date is Jan 1 2038, that is 30 years after the issue date.

Example

Add a link to the MathFin system assembly.

Sub UserProc;
Var
    r: Double;
Begin
    r := Finance.Duration(DateTime.ComposeDay(20080101), DateTime.ComposeDay(20080601), 0.280.8243);
    Debug.WriteLine(r);
End Sub UserProc;

After executing the example the console window displays the Macaulay duration equal to 0.3968006367813.

See also:

IFinance