OddfYield(Settlement: DateTime; Maturity: DateTime; Issue: DateTime; FirstCouponDate: DateTime; Rate: Double; PresentValue: Double; Redemption: Double; Frequency: Integer; [Basis: Integer = 0]): Double;
Settlement. Дата расчета за ценные бумаги. Должен быть больше Issue;
Maturity. Срок погашения ценных бумаг. Должен быть больше FirstCouponDate;
Issue. Дата выпуска ценных бумаг. Должен быть меньше Settlement;
FirstCouponDate. Дата первого купона для ценных бумаг. Должен быть больше Settlement.
Rate. Годовая процентная ставка для купонов по ценным бумагам. Должен быть положительным;
PresentValue. Стоимость ценных бумаг. Должен быть неотрицательным;
Redemption. Выкупная стоимость ценных бумаг за 100 руб. номинальной стоимости. Должен быть положительным;
Frequency. Количество купонных выплат в год. Параметр может принимать следующие значения:
1. Ежегодные выплаты;
2. Полугодовые выплаты;
4. Ежеквартальные выплаты;
Basis. Используемый способ вычисления дня. Задается в интервале от 0 до 4:
0. Способ вычисления дня американский/360 дней (метод NSAD). Значение по умолчанию;
1. Способ вычисления дня Фактический/фактический;
2. Способ вычисления дня Фактический/360 дней;
3. Способ вычисления дня Фактический/365 дней;
4. Способ вычисления дня европейский 30/360 дней.
Необязательный параметр.
Метод OddfYield возвращает доход по ценным бумагам с нерегулярным: коротким или длинным, первым периодом.
Для получения цены за 100 рублей номинальной стоимости ценных бумаг для нерегулярного: короткого или длинного, первого периода используйте метод IFinance.OddfPrice.
Добавьте ссылку на системную сборку MathFin.
Sub UserProc;
Var
r: Double;
Begin
r := Finance.OddfYield(DateTime.ComposeDay(2008,11,11), DateTime.ComposeDay(2021,03,01),
DateTime.ComposeDay(2008,10,15), DateTime.ComposeDay(2009,03,01), 0.1075, 145.5, 200, 4, 3);
Debug.WriteLine(r);
End Sub UserProc;
В результате выполнения примера в окно консоли будет выведен доход, равный 9.07%.
См. также: