Подобранная на заказ кривая процентной ставки возражает против данных о рынке облигаций
CurveObj = IRFunctionCurve.fitFunction(Type,Settle,FunctionHandle,Instruments,IRFitOptionsObj) CurveObj = IRFunctionCurve.fitFunction(Type,Settle,FunctionHandle,Instruments,IRFitOptionsObj,Name,Value)
Type | Тип процентной ставки изгибается для связи: |
Settle | Скаляр для |
FunctionHandle | Указатель на функцию, который задает кривую процентной ставки. Указатель на функцию берет два числовых вектора (время к зрелости и вектор функциональных коэффициентов) и возвращает один числовой выходной параметр (процентная ставка или коэффициент дисконтирования). Для получения дополнительной информации об определении указателя на функцию см. документацию MATLAB® Programming Fundamentals. |
Instruments |
|
IRFitOptionsObj | Объект создается из |
Compounding | (Необязательно) Скаляр, который устанавливает частоту соединения в год для
|
Basis | (Необязательно) основание Дневного количества связи. Скаляр целых чисел.
Для получения дополнительной информации смотрите Основание. |
Для каждой связи Instrument
, можно задать следующие дополнительные инструментальные параметры как пары параметра/значения. Например, InstrumentBasis
отличает инструмент связи Basis
значение от Basis
кривой значение.
| (Необязательно) Купоны в год связи. Вектор целых чисел. Позволенными значениями является |
| (Необязательно) основание Дневного количества связи. Вектор целых чисел.
Для получения дополнительной информации смотрите Основание. |
| (Необязательно) правило Конца месяца. Вектор. Это правило применяется только когда |
| (Необязательно) Дата, когда инструмент был выпущен. |
| (Необязательно) Дата, когда связь делает свой первый купонный платеж; используемый, когда связь имеет неправильный первый период купона. Когда |
| (Необязательно) Последняя дата купона связи перед датой погашения; используемый, когда связь имеет неправильный последний период купона. В отсутствие заданного |
| (Необязательно) Поверхность или номинальная стоимость. Значение по умолчанию = |
При использовании 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.