Disc(Settlement: DateTime; Maturity: DateTime; NominalCost: Double; Redemption: Double; [Basis: Integer = 0]): Double;
Settlement. Дата расчета за ценные бумаги. Должен быть меньше Maturity;
Maturity. Срок погашения ценных бумаг. Должен быть больше Settlement;
NominalCost. Номинальная стоимость ценных бумаг. Должен быть положительным;
Redemption. Выкупная стоимость ценных бумаг за 100 руб. номинальной стоимости. Должен быть положительным;
Basis. Используемый способ вычисления дня. Задается в интервале от 0 до 4:
0. Способ вычисления дня американский/360 дней (метод NSAD). Значение по умолчанию;
1. Способ вычисления дня Фактический/фактический;
2. Способ вычисления дня Фактический/360 дней;
3. Способ вычисления дня Фактический/365 дней;
4. Способ вычисления дня европейский 30/360 дней.
Необязательный параметр.
Метод Disc возвращает ставку дисконтирования для ценных бумаг.
Дата соглашения является датой продажи покупателю купона, например, облигации. Срок платежа представляет собой дату истечения срока действия купона. Пусть, например, облигация со сроком действия 30 лет выпущена 1 января 2008 года и была приобретена покупателем через шесть месяцев после своего выпуска. Датой выпуска будет являться 1 января 2008 года, датой соглашения - 1 июля 2008, а сроком погашения такой облигации - 1 января 2038 года, то есть через 30 лет после даты выпуска.
Disc вычисляется следующим образом:
,
где:
B. Число дней в году, зависит от выбранного значения аргумента Basis;
DSM. Число дней между датами Settlement и Maturity.
Добавьте ссылку на системную сборку MathFin.
Sub UserProc;
Var
r: Double;
Begin
r := Finance.Disc(DateTime.ComposeDay(2008,01,01), DateTime.ComposeDay(2008,06,01), 50, 100, 0);
Debug.WriteLine(r);
End Sub UserProc;
В результате выполнения примера в окно консоли будет выведена ставка дисконтирования, равная -2.4.
См. также: