Цена с плавающей ставкой из дерева процентных ставок Heath-Jarrow-Morton
[
цены в купюре с плавающей ставкой из дерева процентных ставок Heath-Jarrow-Morton. Price
,PriceTree
]
= floatbyhjm(HJMTree
,Spread
,Settle
,Maturity
)
floatbyhjm
вычисляет цены ванильных купюр с плавающей ставкой, амортизирующих купюр с плавающей ставкой, купюр с ограниченной плавающей ставкой, купюр с плавающей ставкой и банкнот с фиксированной плавающей ставкой.
[
добавляет дополнительные аргументы пары "имя-значение".Price
,PriceTree
]
= floatbyhjm(___,Name,Value
)
Оцените 20-базовую записку точки плавающей ставкой с помощью дерева прямой ставки HJM.
Загрузите файл deriv.mat
, который обеспечивает HJMTree
. The HJMTree
структура содержит информацию о времени и процентной ставке, необходимую для оценки банкноты.
load deriv.mat;
Определите примечание с плавающей скоростью с помощью необходимых аргументов. Другие аргументы используют значения по умолчанию.
Spread = 20; Settle = '01-Jan-2000'; Maturity = '01-Jan-2003';
Использование floatbyhjm
для вычисления цены примечания.
Price = floatbyhjm(HJMTree, Spread, Settle, Maturity)
Price = 100.5529
Оцените амортизирующую ноту с плавающей ставкой с помощью Principal
входной параметр для определения графика амортизации.
Создайте RateSpec
.
Rates = [0.03583; 0.042147; 0.047345; 0.052707; 0.054302]; ValuationDate = '15-Nov-2011'; StartDates = ValuationDate; EndDates = {'15-Nov-2012';'15-Nov-2013';'15-Nov-2014' ;'15-Nov-2015';'15-Nov-2016'}; Compounding = 1; RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: [5x1 double]
Rates: [5x1 double]
EndTimes: [5x1 double]
StartTimes: [5x1 double]
EndDates: [5x1 double]
StartDates: 734822
ValuationDate: 734822
Basis: 0
EndMonthRule: 1
Создайте инструмент с плавающей скоростью с помощью следующих данных:
Settle ='15-Nov-2011'; Maturity = '15-Nov-2015'; Spread = 15;
Задайте график амортизации примечания с плавающей скоростью.
Principal ={{'15-Nov-2012' 100;'15-Nov-2013' 70;'15-Nov-2014' 40;'15-Nov-2015' 10}};
Создайте дерево HJM с помощью следующих данных:
MatDates = {'15-Nov-2012'; '15-Nov-2013';'15-Nov-2014';'15-Nov-2015';'15-Nov-2016';'15-Nov-2017'}; HJMTimeSpec = hjmtimespec(RateSpec.ValuationDate, MatDates); Volatility = [.10; .08; .06; .04]; CurveTerm = [ 1; 2; 3; 4]; HJMVolSpec = hjmvolspec('Proportional', Volatility, CurveTerm, 1e6); HJMT = hjmtree(HJMVolSpec,RateSpec,HJMTimeSpec);
Вычислите цену амортизирующей ноты с плавающей скоростью.
Price = floatbyhjm(HJMT, Spread, Settle, Maturity, 'Principal', Principal)
Price = 100.3059
Оцените ошейник с запиской с плавающей ставкой с помощью CapRate
и FloorRate
входной параметр для определения ценообразования ошейника.
Оцените портфель записок с плавающей ставкой с помощью следующих данных:
Rates = [0.0287; 0.03024; 0.03345; 0.03861; 0.04033]; ValuationDate = '1-April-2012'; StartDates = ValuationDate; EndDates = {'1-April-2013';'1-April-2014';'1-April-2015' ;... '1-April-2016';'1-April-2017'}; Compounding = 1;
Создайте RateSpec
.
RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding);
Создайте дерево HJM со следующими данными:
MatDates = {'1-April-2013'; '1-April-2014';'1-April-2015';... '1-April-2016';'1-April-2017';'1-April-2018'}; HJMTimeSpec = hjmtimespec(RateSpec.ValuationDate, MatDates); Volatility = [.10; .08; .06; .04]; CurveTerm = [ 1; 2; 3; 4]; HJMVolSpec = hjmvolspec('Proportional', Volatility, CurveTerm, 1e6); HJMT = hjmtree(HJMVolSpec,RateSpec,HJMTimeSpec);
Создайте инструмент ноты с плавающей скоростью.
Settle ='1-April-2012'; Maturity = '1-April-2016'; Spread = 10; Principal = 100;
Вычислите цену двух ограниченных кавычек с плавающей ставкой.
CapStrike = [0.04;0.055]; PriceCapped = floatbyhjm(HJMT, Spread, Settle, Maturity,... 'CapRate', CapStrike)
PriceCapped = 2×1
98.9986
100.2051
Вычислите цену двух записок с плавающей ставкой.
FloorStrike = [0.035;0.040]; PriceCollared = floatbyhjm(HJMT, Spread, Settle, Maturity,... 'CapRate', CapStrike, 'FloorRate', FloorStrike)
PriceCollared = 2×1
99.9246
102.2321
HJMTree
- Структура процентной ставкиДревовидная структура процентной ставки, созданная hjmtree
Типы данных: struct
Spread
- Количество базисных точек над базисной ставкойКоличество базисных точек над скоростью ссылки, заданное как NINST
-by- 1
вектор.
Типы данных: double
Settle
- Дата расчетаДата расчета, заданная в виде скаляра или NINST
-by- 1
вектор серийных номеров дат или векторов символов дат.
The Settle
дата для каждой ноты с плавающей скоростью устанавливается в ValuationDate
дерева HJM. Аргумент ноты с плавающей скоростью Settle
игнорируется.
Типы данных: char
| double
Maturity
- Дата погашенияДата зрелости, заданная как NINST
-by- 1
вектор серийных номеров дат или векторов символов дат, представляющих дату погашения для каждой ноты с плавающей скоростью.
Типы данных: char
| double
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
[Price,PriceTree] = floatbyhjm(HJMTree,Spread,Settle,Maturity,'Basis',3)
'FloatReset'
- Периодичность платежей в год1
(по умолчанию) | векторЧастота платежей в год, заданная как разделенная разделенными запятой парами, состоящая из 'FloatReset'
и a NINST
-by- 1
вектор.
Примечание
Платежи по купюрам с плавающей ставкой (FRN) определяются эффективной процентной ставкой между датами сброса. Если период сброса для FRN охватывает более одного уровня дерева, вычисление платежа становится невозможным из-за рекомбинантного характера дерева. То есть древовидный путь, соединяющий две последовательные даты сброса, не может быть однозначно определен, поскольку существует несколько возможных путей для соединения двух дат платежа.
Типы данных: double
'Basis'
- базис подсчета дней 0
(фактический/фактический) (по умолчанию) | целое число от 0
на 13
Базис отсчета дней, представляющий базис, используемый при аннуализации входа дерева прямой скорости, заданный как разделенная запятой пара, состоящий из 'Basis'
и a NINST
-by- 1
вектор.
0 = факт/факт
1 = 30/360 (SIA)
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 = BUS/252
Для получения дополнительной информации см. раздел Базиса.
Типы данных: double
'Principal'
- Условные суммы основной суммы или графики основного значения100
(по умолчанию) | вектор или массив ячеекУсловные основные суммы, заданные как разделенная разделенными запятой парами, состоящая из 'Principal'
и вектор или массив ячеек.
Principal
принимает NINST
-by- 1
вектор или NINST
-by- 1
массив ячеек, где каждый элемент массива ячеек является NumDates
-by- 2
массив ячеек и первый столбец - даты, а второй - связанное с ним условное основное значение. Дата указывает на последний день действия основного значения.
Типы данных: cell
| double
'Options'
- Структура деривативных опционов ценообразованияСтруктура опций ценообразования производных, заданная как разделенная разделенными запятой парами, состоящая из 'Options'
и структуру, использующую derivset
.
Типы данных: struct
'EndMonthRule'
- Флаг правила конца месяца для генерации дат при Maturity
является датой конца месяца для месяца, имеющего 30 или менее дней1
(в действии) (по умолчанию) | неотрицательное целое число [0,1]
Флаг правила конца месяца для генерации дат при Maturity
- дата конца месяца для месяца, имеющего 30 или менее дней, заданная как разделенная разделенными запятой парами, состоящая из 'EndMonthRule'
и неотрицательное целое число [0
, 1
] использование NINST
-by- 1
вектор.
0
= Игнорировать правило, означающее, что дата платежа всегда является одним и тем же числовым днем месяца.
1
= Установите правило, означающее, что дата платежа всегда является последним фактическим днем месяца.
Типы данных: logical
'AdjustCashFlowsBasis'
- Флаг для корректировки денежных потоков на основе фактического количества дней периодаfalse
(по умолчанию) | значение 0
(false) или 1
ПравдаФлаг для корректировки денежных потоков на основе фактического количества дней периода, заданный как разделенная разделенными запятой парами, состоящая из 'AdjustCashFlowsBasis'
и a NINST
-by- 1
вектор логических единиц со значениями 0
(false) или 1
Правда.
Типы данных: logical
'Holidays'
- Праздничные дни, используемые в рабочих дняхholidays.m
(по умолчанию) | MATLAB® номера датПраздничные дни, используемые в вычислении рабочих дней, заданные как разделенная разделенными запятой парами, состоящая из 'Holidays'
и номера дат MATLAB с использованием NHolidays
-by- 1
вектор.
Типы данных: double
'BusinessDayConvention'
- Договоры о рабочих дняхactual
(по умолчанию) | вектор символов | массив ячеек из векторов символовСоглашения о рабочих днях, заданные как разделенная разделенными запятой парами, состоящая из 'BusinessDayConvention'
и вектор символов или N
-by- 1
массив ячеек из векторов символов соглашений о рабочих днях. Выбор для соглашения о рабочих днях определяет режим обработки нерабочих дней. Нерабочие дни определяются как выходные дни плюс любая другая дата, когда предприятия не открыты (например, установленные законом праздничные дни). Значения:
actual
- Нерабочие дни фактически игнорируются. Денежные потоки, которые приходятся на нерабочие дни, считаются распределенными на фактическую дату.
follow
- Денежные потоки, которые приходятся на нерабочий день, принимаются распределенными на следующий рабочий день.
modifiedfollow
- Денежные потоки, которые приходятся на нерабочий день, принимаются распределенными на следующий рабочий день. Однако если следующий рабочий день находится в другом месяце, то вместо этого принимается предыдущий рабочий день.
previous
- Денежные потоки, которые приходятся на нерабочий день, принимаются распределенными в предыдущий рабочий день.
modifiedprevious
- Денежные потоки, которые приходятся на нерабочий день, принимаются распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в другом месяце, вместо этого принимается следующий рабочий день.
Типы данных: char
| cell
'CapRate'
- Годовая предельная ставкаГодовая скорость прописной буквы, заданная как разделенная разделенными запятой парами, состоящая из 'CapRate'
и a NINST
-by- 1
десятичный годовой темп или NINST
-by- 1
массив ячеек, где каждый элемент является NumDates
-by- 2
массив ячеек, и первый столбец массива ячеек является датами, а второй столбец - связанными скоростями прописной буквы. Дата указывает на последний день действия предельной ставки.
Типы данных: double
| cell
'FloorRate'
- Годовая минимальная ставкаГодовая минимальная ставка, заданная как разделенная разделенными запятой парами, состоящая из 'FloorRate'
и a NINST
-by- 1
десятичный годовой темп или NINST
-by- 1
массив ячеек, где каждый элемент является NumDates
-by- 2
массив ячеек, и первый столбец массива ячеек является датами, а второй столбец - связанными скоростями этажа. Дата указывает на последний день действия минимальной ставки.
Типы данных: double
| cell
Price
- Ожидаемые цены с плавающей ставкой на момент 0Ожидаемые цены ноты с плавающей ставкой в момент 0, возвращенные как NINST
-by- 1
вектор.
PriceTree
- Древовидная структура цен на приборыДревовидная структура цен на приборы, возвращаемая как структура MATLAB деревьев, содержащая векторы цен на приборы и начисленных процентов, и вектор времени наблюдения для каждого узла. Внутри PriceTree
:
PriceTree.PBush
содержит чистые цены.
PriceTree.AIBush
содержит начисленные проценты.
PriceTree.tObs
содержит время наблюдения.
floating-rate note является обеспечением, подобным облигации, но процентная ставка банкноты периодически сбрасывается относительно ссылки индекса ставки, чтобы отразить колебания рыночных процентных ставок.
bondbyhjm
| capbyhjm
| cfbyhjm
| fixedbyhjm
| floorbyhjm
| hjmtree
| swapbyhjm
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.