exponenta event banner

fitFunction

Объект пользовательской кривой процентной ставки для данных рынка облигаций

Синтаксис

CurveObj = IRFunctionCurve.fitFunction(Type,Settle,FunctionHandle,Instruments,IRFitOptionsObj)
CurveObj = IRFunctionCurve.fitFunction(Type,Settle,FunctionHandle,Instruments,IRFitOptionsObj,Name,Value)

Аргументы

Type

Тип кривой процентной ставки для облигации: zero, forward, или discount.

Settle

Скаляр для Settle дата кривой.

FunctionHandle

Дескриптор функции, определяющий кривую процентной ставки. Дескриптор функции принимает два числовых вектора (время до погашения и вектор коэффициентов функции) и возвращает один числовой вывод (процентную ставку или коэффициент дисконтирования). Дополнительные сведения об определении дескриптора функции см. в документации по основам программирования MATLAB ®.

Instruments

Nоколо-4 матрица данных для Instruments где первый столбец Settle дата, второй столбец - Maturity, третий столбец - чистая цена, а четвертый столбец - CouponRate для облигации.

IRFitOptionsObj

Объект, созданный из IRFitOptions.

Compounding

(Необязательно) Скаляр, задающий частоту объединения в год для IRFunctionCurve объект:

  • −1 = Непрерывное компаундирование

  • 1 = Годовое суммирование

  • 2 = Полугодичное объединение (по умолчанию)

  • 3 = Три раза в год

  • 4 = Квартальное суммирование

  • 6 = Компаундирование раз в два месяца

  • 12 = Ежемесячное суммирование

Basis

