Загрузите кривую процентной ставки из данных о рынке
загружает кривую процентной ставки из данных о рынке. Даты загруженной кривой соответствуют датам погашения входных инструментов.DCurve
= IRDataCurve.bootstrap(Type
,Settle
,InstrumentTypes
,Instruments
)
добавляют дополнительные аргументы пары "имя-значение". DCurve
= IRDataCurve.bootstrap(___,Name,Value
)
bootstrap
Метод, чтобы создать IRDataCurve
ОбъектВ этом примере начальной загрузки, InstrumentTypes
, Instruments
, и Settle
дата задана:
InstrumentTypes = {'Deposit';'Deposit';... 'Futures';'Futures';'Futures';'Futures';'Futures';'Futures';... 'Swap';'Swap';'Swap';'Swap';}; Instruments = [datenum('08/10/2007'),datenum('09/17/2007'),.0532000; ... datenum('08/10/2007'),datenum('11/17/2007'),.0535866; ... datenum('08/08/2007'),datenum('19-Dec-2007'),9485; ... datenum('08/08/2007'),datenum('19-Mar-2008'),9502; ... datenum('08/08/2007'),datenum('18-Jun-2008'),9509.5; ... datenum('08/08/2007'),datenum('17-Sep-2008'),9509; ... datenum('08/08/2007'),datenum('17-Dec-2008'),9505.5; ... datenum('08/08/2007'),datenum('18-Mar-2009'),9501; ... datenum('08/08/2007'),datenum('08/08/2014'),.0530; ... datenum('08/08/2007'),datenum('08/08/2019'),.0551; ... datenum('08/08/2007'),datenum('08/08/2027'),.0565; ... datenum('08/08/2007'),datenum('08/08/2037'),.0566]; CurveSettle = datenum('08/10/2007');
Используйте bootstrap
метод, чтобы создать IRDataCurve
объект.
bootModel = IRDataCurve.bootstrap('Forward', CurveSettle, ... InstrumentTypes, Instruments,'InterpMethod','pchip');
Создать график для загруженных данных о рынке:
PlottingDates = (datenum('08/11/2007'):30:CurveSettle+365*25)'; plot(PlottingDates, getParYields(bootModel, PlottingDates),'r') ylim([0 .06]) datetick
bootstrap
Метод, чтобы создать IRDataCurve
Объект, который включает связиВ этом примере начальной загрузки, InstrumentTypes
, Instruments
, и Settle
дата задана:
CurveSettle = datenum('8-Mar-2010'); InstrumentTypes = {'Deposit';'Deposit';'Deposit';'Deposit';... 'Futures';'Futures';'Futures';'Futures';'Swap';'Swap';'Bond';'Bond'}; Instruments = [datenum('8-Mar-2010'),datenum('8-Apr-2010'),.003; ... datenum('8-Mar-2010'),datenum('8-Jun-2010'),.005; ... datenum('8-Mar-2010'),datenum('8-Sep-2010'),.007; ... datenum('8-Mar-2010'),datenum('8-Mar-2011'),.009; ... datenum('8-Mar-2010'),datenum('18-Jun-2011'),9840; ... datenum('8-Mar-2010'),datenum('17-Sep-2011'),9820; ... datenum('8-Mar-2010'),datenum('17-Dec-2011'),9810; ... datenum('8-Mar-2010'),datenum('18-Mar-2012'),9800; ... datenum('8-Mar-2010'),datenum('8-Mar-2015'),.025; ... datenum('8-Mar-2010'),datenum('8-Mar-2020'),.035; ... datenum('8-Mar-2010'),datenum('8-Mar-2030'),99; ... datenum('8-Mar-2010'),datenum('8-Mar-2040'),101];
Когда связи используются, InstrumentCouponRate
должен быть задан:
InstrumentCouponRate = [zeros(10,1);.045;.05];
Отметьте для параметров, которые только применимы к связям (InstrumentFirstCouponDate
, InstrumentLastCouponDate
, InstrumentIssueDate
, InstrumentFace
) записи для инструментов несвязи (депозиты и фьючерсы) проигнорированы.
Используйте bootstrap
метод, чтобы создать IRDataCurve
объект.
bootModel = IRDataCurve.bootstrap('Forward', CurveSettle, ... InstrumentTypes, Instruments,'InterpMethod','pchip',... 'InstrumentCouponRate',InstrumentCouponRate);
Создайте график для загруженных данных о рынке.
PlottingDates = datemnth(CurveSettle,1:30*12);
plot(PlottingDates, getParYields(bootModel, PlottingDates),'r')
ylim([0 .06])
datetick
IRBootstrapOptionsObj
с bootstrap
для отрицательных нулевых процентных ставокИспользуйте IRBootstrapOptionsObj
дополнительный аргумент с bootstrap
метод, чтобы допускать отрицательные нулевые уровни при решении для подкачки обнуляет точки.
Settle = datenum('15-Mar-2015'); InstrumentTypes = {'Deposit';'Deposit';'Swap';'Swap';'Swap';'Swap';}; Instruments = [Settle,datenum('15-Jun-2015'),.001; ... Settle,datenum('15-Dec-2015'),.0005; ... Settle,datenum('15-Mar-2016'),-.001; ... Settle,datenum('15-Mar-2017'),-0.0005; ... Settle,datenum('15-Mar-2018'),.0017; ... Settle,datenum('15-Mar-2020'),.0019]; irbo = IRBootstrapOptions('LowerBound',-1); bootModel = IRDataCurve.bootstrap('zero', Settle, InstrumentTypes,... Instruments,'IRBootstrapOptions',irbo); bootModel.getZeroRates(datemnth(Settle,1:60))
ans = 60×1
0.0012
0.0011
0.0010
0.0009
0.0008
0.0008
0.0007
0.0006
0.0005
-0.0000
⋮
Обратите внимание на то, что дополнительный аргумент для LowerBound
установлен в -1
для отрицательных нулевых уровней при решении подкачки обнуляют точки.
Type
— Тип кривой процентной ставки загружается от инструментов рынка'zero'
, 'discount'
, или 'forward'
Тип кривой процентной ставки загружается от инструментов рынка, заданных при помощи скалярного вектора символов.
При использовании bootstrap
, выбор Type
параметр может повлиять на конструкцию кривой, потому что это будет влиять на тип данных, которые будут интерполированы на (то есть, форвардные курсы, нулевые уровни или коэффициенты дисконтирования) во время процесса начальной загрузки. Так кривые, которые загружаются с помощью различного Type
параметры подвергаются различным алгоритмам начальной загрузки с различными методами интерполяции, и они могут иногда приводить к различным результатам при использовании “получить” функций (например, getForwardRates
).
Типы данных: char
Settle
— Уладьте дату кривой процентной ставкиУладьте дату кривой процентной ставки, заданное использование скалярного вектора символов даты или последовательного номера даты.
Типы данных: double |
char
InstrumentTypes
— Инструментальные типы 'deposit'
, 'futures'
подкачка
, 'bond'
, и 'fra'
Инструментальные типы, заданное использование N
- 1
массив ячеек (где N
количество инструментов), указание, какой инструмент находится в Instruments
матрица. Приемлемыми значениями является 'deposit'
, 'futures'
подкачка
, 'bond'
, и 'fra'
.
Типы данных: char |
cell
Instruments
— Инструменты Инструменты в виде N
- 3
матрица данных для Instruments
где первым столбцом является Settle
дата, вторым столбцом является Maturity
, и третий столбец является рыночной котировкой (датами должен быть MATLAB® числа даты). Рыночная котировка представляет следующее для каждого инструмента:
deposit
: уровень
futures
: цена (например, 9628.54)
swap
: уровень
bond
: чистая цена
fra
: форвардный курс
Примечание
Instruments
введите для fra
и для futures
отличаются. А именно, форвардный курс, лежащий в основе fra
запускается на дату начала (столбец 1 Instruments
) и концы на дату окончания (столбец 2 Instruments
). В то время как форвардный курс, лежащий в основе futures
заключите контракт запускается в дату погашения futures
заключите контракт и концы в дату n спустя месяцы после futures
зрелость, где n является периодичностью futures
контракт.
Типы данных: double
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
DCurve = IRDataCurve.bootstrap('Forward',CurveSettle,InstrumentTypes,Instruments,'InterpMethod','pchip')
Compounding
— Соединение частоты в год для IRDataCurve
объектCurveObj.Compounding
(значение по умолчанию) | возможные значения включает: –1
, 0
, 1
, 2
, 3
, 4
, 6
, 12
.Соединение частоты в год для IRDataCurve
объект в виде разделенной запятой пары, состоящей из '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
InterpMethod
метод интерполяции'linear'
(значение по умолчанию) | вектор символов со значениями 'linear'
, 'cubic'
pchip
, или 'spline'
Метод интерполяции в виде разделенной запятой пары, состоящей из 'InterpMethod'
и скалярный вектор символов. Для получения дополнительной информации о методах интерполяции смотрите interp1
.
Типы данных: char
IRBootstrapOptionsObj
— Объект IRBootstrapOptions[]
(значение по умолчанию) | IRBootstrapOptions
объектОбъект IRBootstrapOptions в виде разделенной запятой пары, состоящей из 'IRBootstrapOptionsObj'
и IRBootstrapOptions
возразите ранее созданному использованию IRBootStrapOptions
.
Типы данных: object
DiscountCurve
— RateSpec
для кривой, используемой к дисконтированным потокам денежных средств[]
(значение по умолчанию) | RateSpec
объектRateSpec
для кривой, используемой к дисконтированным потокам денежных средств в виде разделенной запятой пары, состоящей из 'DiscountCurve'
и RateSpec
возразите ранее созданному использованию intenvset
или toRateSpec
.
Типы данных: object
InstrumentCouponRate
— Годовая процентная ставка, чтобы определить купоны, подлежащие оплате на инструменте[]
(значение по умолчанию) | десятичное числоГодовая процентная ставка, чтобы определить купоны, подлежащие оплате на инструменте в виде разделенной запятой пары, состоящей из 'InstrumentCouponRate'
и скалярное десятичное значение.
Типы данных: 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
пары "имя-значение", можно задать простой процент для Instrument
путем определения InstrumentPeriod
значение как 0
. Если InstrumentBasis
и InstrumentPeriod
не заданы для Instrument
, следующие значения по умолчанию используются:
deposit
инструмент использует InstrumentBasis
как 2
(действие/360) и InstrumentPeriod
0
(простой процент).
futures
инструмент использует InstrumentBasis
как 2
(действие/360) и InstrumentPeriod
4
(ежеквартально).
swap
инструмент использует InstrumentBasis
как 2
(действие/360) и InstrumentPeriod
2
.
bond
инструмент использует InstrumentBasis
как 0
(действие/действие) и InstrumentPeriod
2
.
FRA
инструмент использует InstrumentBasis
как 2
(действие/360) и InstrumentPeriod
4
(ежеквартально).
DCurve
— Кривая процентной ставки из данных о рынкеКривая процентной ставки из данных о рынке, возвращенных как структура.
IRDataCurve
| IRBootStrapOptions
| toRateSpec
| getForwardRates
| getZeroRates
| getDiscountFactors
| getParYields
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.