IFinance.MDuration

Синтаксис

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;

Параметры

Settlement. Дата расчета за ценные бумаги. Должен быть меньше Maturity;

Maturity. Срок погашения ценных бумаг. Должен быть больше Settlement;

CouponRate. Годовая процентная ставка для купонов по ценным бумагам. Должен быть неотрицательным;

YieldP. Годовой доход по ценным бумагам. Должен быть неотрицательным;

Frequency. Количество купонных выплат в год. Параметр может принимать следующие значения:

Basis. Используемый способ вычисления дня. Задается в интервале от 0 до 4:

Необязательный параметр.

Описание

Метод Mduration возвращает модифицированную продолжительность Маколея (Macaulay duration) для ценных бумаг с предполагаемой номинальной стоимостью 100 руб.

Комментарии

Mduration вычисляется следующим образом:

.

Для получения продолжительности Маколея (Macaulay duration) используйте метод IFinance.Duration.

Пример

Для выполнения примера добавьте ссылку на системную сборку MathFin.

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;

В результате выполнения примера в окно консоли будет выведена модифицированная продолжительность Маколея (Macaulay duration), равная 1.243.

См. также:

IFinance