(Необязательно) Основание счета дня облигации. Скаляр целых чисел.

  • 0 = факт/факт (по умолчанию)

  • 1 = 30/360 (SIA)

  • 2 = фактически/360

  • 3 = факт/365

  • 4 = 30/360 (BMA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (европейский)

  • 7 = факт/365 (японский)

  • 8 = факт/факт (ICMA)

  • 9 = факт/360 (ICMA)

  • 10 = факт/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = факт/365 (ISDA)

  • 13 = BUS/252

Дополнительные сведения см. в разделе Базис.

Параметры КИП

Для каждой облигации InstrumentВ качестве пар параметр/значение можно указать следующие дополнительные параметры прибора. Например, InstrumentBasis различает облигационный инструмент Basis значение из кривой Basis значение.

InstrumentPeriod

(Необязательно) Купоны в год облигации. Вектор целых чисел. Допустимые значения: 0, 1, 2 (по умолчанию), 3, 4, 6, и 12.

InstrumentBasis

(Необязательно) Основание счета дня облигации. Вектор целых чисел.

  • 0 = факт/факт (по умолчанию)

  • 1 = 30/360 (SIA)

  • 2 = фактически/360

  • 3 = факт/365

  • 4 = 30/360 (BMA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (европейский)

  • 7 = факт/365 (японский)

  • 8 = факт/факт (ICMA)

  • 9 = факт/360 (ICMA)

  • 10 = факт/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = факт/365 (ISDA)

  • 13 = BUS/252

Дополнительные сведения см. в разделе Базис.

InstrumentEndMonthRule

(Необязательно) Правило конца месяца. Вектор. Это правило применяется только в том случае, если Maturity - дата окончания месяца, имеющая 30 или менее дней. 0 = игнорировать правило, означающее, что дата купонной выплаты облигации всегда совпадает с числовым днем месяца. 1 = set правило on (по умолчанию), означающее, что дата купонной выплаты облигации всегда является последним фактическим днем месяца.

InstrumentIssueDate

(Необязательно) Дата выпуска документа.

InstrumentFirstCouponDate

(Необязательно) Дата, когда облигация осуществляет свой первый купонный платеж; используется, когда облигация имеет нерегулярный первый купонный период. Когда FirstCouponDate и LastCouponDate оба указаны, FirstCouponDate имеет приоритет при определении структуры купонных выплат. Если не указать FirstCouponDateдаты оплаты денежного потока определяются из других входных данных.

InstrumentLastCouponDate

(Необязательно) Дата последнего купона облигации до даты погашения; используется, когда облигация имеет нерегулярный последний купонный период. При отсутствии указанного FirstCouponDate, указанный LastCouponDate определяет структуру купона облигации. Купонная структура облигации усечена в LastCouponDateнезависимо от того, куда она попадает, и следует только дата денежного потока погашения облигации. Если не указать LastCouponDateдаты оплаты денежного потока определяются из других входных данных.

InstrumentFace

(Необязательно) Номинал или номинал. По умолчанию = 100.

Примечание

При использовании Instrument пары имя-значение, можно указать простой процент для облигации, указав InstrumentPeriod значение как 0. Если InstrumentBasis и InstrumentPeriod не указаны для облигации, используются следующие значения по умолчанию: Basis является 0 (акт/акт) и Period является 2.

Описание

CurveObj = IRFunctionCurve.fitFunction(Type, Settle, FunctionHandle, Instruments, IRFitOptionsObj,Name,Value) подгоняет соединение к пользовательской функции фитинга. Необходимо ввести необязательные аргументы для Basis и Compounding как пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Примеры

Settle = repmat(datenum('30-Apr-2008'),[6 1]);
Maturity = [datenum('07-Mar-2009');datenum('07-Mar-2011');...
datenum('07-Mar-2013');datenum('07-Sep-2016');...
datenum('07-Mar-2025');datenum('07-Mar-2036')];
CleanPrice = [100.1;100.1;100.8;96.6;103.3;96.3];
CouponRate = [0.0400;0.0425;0.0450;0.0400;0.0500;0.0425];
Instruments = [Settle Maturity CleanPrice CouponRate];
CurveSettle = datenum('30-Apr-2008');
OptOptions = optimoptions('lsqnonlin','display','iter');
functionHandle = @(t,theta) polyval(theta,t);    

CustomModel = IRFunctionCurve.fitFunction('Zero', CurveSettle, ...
functionHandle,Instruments, ...
IRFitOptions([.05 .05 .05],'FitType','price',...
'OptOptions',OptOptions));
                                        Norm of      First-order 
 Iteration  Func-count     f(x)          step          optimality   CG-iterations
     0          4         38036.7                      4.92e+04
     1          8         38036.7             10       4.92e+04            0
     2         12         38036.7            2.5       4.92e+04            0
     3         16         38036.7          0.625       4.92e+04            0
     4         20         38036.7        0.15625       4.92e+04            0
     5         24         30741.5      0.0390625       1.72e+05            0
     6         28         30741.5       0.078125       1.72e+05            0
     7         32         30741.5      0.0195312       1.72e+05            0
     8         36         28713.6     0.00488281       2.33e+05            0
     9         40         20323.3     0.00976562       9.47e+05            0
    10         44         20323.3      0.0195312       9.47e+05            0
    11         48         20323.3     0.00488281       9.47e+05            0
    12         52         20323.3      0.0012207       9.47e+05            0
    13         56         19698.8    0.000305176       1.08e+06            0
    14         60           17493    0.000610352          7e+06            0
    15         64           17493      0.0012207          7e+06            0
    16         68           17493    0.000305176          7e+06            0
    17         72         15455.1    7.62939e-05       2.25e+07            0
    18         76         15455.1    0.000177499       2.25e+07            0
    19         80         13317.1     3.8147e-05       3.18e+07            0
    20         84         12865.3    7.62939e-05       7.83e+07            0
    21         88         11779.8    7.62939e-05       7.58e+06            0
    22         92         11747.6    0.000152588       1.45e+05            0
    23         96         11720.9    0.000305176       2.33e+05            0
    24        100         11667.2    0.000610352       1.48e+05            0
    25        104         11558.6      0.0012207       3.55e+05            0
    26        108         11335.5     0.00244141       1.57e+05            0
    27        112         10863.8     0.00488281       6.36e+05            0
    28        116         9797.14     0.00976562       2.53e+05            0
    29        120         6882.83      0.0195312       9.18e+05            0
    30        124         6882.83      0.0373993       9.18e+05            0
    31        128         3218.45     0.00934981       1.96e+06            0
    32        132         612.703      0.0186996       3.01e+06            0
    33        136         13.0998      0.0253882       3.05e+06            0
    34        140       0.0762922     0.00154002       5.05e+04            0
    35        144       0.0731652    3.61102e-06           29.9            0
    36        148       0.0731652    6.32335e-08          0.063            0

Local minimum possible.

lsqnonlin stopped because the final change in the sum of squares relative to 
its initial value is less than the default value of the function tolerance.
Представлен в R2008b