IFinance.MDuration

Синтаксис Fore

MDuration(Settlement: DateTime;

Maturity: DateTime;

CouponRate: Double;

YieldP: Double;

Frequency: Integer;

Basis: Integer): Double;

Синтаксис Fore.NET

MDuration(Settlement: System.DateTime;

Maturity: System.DateTime;

CouponRate: double;

YieldP: double;

Frequency: integer;

Basis: integer): double;

Параметры

Параметры Описание Ограничения
Settlement Дата расчета за ценные бумаги. Должен быть меньше Maturity.
Maturity Срок погашения ценных бумаг. Должен быть больше Settlement.
CouponRate Годовая процентная ставка для купонов по ценным бумагам. Должен быть неотрицательным.
YieldP Годовой доход по ценным бумагам. Должен быть неотрицательным.
Frequency Количество выплат по купонам за год:
1 - для ежегодных выплат;
2 - для полугодовых выплат;
4 - для ежеквартальных выплат.
Должен принимать значения 1, 2 или 4.
Basis Используемый способ вычисления дня:
0 - Американский/360 дней (метод NSAD);
1 - Фактический/фактический;
2 - Фактический/360 дней;
3 - Фактический/365 дней;
4 - Европейский 30/360 дней.
Должен принадлежать промежутку [0;4].

Описание

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

Комментарии

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

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

Пример Fore

Для выполнения примера добавьте ссылку на системную сборку 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;

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

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

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;

См. также:

IFinance