IFinance.Duration

Синтаксис

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

Параметры

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

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

CouponRate. Цена ценных бумаг за 100 руб. номинальной стоимости. Должен быть неотрицательным;

YieldP. Выкупная стоимость ценных бумаг за 100 руб. номинальной стоимости. Должен быть неотрицательным;

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

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

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

Описание

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

Комментарии

Продолжительность определяется как взвешенное среднее приведенной стоимости денежных потоков и используется как мера реакции цен облигаций на изменение доходности.

Дата соглашения является датой продажи покупателю купона, например, облигации. Срок платежа представляет собой дату истечения срока действия купона. Пусть, например, облигация со сроком действия 30 лет выпущена 1 января 2008 года и была приобретена покупателем через шесть месяцев после своего выпуска. Датой выпуска будет являться 1 января 2008 года, датой расчета - 1 июля 2008, а срок погашения такой облигации - 1 января 2038 года, то есть через 30 лет после даты выпуска.

Пример

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

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

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

См. также:

IFinance