PriceMat(Settlement: DateTime;
Maturity: DateTime;
Issue: DateTime;
Rate: Double;
YieldP: Double;
Basis: Integer): Double;
PriceMat(Settlement: System.DateTime;
Maturity: System.DateTime;
Issue: System.DateTime;
Rate: double;
YieldP: double;
Basis: integer): double;
| Параметры | Описание | Ограничения |
| Settlement | Дата расчета за ценные бумаги. | Должен быть меньше Maturity. |
| Maturity | Срок погашения ценных бумаг. | Должен быть больше Settlement. |
| Issue | Дата выпуска ценных бумаг. | Должен быть меньше Settlement. |
| Rate | Выкупная стоимость ценных бумаг за 100 руб. номинальной стоимости. | Должен быть положительным. |
| YieldP | Процентная ставка дохода по ценным бумагам на дату выпуска. | Должен быть неотрицательным. |
| Basis | Используемый способ вычисления дня:
0 - Американский/360 дней (метод NSAD); 1 - Фактический/фактический; 2 - Фактический/360 дней; 3 - Фактический/365 дней; 4 - Европейский 30/360 дней. |
Должен принадлежать промежутку [0;4]. |
Метод PriceMat возвращает цену за 100 рублей номинальной стоимости ценных бумаг, по которым процент выплачивается в срок погашения.
PriceMat вычисляется по следующей формуле:

Где:
B. Количество дней в году, зависит от используемого базиса;
DSM. Количество дней от даты расчета до даты погашения;
DIM. Количество дней от даты выпуска до даты погашения;
A. Количество дней от даты выпуска до даты расчета.
Для выполнения примера добавьте ссылку на системную сборку MathFin.
Sub UserProc;
Var
r: Double;
Begin
r := Finance.PriceMat(DateTime.ComposeDay(2008,01,01), DateTime.ComposeDay(2008,06,01),
DateTime.ComposeDay(2007,10,01), 0.15, 0.2, 0);
Debug.WriteLine(r);
End Sub UserProc;
В результате выполнения примера в окно консоли будет выведена цена, равная «97.79».
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
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,01,01);
DateTime2 := New DateTime(2008,06,01);
DateTime3 := New DateTime(2007,10,01);
r := Finance.PriceMat(DateTime1, DateTime2,
DateTime3, 0.15, 0.2, 0);
System.Diagnostics.Debug.WriteLine(r);
End Sub;
См. также: