Пользовательский объект кривой процентной ставки для данных рынка облигаций
CurveObj = IRFunctionCurve.fitFunction(Type,Settle,FunctionHandle,Instruments,IRFitOptionsObj) CurveObj = IRFunctionCurve.fitFunction(Type,Settle,FunctionHandle,Instruments,IRFitOptionsObj,Name,Value)
Type | Тип кривой процентной ставки для облигации: |
Settle | Скаляр для |
FunctionHandle | Указатель на функцию, который определяет кривую процентной ставки. Указатель на функцию принимает два числовых вектора (время до срока и вектор функциональных коэффициентов) и возвращает один численный выход (процентная ставка или коэффициент дисконтирования). Для получения дополнительной информации об определении указателя на функцию смотрите MATLAB® Документация по основам программирования. |
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
, 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.