OddlYield(Settlement: DateTime; Maturity: DateTime; LastCouponDate: DateTime; Rate: Double; Price: Double; Redemption: Double; Frequency: Integer; [Basis: Integer = 0]): Double;
OddlYield(Settlement: System.DateTime; Maturity: System.DateTime; LastCouponDate: System.DateTime; Rate: double; Price: double; Redemption: double; Frequency: integer; Basis: integer): double;
Settlement. Дата расчета за ценные бумаги. Должен быть больше Maturity;
Maturity. Срок погашения ценных бумаг. Должен быть больше LastCouponDate;
LastCouponDate. Дата последней купонной выплаты для ценных бумаг. Должен быть меньше Settlement;
Rate. Процентная ставка для ценных бумаг. Должен быть неотрицательным;
Price. Стоимость ценных бумаг. Должен быть неотрицательным;
Redemption. Выкупная стоимость ценных бумаг в расчете на 100 рублей номинальной стоимости. Должен быть положительным;
Frequency. Количество купонных выплат в год. Параметр может принимать следующие значения:
1. Ежегодные выплаты;
2. Полугодовые выплаты;
4. Ежеквартальные выплаты;
Basis. Используемый способ вычисления дня. Задается в интервале от 0 до 4:
0. Способ вычисления дня американский/360 дней (метод NSAD). Значение по умолчанию;
1. Способ вычисления дня Фактический/фактический;
2. Способ вычисления дня Фактический/360 дней;
3. Способ вычисления дня Фактический/365 дней;
4. Способ вычисления дня европейский 30/360 дней.
Необязательный параметр.
Метод OddlYield возвращает доход по ценным бумагам с нерегулярным: коротким или длинным, последним периодом.
OddlYield вычисляется следующим образом:
,
где:
Aj. Количество накопленных дней для j-го или последнего квазикупонного периода в нерегулярном периоде, отсчитанное вперед от даты последней выплаты перед погашением;
DCj. Количество дней, сосчитанных для j-го или последнего квазикупонного периода, разделенное на продолжительность фактического купонного периода;
NC. Количество квазикупонных периодов, укладывающихся в нерегулярный период. Если это число является дробным, то оно округляется с избытком до ближайшего целого;
NLj. Нормальная продолжительность в днях j-го или последнего квазикупонного периода в нерегулярном купонном периоде.
Добавьте ссылку на системную сборку MathFin.
Sub UserProc;
Var
r: Double;
Begin
r := Finance.OddlYield(DateTime.ComposeDay(2008,04,20), DateTime.ComposeDay(2008,06,15),
DateTime.ComposeDay(2007,12,24), 0.0275, 101.82, 102, 4, 3);
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,04,20);
DateTime2 := New DateTime(2008,06,15);
DateTime3 := New DateTime(2007,12,24);
r := Finance.OddlYield(DateTime1, DateTime2,
DateTime3, 0.0275, 101.82, 102, 4, 3);
System.Diagnostics.Debug.WriteLine(r);
End Sub;
В результате выполнения примера в окно консоли будет выведен доход, равный 3.83%.
См. также: