IFinance.OddlPrice

Синтаксис

OddlPrice(Settlement: DateTime, Maturity: DateTime, LastCouponDate: DateTime, Rate: Double, YieldP: Double, Redemption: Double, Frequency: Integer, [Basis: Ingteger = 0]): Double;

OddlPrice(Settlement: System.DateTime, Maturity: System.DateTime, LastCouponDate: System.DateTime, Rate: double, YieldP: double, Redemption: double, Frequency: integer, Basis: ingteger): double;

Параметры

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

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

LastCouponDate. Дата последней купонной выплаты для ценных бумаг. Должен быть меньше Settlement;

Rate. Процентная ставка для ценных бумаг. Должен быть неотрицательным;

YieldP. Годовой доход по ценным бумагам. Должен быть неотрицательным;

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

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

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

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

Описание

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

Комментарии

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

Пример

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

Sub UserProc;
Var
    r: Double;
Begin
    r := Finance.OddlPrice(DateTime.ComposeDay(2008,02,07), DateTime.ComposeDay(2008,06,15),
        DateTime.ComposeDay(2007,10,15)
0.12750.102520043);
    Debug.WriteLine(r);
End Sub UserProc;

Imports Prognoz.Platform.Interop.MathFin;

Public Shared Sub Main(Params: StartParams);
Var
    r: double;
    Finance: FinanceClass = New FinanceClass();
    DateTime1, DateTime2, DateTime3: System.DateTime;
Begin
    DateTime1 := New DateTime(2008,02,07);
    DateTime2 := New DateTime(2008,06,15);
    DateTime3 := New DateTime(2007,10,15);
    r := Finance.OddlPrice(DateTime1, DateTime2, DateTime3, 0.12750.102520043);
    System.Diagnostics.Debug.WriteLine(r);
End Sub;

В результате выполнения примера в окно консоли будет выведена цена, равная 197.2097.

См. также:

IFinance