Подобранная на заказ кривая процентной ставки возражает против данных о рынке облигаций
соответствует связи к подбирающей на заказ функции. CurveObj
= fitFunction(Type
,Settle
,FunctionHandle
,Instruments
,IRFitOptionsObj
)
добавляют дополнительные аргументы пары "имя-значение". CurveObj
= fitFunction(___,Name,Value
)
В этом примере показано, как использовать fitFunction
подбирать на заказ связь.
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 0 4 38036.7 4.92e+04 1 8 38036.7 10 4.92e+04 2 12 38036.7 2.5 4.92e+04 3 16 38036.7 0.625 4.92e+04 4 20 38036.7 0.15625 4.92e+04 5 24 30741.5 0.0390625 1.72e+05 6 28 30741.5 0.078125 1.72e+05 7 32 30741.5 0.0195312 1.72e+05 8 36 28713.6 0.00488281 2.33e+05 9 40 20323.3 0.00976562 9.47e+05 10 44 20323.3 0.0195312 9.47e+05 11 48 20323.3 0.00488281 9.47e+05 12 52 20323.3 0.0012207 9.47e+05 13 56 19698.8 0.000305176 1.08e+06 14 60 17493 0.000610352 7e+06 15 64 17493 0.0012207 7e+06 16 68 17493 0.000305176 7e+06 17 72 15455.1 7.62939e-05 2.25e+07 18 76 15455.1 0.000177499 2.25e+07 19 80 13317.1 3.8147e-05 3.18e+07 20 84 12865.3 7.62939e-05 7.83e+07 21 88 11779.8 7.62939e-05 7.58e+06 22 92 11747.6 0.000152588 1.45e+05 23 96 11720.9 0.000305176 2.33e+05 24 100 11667.2 0.000610352 1.48e+05 25 104 11558.6 0.0012207 3.55e+05 26 108 11335.5 0.00244141 1.57e+05 27 112 10863.8 0.00488281 6.36e+05 28 116 9797.14 0.00976562 2.53e+05 29 120 6882.83 0.0195312 9.18e+05 30 124 6882.83 0.0373993 9.18e+05 31 128 3218.45 0.00934981 1.96e+06 32 132 612.703 0.0186996 3.01e+06 33 136 13.0998 0.0253882 3.05e+06 34 140 0.0762922 0.00154002 5.05e+04 35 144 0.0731652 3.61102e-06 29.9 36 148 0.0731652 6.32344e-08 0.063 Local minimum possible. lsqnonlin stopped because the final change in the sum of squares relative to its initial value is less than the value of the function tolerance.
CustomModel = Type: Zero Settle: 733528 (30-Apr-2008) Compounding: 2 Basis: 0 (actual/actual)
Type
— Тип кривой процентной ставки'zero'
, 'forward'
, или 'discount'
Тип кривой процентной ставки, заданной при помощи скалярного вектора символов.
Типы данных: char
Settle
— Уладьте дату кривой процентной ставкиУладьте дату кривой процентной ставки, заданное использование скалярного вектора символов даты или последовательного номера даты.
Типы данных: double |
char
FunctionHandle
— Указатель на функцию, который задает кривую процентной ставкиУказатель на функцию, который задает кривую процентной ставки, заданное использование указателя на функцию. Указатель на функцию берет два числовых вектора (время к зрелости и вектор из функциональных коэффициентов) и возвращает один числовой выходной параметр (процентная ставка или коэффициент дисконтирования). Для получения дополнительной информации об определении указателя на функцию смотрите MATLAB® Документация Основ программирования.
Типы данных: function_handle
Instruments
— Инструменты Инструменты, заданное использование N
- 4
матрица данных, где первым столбцом является Settle
дата, вторым столбцом является Maturity
, третий столбец является чистой ценой, и четвертым столбцом является CouponRate
для связи.
Типы данных: double
IRFitOptionsObj
— Объект IRFitOptionsIRFitOptions
объектIRFitOptions
объект, заданное использование ранее созданного объекта с помощью IRFitOptions
.
Типы данных: object
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
CurveObj = IRFunctionCurve.fitFunction('Zero',CurveSettle,functionHandle,Instruments,IRFitOptions([.05 .05 .05],'FitType','price','OptOptions',OptOptions))
Compounding
— Соединение частоты в год для IRFunctionCurve
объектCurveObj.Compounding
(значение по умолчанию) | возможные значения включает: –1
, 0
, 1
, 2
, 3
, 4
, 6
, 12
.Соединение частоты в год для IRFunctionCurve
объект в виде разделенной запятой пары, состоящей из 'Compounding'
и скалярное числовое использование одного из поддерживаемых значений:
−1 = Непрерывное соединение
0 = Простой процент (никакое соединение)
1 = Ежегодное соединение
2 = Полугодовое соединение
3 = Соединение три раза в год
4 = Ежеквартально соединение
6 = Два раза в месяц соединение
12 = Ежемесячно соединение
Типы данных: double
Basis
— Дневной базис количества связи
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
к 13
Дневной базис количества связи в виде разделенной запятой пары, состоящей из 'Basis'
и скалярное целое число.
0 — фактический/фактический
1 — 30/360 (СИА)
2 — фактический/360
3 — фактический/365
4 — 30/360 (PSA)
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
Для получения дополнительной информации смотрите Базис.
Типы данных: double
InstrumentPeriod
— Купоны в год для связи
(значение по умолчанию) | числовой со значением 0
, 1
, 2
, 3
, 4
, 6
, и 12
Купоны в год для связи в виде разделенной запятой пары, состоящей из 'InstrumentPeriod'
и скалярное числовое значение.
Типы данных: double
InstrumentBasis
— Базис дневного количества связи
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
к 13
Дневной базис количества связи в виде разделенной запятой пары, состоящей из 'InstrumentBasis'
и скалярное целое число.
0 — фактический/фактический
1 — 30/360 (СИА)
2 — фактический/360
3 — фактический/365
4 — 30/360 (PSA)
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
Примечание
InstrumentBasis
отличает инструмент связи Basis
значение от кривой процентной ставки Basis
значение.
Для получения дополнительной информации смотрите Базис.
Типы данных: double
InstrumentEndMonthRule
— Правило конца месяца
(значение по умолчанию) | логический со значением 0
или 1
Правило конца месяца в виде разделенной запятой пары, состоящей из 'InstrumentEndMonthRule'
и логическое значение. Это правило применяется только когда Maturity
дата конца месяца в течение месяца, имея 30 или меньше дней.
0 = проигнорируйте правило, подразумевая, что дата купонного платежа связи всегда является тем же числовым днем месяца.
1 =
set
правило о (значении по умолчанию), означая, что дата купонного платежа связи всегда является прошлым фактическим днем месяца.
Типы данных: логический
InstrumentIssueDate
— Инструментальная дата выпуска[]
(значение по умолчанию) | вектор символов даты | последовательный номер датыИнструментальная дата выпуска в виде разделенной запятой пары, состоящей из 'InstrumentIssueDate'
и скалярный вектор символов даты или последовательный номер даты.
Типы данных: char |
double
InstrumentFirstCouponDate
— Дата, когда связь делает свой первый купонный платежДата, когда связь делает свой первый купонный платеж (используемый, когда связь имеет неправильный первый период купона) в виде разделенной запятой пары, состоящей из 'InstrumentFirstCouponDate'
и скалярный вектор символов даты или последовательный номер даты. Когда InstrumentFirstCouponDate
и InstrumentLastCouponDate
оба заданы, InstrumentFirstCouponDate
более приоритетен в определении структуры купонного платежа. Если вы не задаете InstrumentFirstCouponDate
, платежные дни потока наличности определяются из других входных параметров.
Типы данных: char |
double
InstrumentLastCouponDate
— Последняя дата купона связи перед датой погашенияПоследняя дата купона связи перед датой погашения (используемый, когда связь имеет неправильный последний период купона) в виде разделенной запятой пары, состоящей из 'InstrumentLastCouponDate'
и скалярный вектор символов даты или последовательный номер даты. В отсутствие заданного InstrumentFirstCouponDate
, заданный InstrumentLastCouponDate
определяет структуру купона связи. Структура купона связи является усеченной в InstrumentLastCouponDate
, независимо от того, где это падает и сопровождается только датой потока наличности зрелости связи. Если вы не задаете InstrumentLastCouponDate
, платежные дни потока наличности определяются из других входных параметров.
Типы данных: char |
double
InstrumentFace
— Поверхность или номинальная стоимость
(значение по умолчанию) | числовойПоверхность или номинальная стоимость в виде разделенной запятой пары, состоящей из 'InstrumentFace'
и числовой скаляр.
Типы данных: double
Примечание
При использовании Instrument
пары "имя-значение", можно задать простой процент для связи путем определения InstrumentPeriod
значение как 0
. Если InstrumentBasis
и InstrumentPeriod
не заданы для связи, следующие значения по умолчанию используются: InstrumentBasis
0
(действие/действие) и InstrumentPeriod
2
.
CurveObj
— Модель CurveМодель кривой, возвращенная как структура.
IRFunctionCurve
| IRFitOptions
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.