IFinance.MDuration

Syntax

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

MDuration(Settlement: System.DateTime; Maturity: System.DateTime; CouponRate: double; YieldP: double; Frequency: integer; Basis: integer): 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. Annual interest rate for coupons on securities. Must be positive.

YieldP. The annual income on securities. 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:

Description

The Mduration method returns a modified Macaulay duration for securities with supposed face value of $100.

Comments

Mduration is calculated using the following formula:

.

To get Macaulay duration, use the IFinance.Duration method.

Example

To execute the example, add a link to the MathFin system assembly.

Sub UserProc;
Var
    r: Double;
Begin
    r := Finance.Mduration(DateTime.ComposeDay(2008,01,01), DateTime.ComposeDay
(2016,01,01), 0.280.8243);
    Debug.WriteLine(r);
End Sub UserProc;

Imports Prognoz.Platform.Interop.MathFin;

Public Shared Sub Main(Params: StartParams);
Var
    r: double;
    Finance: FinanceClass = New FinanceClass();
    DateTime1, DateTime2: System.DateTime;
Begin
    DateTime1 := New DateTime(2008,01,01);
    DateTime2 := New DateTime(2016,01,01);
    r := Finance.Mduration(DateTime1, DateTime2, 0.280.8243);
    System.Diagnostics.Debug.WriteLine(r);
End Sub;

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

See also:

IFinance