Ценовой инструмент подкачки от дерева процентной ставки Кокса-Инджерсолла-Росса
[Price,PriceTree,SwapRate]
= swapbycir(CIRTree,LegRate,Settle,Maturity)
[Price,PriceTree,SwapRate]
= swapbycir(___,Name,Value)
[
оценивает инструмент подкачки от Кокса-Инджерсолла-Росса (CIR) дерево процентной ставки. Price
,PriceTree
,SwapRate
]
= swapbycir(CIRTree
,LegRate
,Settle
,Maturity
)swapbycir
вычисляет цены подкачек ванили, амортизируя подкачки, и вперед подкачивает использование модели CIR ++ с подходом Навалька-Беляевой (NB).
[
добавляют дополнительные аргументы пары "имя-значение".Price
,PriceTree
,SwapRate
]
= swapbycir(___,Name,Value
)
Задайте подкачку процентной ставки с фиксированным участком получения и плавающим участком оплаты. Платежи осуществлены один раз в год, и отвлеченная основная сумма составляет 100$.
Basis = 0; Principal = 100; LegRate = [0.06 20]; % [CouponRate Spread] LegType = [1 0]; % [Fixed Float] LegReset = [1 1]; % Payments once per year
Создайте RateSpec
с помощью функции intenvset
.
Rates = [0.035; 0.042147; 0.047345; 0.052707]; Dates = {'Jan-1-2017'; 'Jan-1-2018'; 'Jan-1-2019'; 'Jan-1-2020'; 'Jan-1-2021'}; ValuationDate = 'Jan-1-2017'; EndDates = Dates(2:end)'; Compounding = 1; RateSpec = intenvset('ValuationDate', ValuationDate, 'StartDates', ValuationDate, 'EndDates',EndDates,'Rates', Rates, 'Compounding', Compounding);
Создайте дерево CIR
.
NumPeriods = 5; Alpha = 0.03; Theta = 0.02; Sigma = 0.1; Settle = '01-Jan-2017'; Maturity = '01-Jan-2022'; CIRTimeSpec = cirtimespec(ValuationDate, Maturity, NumPeriods); CIRVolSpec = cirvolspec(Sigma, Alpha, Theta); CIRT = cirtree(CIRVolSpec, RateSpec, CIRTimeSpec)
CIRT = struct with fields:
FinObj: 'CIRFwdTree'
VolSpec: [1x1 struct]
TimeSpec: [1x1 struct]
RateSpec: [1x1 struct]
tObs: [0 1 2 3 4]
dObs: [736696 737061 737426 737791 738156]
FwdTree: {1x5 cell}
Connect: {[3x1 double] [3x3 double] [3x5 double] [3x7 double]}
Probs: {[3x1 double] [3x3 double] [3x5 double] [3x7 double]}
Оцените подкачку процентной ставки.
[Price,PriceTree] = swapbycir(CIRT,LegRate,Settle,Maturity,'LegReset',LegReset,'Basis',3,'Principal',100,'LegType',LegType)
Price = 2.5522
PriceTree = struct with fields:
FinObj: 'CIRPriceTree'
tObs: [0 1 2 3 4 5]
PTree: {1x6 cell}
Connect: {[3x1 double] [3x3 double] [3x5 double] [3x7 double]}
CIRTree
— Структура процентной ставкиДревовидная структура процентной ставки, созданная cirtree
Типы данных: struct
LegRate
— Уровень участкаУровень участка, заданный как NINST
-by-2
матрица, с каждой строкой, заданной как одно из следующего:
[CouponRate Spread]
(фиксированное плавание)
[Spread CouponRate]
(зафиксирован плаванием)
[CouponRate CouponRate]
(фиксировано зафиксирован)
[Spread Spread]
(плавание плавающее)
CouponRate
является десятичным годовым показателем. Spread
является количеством пунктов по ссылочному уровню. Первый столбец представляет участок получения, в то время как второй столбец представляет участок оплаты.
Типы данных: double
Settle
— Расчетный деньРасчетный день, заданный или как скаляр или как NINST
-by-1
вектор последовательных чисел даты, векторов символов даты, строковых массивов или массивов datetime.
Дата Settle
каждой подкачки назначена к ValuationDate
дерева CIR. Аргумент Settle
подкачки проигнорирован.
Типы данных: char
| double
| string
| datetime
Maturity
— Дата погашенияДата погашения, заданная как NINST
-by-1
вектор последовательных чисел даты, векторов символов даты, строковых массивов или массивов datetime, представляющих дату погашения для каждой подкачки.
Типы данных: char
| double
| string
| datetime
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
[Price,PriceTree,SwapRate] = swapbycir(CIRTree,LegRate,Settle,Maturity,LegReset,Basis,Principal,LegType)
'LegReset'
— Сбросьте частоту в год для каждой подкачки[1 1]
(значение по умолчанию) | векторСбросьте частоту в год для каждой подкачки, заданной как пара, разделенная запятой, состоящая из 'LegReset'
и NINST
-by-2
вектор.
Типы данных: double
'Basis'
— Основание дневного количества, представляющее основание для каждого участка0
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
до 13
Основание дневного количества, представляющее основание для каждого участка, заданного как пара, разделенная запятой, состоящая из 'Basis'
и NINST
-by-1
массив (или NINST
-by-2
, если 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
'Principal'
— Отвлеченные основные суммы или основные расписания значения100
(значение по умолчанию) | векторный массив или массив ячеекОтвлеченные основные суммы или основные расписания значения, заданные как пара, разделенная запятой, состоящая из 'Principal'
и векторного массива или массива ячеек.
Principal
принимает NINST
-by-1
вектор или NINST
-by-1
массив ячеек (или NINST
-by-2
, если Principal
отличается для каждого участка) отвлеченных основных сумм или основных расписаний значения. Для расписаний каждым элементом массива ячеек является NumDates
-by-2
массив, где первый столбец является датами, и второй столбец является своим связанным отвлеченным основным значением. Дата указывает в последний день, что основное значение допустимо.
Типы данных: cell
| double
'LegType'
— Тип участка[1 0]
для каждого инструмента (значение по умолчанию) | матрица со значениями (фиксировано зафиксированный) [1 1]
, [1 0]
(фиксированное плавание), [0 1]
(зафиксированный плаванием), или [0 0]
(плавание плавающее)Тип участка, заданный как пара, разделенная запятой, состоящая из 'LegType'
и NINST
-by-2
матрица со значениями:
[1 1]
(фиксировано зафиксированная) подкачка
[1 0]
подкачка (фиксировано-плавающая)
[0 1]
(зафиксированная плаванием) подкачка
[0 0]
подкачка (плавающая плавающая)
Каждая строка представляет инструмент. Каждый столбец указывает, фиксируется ли соответствующий участок (1
) или плавающий (0
). Эта матрица задает интерпретацию значений, вводимых в LegRate
.
Типы данных: double
'EndMonthRule'
— Правило конца месяца отмечает для генерации дат, когда Maturity
является датой конца месяца в течение месяца, имея 30 или меньше дней1
(в действительности) (значение по умолчанию) | неотрицательный целочисленный [0,1]
Правило конца месяца отмечает для генерации дат, когда Maturity
является датой конца месяца в течение месяца, имея 30 или меньше дней, заданных как пара, разделенная запятой, состоящая из 'EndMonthRule'
и неотрицательного целого числа [0
, 1
] использование NINST
-by-1
(или NINST
-by-2
, если EndMonthRule
отличается для каждого участка).
0
= Игнорирует правило, означая, что платежный день всегда является тем же числовым днем месяца.
1
= Установленное правило о, означая, что платежный день всегда является прошлым фактическим днем месяца.
Типы данных: логический
'AdjustCashFlowsBasis'
— Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периодаfalse
(значение по умолчанию) | значение (FALSE) 0
или (TRUE) 1
Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода, заданного как пара, разделенная запятой, состоящая из 'AdjustCashFlowsBasis'
и NINST
-by-1
(или NINST
-by-2
, если AdjustCashFlowsBasis
отличается для каждого участка) logicals со значениями (FALSE) 0
или (TRUE) 1
.
Типы данных: логический
'BusinessDayConvention'
— Соглашения рабочего дняactual
(значение по умолчанию) | вектор символов | массив ячеек из символьных векторовСоглашения рабочего дня, заданные как пара, разделенная запятой, состоящая из 'BusinessDayConvention'
и вектора символов или N
-by-1
(или NINST
-by-2
, если BusinessDayConvention
отличается для каждого участка), массив ячеек из символьных векторов соглашений рабочего дня. Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Значения:
actual
— Нерабочие дни эффективно проигнорированы. Потоки наличности, которые падают в нерабочие дни, приняты, чтобы быть распределенными в фактическую дату.
follow
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день.
modifiedfollow
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день. Однако, если следующий рабочий день находится в различном месяце, предыдущий рабочий день принят вместо этого.
previous
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день.
modifiedprevious
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в различном месяце, следующий рабочий день принят вместо этого.
Типы данных: char | cell
'Holidays'
— Праздники используются в вычислении рабочих днейholidays.m
(значение по умолчанию) | числа даты MATLAB®Праздники используются в вычислении рабочих дней, заданных как пара, разделенная запятой, состоящая из 'Holidays'
и чисел даты MATLAB с помощью NHolidays
-by-1
вектор.
Типы данных: double
'StartDate'
— Подкачка даты на самом деле запускаетсяSettle
(значение по умолчанию) | последовательный номер даты | вектор символов | массив строк | datetimeПодкачка даты на самом деле запускается, заданный как пара, разделенная запятой, состоящая из 'StartDate'
и NINST
-by-1
вектор дат с помощью последовательного номера даты, вектора символов, массива строк или массива строк.
Используйте этот аргумент, чтобы оценить прямые подкачки, то есть, подкачки, которые запускаются на будущей дате
Типы данных: char
| double
| string
| datetime
Price
— Ожидаемые цены подкачки во время 0Ожидаемые цены подкачки во время 0, возвращенный как NINST
-by-1
вектор.
PriceTree
— Древовидная структура цен на инструментыДревовидная структура цен на инструменты, возвращенных как структура MATLAB деревьев, содержащих векторы swaption цен на инструменты и вектор времен наблюдения для каждого узла. В PriceTree
:
PriceTree.tObs
содержит времена наблюдения.
PriceTree.PTree
содержит чистые цены.
SwapRate
— Уровни, применимые к фиксированному участкуУровни, применимые к фиксированному участку, возвращенному как NINST
-by-1
вектор уровней, применимых к фиксированному участку, таким образом, что значения подкачек являются нулем во время 0. Этот уровень используется в вычислении цен подкачек, когда уровнем, заданным для фиксированного участка в LegRate
, является NaN
. Вывод SwapRate
дополнен NaN
для тех инструментов, в которых CouponRate
не установлен в NaN
.
В подкачке амортизации отвлеченный принципал периодически уменьшается, потому что он связывается к базовому финансовому инструменту со снижением (амортизирующим) основной баланс, такой как ипотека.
Соглашение ввести в процентную ставку подкачивает расположение относительно установленной даты в будущем.
[1] Cox, J., Ингерсолл, J. и С. Росс. "Теория термина структура процентных ставок". Econometrica. Издание 53, 1985.
[2] Brigo, D. и Ф. Меркурио. Модели процентной ставки - теория и практика. Финансы Спрингера, 2006.
[3] Hirsa, A. Вычислительные методы в финансах. Нажатие CRC, 2012.
[4] Nawalka, S., Soto, G. и Н. Беляева. Динамическое моделирование структуры термина. Вайли, 2007.
[5] Нельсон, D. и К. Рамасвами. "Простые Биномиальные Процессы как Приближения Диффузии в Финансовых Моделях". Анализ Финансовых Исследований. Vol 3. 1990, стр 393–430.
bondbycir
| capbycir
| cfbycir
| fixedbycir
| floatbycir
| floorbycir
| instswap
| oasbycir
| optbndbycir
| optembndbycir
| optemfloatbycir
| optfloatbycir
| rangefloatbycir
| swaptionbycir
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.