PriceMat(Settlement: DateTime; Maturity: DateTime; Issue: DateTime; Rate: Double; YieldP: Double; [Basis: Integer = 0]): 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. Процентная ставка для ценных бумаг. Должен быть положительным;
YieldP. Годовой доход по ценным бумагам. Должен быть неотрицательным;
Basis. Используемый способ вычисления дня. Задается в интервале от 0 до 4:
0. Способ вычисления дня американский/360 дней (метод NSAD). Значение по умолчанию;
1. Способ вычисления дня Фактический/фактический;
2. Способ вычисления дня Фактический/360 дней;
3. Способ вычисления дня Фактический/365 дней;
4. Способ вычисления дня европейский 30/360 дней.
Необязательный параметр.
Метод 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;
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;
В результате выполнения примера в окно консоли будет выведена цена, равная 97.79.
См. также: