CoupNum(Settlement: DataTime; Maturity: DataTime; Frequency: Integer; [Basis: Integer = 0]): Integer;
CoupNum(Settlement: System.DataTime; Maturity: System.DataTime; Frequency: integer; Basis: integer): integer;
Settlement. Дата расчета за ценные бумаги. Должен быть меньше Maturity;
Maturity. Срок погашения ценных бумаг. Должен быть больше Settlement;
Frequency. Количество купонных выплат в год. Параметр может принимать следующие значения:
1. Ежегодные выплаты;
2. Полугодовые выплаты;
4. Ежеквартальные выплаты;
Basis. Используемый способ вычисления дня. Задается в интервале от 0 до 4:
0. Способ вычисления дня американский/360 дней (метод NSAD). Значение по умолчанию;
1. Способ вычисления дня Фактический/фактический;
2. Способ вычисления дня Фактический/360 дней;
3. Способ вычисления дня Фактический/365 дней;
4. Способ вычисления дня европейский 30/360 дней.
Необязательный параметр.
Метод CoupNum возвращает количество купонов, которые могут быть оплачены между датой расчета и сроком погашения, округленное до ближайшего целого количества купонов.
Для получения количества дней от начала действия купона до даты соглашения используйте функцию IFinance.CoupDayBs.
Добавьте ссылку на системную сборку MathFin.
Sub UserProc;
Var
r: Integer;
Begin
r := Finance.CoupNum(DateTime.ComposeDay(2008,01,01), DateTime.ComposeDay(2008,06,01), 1, 0);
Debug.WriteLine(r);
End Sub UserProc;
Imports Prognoz.Platform.Interop.MathFin;
…
Public Shared Sub Main(Params: StartParams);
Var
r: Integer;
Finance: FinanceClass = New FinanceClass();
DateTime1, DateTime2: System.DateTime;
Begin
DateTime1 := New DateTime(2008,01,01);
DateTime2 := New DateTime(2008,06,01);
r := Finance.CoupNum(DateTime1, DateTime2, 1, 0);
System.Diagnostics.Debug.WriteLine(r);
End Sub;
В результате выполнения примера в окно консоли будет выведено количество купонов, равное 1.
См. также: