Price(Settlement: DateTime; Maturity: DateTime; Rate: Double; YieldP: Double; Redemption: Double; Frequency: Integer; [Basis: Integer = 0]): Double;
Settlement. Дата расчета за ценные бумаги. Должен быть больше Issue;
Maturity. Срок погашения ценных бумаг. Должен быть больше FirstCouponDate;
LastCouponDate. Дата последней купонной выплаты для ценных бумаг. Должен быть меньше Settlement;
Rate. Процентная ставка для ценных бумаг. Должен быть неотрицательным;
YieldP. Годовой доход по ценным бумагам. Должен быть неотрицательным;
Redemption. Выкупная стоимость ценных бумаг в расчете на 100 рублей номинальной стоимости. Должен быть положительным;
Frequency. Количество купонных выплат в год. Параметр может принимать следующие значения:
1. Ежегодные выплаты;
2. Полугодовые выплаты;
4. Ежеквартальные выплаты;
Basis. Используемый способ вычисления дня. Задается в интервале от 0 до 4:
0. Способ вычисления дня американский/360 дней (метод NSAD). Значение по умолчанию;
1. Способ вычисления дня Фактический/фактический;
2. Способ вычисления дня Фактический/360 дней;
3. Способ вычисления дня Фактический/365 дней;
4. Способ вычисления дня европейский 30/360 дней.
Необязательный параметр.
Метод Price возвращает цену за 100 рублей номинальной стоимости ценных бумаг, по которым выплачивается периодический процент.
Для получения доходности ценных бумаг, по которым производятся периодические выплаты процентов, используйте метод IFinance.YieldF.
Добавьте ссылку на системную сборку MathFin.
Sub UserProc;
Var
r: Double;
Begin
r := Finance.Price(DateTime.ComposeDay(2007,01,01), DateTime.ComposeDay(2007,10,01), 0.05, 0.35, 1510, 1, 0);
Debug.WriteLine(r);
End Sub UserProc;
В результате выполнения примера в окно консоли будет выведена цена за 100 рублей номинальной стоимости ценных бумаг, равная 1198.75.
См. также: