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® Programming Fundamentals.

Instruments

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

IRFitOptionsObj

Объект создается из IRFitOptions.

Compounding

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

  • −1 = Непрерывное соединение

  • 1 = Ежегодное соединение

  • 2 = Полугодовое соединение (значение по умолчанию)

  • 3 = Соединение три раза в год

  • 4 = Ежеквартально соединение

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

  • 12 = Ежемесячно соединение

Basis

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

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

  •  1 = 30/360 (СИА)

  •  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 = ШИНА/252

Для получения дополнительной информации смотрите Основание.

Инструментальные параметры

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

InstrumentPeriod

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

InstrumentBasis

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

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

  •  1 = 30/360 (СИА)

  •  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 = ШИНА/252

Для получения дополнительной информации смотрите Основание.

InstrumentEndMonthRule

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

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Значение аргументы. 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