OddfYield(Settlement: DateTime;
Maturity: DateTime;
Issue: DateTime;
FirstCouponDate: DateTime;
Rate: Double;
PresentValue: Double;
Redemption: Double;
Frequency: Integer;
Basis: Integer): Double;
OddfYield(Settlement: System.DateTime;
Maturity: System.DateTime;
Issue: System.DateTime;
FirstCouponDate: System.DateTime;
Rate: double;
PresentValue: double;
Redemption: double;
Frequency: integer;
Basis: integer): double;
| Параметры | Описание | Ограничения |
| Settlement | Дата расчета за ценные бумаги. | Должен быть больше Issue. |
| Maturity | Срок погашения ценных бумаг. | Должен быть больше FirstCouponDate. |
| Issue | Дата выпуска ценных бумаг. | Должен быть меньше Settlement. |
| FirstCouponDate | Дата первого купона для ценных бумаг. | Должен быть больше Settlement. |
| Rate | Процентная ставка для ценных бумаг. | Должен быть неотрицательным. |
| PresentValue | Стоимость ценных бумаг. | Должен быть неотрицательным. |
| Redemption | Выкупная стоимость ценных бумаг за 100 руб. номинальной стоимости. | Должен быть положительным. |
| Frequency | Количество выплат по купонам за год:
1 - для ежегодных выплат; 2 - для полугодовых выплат; 4 - для ежеквартальных выплат. |
Может принимать значения 1, 2 или 4. |
| Basis | Используемый способ вычисления дня:
0 - Американский/360 дней (метод NSAD); 1 - Фактический/фактический; 2 - Фактический/360 дней; 3 - Фактический/365 дней; 4 - Европейский 30/360 дней. |
Должен принадлежать промежутку [0,4]. |
Метод 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%».
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.MathFin;
…
Public Shared Sub Main(Params: StartParams);
Var
r: double;
Finance: FinanceClass = New FinanceClass();
DateTime1, DateTime2, DateTime3, DateTime4: System.DateTime;
Begin
DateTime1 := New DateTime(2008,11,11);
DateTime2 := New DateTime(2021,03,01);
DateTime3 := New DateTime(2008,10,15);
DateTime4 := New DateTime(2009,03,01);
r := Finance.OddfYield(DateTime1, DateTime2,
DateTime3, DateTime4, 0.1075, 145.5, 200, 4, 3);
System.Diagnostics.Debug.WriteLine(r);
End Sub;
См. также: