Ценовое долговое обязательство с плавающей ставкой от Белого как оболочка дерева процентной ставки
[Price,PriceTree]
= floatbyhw(HWTree,Spread,Settle,Maturity)
[Price,PriceTree]
= floatbyhw(___,Name,Value)
[
оценивает долговое обязательство с плавающей ставкой от Белого как оболочка дерева процентной ставки. Price
,PriceTree
]
= floatbyhw(HWTree
,Spread
,Settle
,Maturity
)
floatbyhw
вычисляет цены долговых обязательств с плавающей ставкой ванили, амортизируя долговые обязательства с плавающей ставкой, ограниченные долговые обязательства с плавающей ставкой, поставил в тупик долговые обязательства с плавающей ставкой и закрепил долговые обязательства с плавающей ставкой кольцом.
[
добавляют дополнительные аргументы пары "имя-значение".Price
,PriceTree
]
= floatbyhw(___,Name,Value
)
Оцените долговое обязательство с плавающей ставкой на 20 пунктов с помощью Белого как оболочка дерева процентной ставки.
Загрузите файл deriv.mat
, который обеспечивает HWTree
. Структура HWTree
содержит время, и информация о процентной ставке должна была оценить примечание.
load deriv.mat;
Задайте долговое обязательство с плавающей ставкой с помощью обязательных аргументов. Другие аргументы используют значения по умолчанию.
Spread = 20; Settle = '01-Jan-2004'; Maturity = '01-Jan-2007';
Используйте floatbyhw
, чтобы вычислить цену примечания.
Price = floatbyhw(HWTree, Spread, Settle, Maturity)
Price = 100.5618
Оцените долговое обязательство с плавающей ставкой амортизации с помощью входного параметра 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}};
Создайте дерево HW и примите, что энергозависимость составляет 10%.
VolDates = ['15-Nov-2012'; '15-Nov-2013';'15-Nov-2014';'15-Nov-2015';'15-Nov-2016';'15-Nov-2017']; VolCurve = 0.1; AlphaDates = '15-Nov-2017'; AlphaCurve = 0.1; HWVolSpec = hwvolspec(RateSpec.ValuationDate, VolDates, VolCurve,... AlphaDates, AlphaCurve); HWTimeSpec = hwtimespec(RateSpec.ValuationDate, VolDates, Compounding); HWT = hwtree(HWVolSpec, RateSpec, HWTimeSpec);
Вычислите цену долгового обязательства с плавающей ставкой амортизации.
Price = floatbyhw(HWT, 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);
Создайте дерево HW и примите энергозависимость, чтобы быть 5%.
VolDates = ['1-April-2013';'1-April-2014';'1-April-2015';... '1-April-2016';'1-April-2017';'1-April-2018']; VolCurve = 0.05; AlphaDates = '15-Nov-2018'; AlphaCurve = 0.1; HWVolSpec = hwvolspec(RateSpec.ValuationDate, VolDates, VolCurve,... AlphaDates, AlphaCurve); HWTimeSpec = hwtimespec(RateSpec.ValuationDate, VolDates, Compounding); HWT = hwtree(HWVolSpec, RateSpec, HWTimeSpec);
Создайте инструмент долгового обязательства с плавающей ставкой.
Settle ='1-April-2012'; Maturity = '1-April-2016'; Spread = 10; Principal = 100;
Вычислите цену плавающего предмета ванили.
Price = floatbyhw(HWT, Spread, Settle, Maturity)
Price = 100.3680
Вычислите цену долговых обязательств с плавающей ставкой с воротником.
CapStrike = {{'1-April-2014' 0.045; '1-April-2015' 0.05;... '1-April-2016' 0.06}; 0.06}; FloorStrike = {{'1-April-2014' 0.035; '1-April-2015' 0.04;... '1-April-2016' 0.05}; 0.03}; PriceCollared = floatbyhw(HWT, Spread, Settle, Maturity,.... 'CapRate', CapStrike,'FloorRate', FloorStrike)
PriceCollared = 2×1
102.0458
100.9299
При использовании floatbyhw
, чтобы оценить долговые обязательства с плавающей ставкой, существуют случаи, где даты, заданные в дереве HW TimeSpec
, не выравниваются с датами потока наличности.
Ценовые долговые обязательства с плавающей ставкой с помощью следующих данных:
ValuationDate = '01-Sep-2013'; Rates = [0.0001; 0.0001; 0.0010; 0.0015]; EndDates = ['01-Dec-2013'; '01-Mar-2014'; '01-Jun-2014'; '01-Sep-2014'];
Создайте RateSpec
.
RateSpec = intenvset('ValuationDate',ValuationDate,'StartDates',... ValuationDate,'EndDates',EndDates,'Rates',Rates,'Compounding', 1);
Создайте дерево HW.
Volcurve = 0.1; Alpha = 0.01; HWVolatilitySpec = hwvolspec(RateSpec.ValuationDate, ... EndDates, Volcurve,... EndDates, Alpha); HWTimeSpec = hwtimespec(RateSpec.ValuationDate, EndDates, 1); HWT = hwtree(HWVolatilitySpec, RateSpec, HWTimeSpec);
Вычислите цену долгового обязательства с плавающей ставкой с помощью следующих данных.
Spread = 10; Settle = '01-Sep-2013'; Maturity = '01-Jun-2014'; Reset = 2; Price = floatbyhw(HWT, Spread, Settle, Maturity, 'FloatReset', Reset)
Error using floatengbytrintree (line 318) Instrument '1 ' has cash flow dates that span across tree nodes. Error in floatbyhw (line 136) [Price, PriceTree, CFTree] = floatengbytrintree(HWTree, Spread, Settle, Maturity, OArgs{:});
Эта ошибка указывает, что не возможно решить, что применимый уровень раньше вычислял выплату в даты сброса, учитывая, что применимый необходимый уровень не может быть вычислен (информация была потеряна из-за recombination древовидных узлов). Отметьте, если период сброса для FRN охватывает больше чем один древовидный уровень, вычисление оплаты становится невозможным из-за повторно объединяющейся природы дерева. Таким образом, древовидный путь, соединяющий две последовательных даты сброса, не может быть исключительно определен, потому что существует больше чем один возможный путь для соединения этих двух платежных дней. Простое решение должно поместить древовидные уровни в даты потока наличности инструмента, который сделан путем определения HWTimeSpec
. Также приемлемо сбросить даты между древовидными уровнями, пока существуют даты сброса на древовидных уровнях.
Чтобы восстановиться с этой ошибки, создайте дерево, которое выстраивается в линию с инструментом.
Basis = intenvget(RateSpec, 'Basis'); EOM = intenvget(RateSpec, 'EndMonthRule'); resetDates = cfdates(ValuationDate, Maturity, Reset, Basis, EOM); HWTimeSpec = hwtimespec(RateSpec.ValuationDate,resetDates, Reset); HWT = hwtree(HWVolatilitySpec, RateSpec, HWTimeSpec); Price = floatbyhw(HWT, Spread, RateSpec.ValuationDate, ... Maturity, 'FloatReset', Reset)
Price = 100.0748
HWTree
— Структура процентной ставкиДревовидная структура процентной ставки, созданная hwtree
Типы данных: struct
Spread
— Количество пунктов по ссылочному уровнюКоличество пунктов по ссылочному уровню, заданному как NINST
-by-1
вектор.
Типы данных: double
Settle
— Расчетный деньРасчетный день, заданный или как скаляр или как NINST
-by-1
вектор последовательных чисел даты или векторов символов даты.
Дата Settle
каждого долгового обязательства с плавающей ставкой назначена к ValuationDate
дерева HW. Аргумент Settle
долгового обязательства с плавающей ставкой проигнорирован.
Типы данных: char
| double
Maturity
— Дата погашенияДата погашения, заданная как NINST
-by-1
вектор последовательных чисел даты или векторов символов даты, представляющих дату погашения для каждого долгового обязательства с плавающей ставкой.
Типы данных: char
| double
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение.
Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
[Price,PriceTree] = floatbyhw(HWTree,Spread,Settle,Maturity,'Basis',3)
'FloatReset'
— Частота платежей в год1
(значение по умолчанию) | векторЧастота платежей в год, заданный как пара, разделенная запятой, состоящая из 'FloatReset'
и NINST
-by-1
вектор.
Платежи по долговым обязательствам с плавающей ставкой (FRNs) определяются эффективной процентной ставкой между датами сброса. Если период сброса для FRN охватывает больше чем один древовидный уровень, вычисление оплаты становится невозможным из-за повторно объединяющейся природы дерева. Таким образом, древовидный путь, соединяющий две последовательных даты сброса, не может быть исключительно определен, потому что существует больше чем один возможный путь для соединения этих двух платежных дней.
Типы данных: double
'Basis'
— Дневное основание количества 0
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
до 13
Дневное основание количества, представляющее основание, используемое при пересчитывании на год входного дерева форвардного курса, заданного как пара, разделенная запятой, состоящая из 'Basis'
и NINST
-by-1
вектор.
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
массив ячеек, где каждым элементом массива ячеек является NumDates
-by-2
массив ячеек, и первый столбец является датами, и второй столбец является своим связанным отвлеченным основным значением. Дата указывает в последний день, что основное значение допустимо.
Типы данных: cell
| double
Опции
Производные оценивая структуру опцийПроизводные оценивая структуру опций, заданную как пара, разделенная запятой, состоящая из 'Options'
и структуры с помощью derivset
.
Типы данных: struct
'EndMonthRule'
— Правило конца месяца отмечает для генерации дат, когда Maturity
является датой конца месяца в течение месяца, имея 30 или меньше дней1
(в действительности) (значение по умолчанию) | неотрицательный целочисленный [0,1]
Правило конца месяца отмечает для генерации дат, когда Maturity
является датой конца месяца в течение месяца, имея 30 или меньше дней, заданных как пара, разделенная запятой, состоящая из 'EndMOnthRule'
и неотрицательного целого числа [0
, 1
] использование NINST
-by-1
вектор.
0
= Игнорирует правило, означая, что платежный день всегда является тем же числовым днем месяца.
1
= Установленное правило о, означая, что платежный день всегда является прошлым фактическим днем месяца.
Типы данных: логический
'AdjustCashFlowsBasis'
— Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периодаfalse
(значение по умолчанию) | значение (FALSE) 0
или (TRUE) 1
Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода, заданного как пара, разделенная запятой, состоящая из 'AdjustCashFlowsBasis'
и NINST
-by-1
вектор logicals со значениями (FALSE) 0
или (TRUE) 1
.
Типы данных: логический
'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'
и NINST
-by-1
десятичный годовой показатель или NINST
-by-1
массив ячеек, где каждым элементом является NumDates
-by-2
массив ячеек и массив ячеек первый столбец, является датами, и второй столбец является сопоставленными уровнями прописной буквы. Дата указывает в последний день, что уровень прописной буквы допустим.
Типы данных: double
| cell
'FloorRate'
— Ежегодный уровень полаЕжегодный уровень пола, заданный как пара, разделенная запятой, состоящая из 'FloorRate'
и NINST
-by-1
десятичный годовой показатель или NINST
-by-1
массив ячеек, где каждым элементом является NumDates
-by-2
массив ячеек и массив ячеек первый столбец, является датами, и второй столбец является сопоставленными уровнями пола. Дата указывает в последний день, что уровень пола допустим.
Типы данных: double
| cell
Price
— Ожидаемые цены долгового обязательства с плавающей ставкой во время 0Ожидаемые цены долгового обязательства с плавающей ставкой во время 0, возвращенный как NINST
-by-1
вектор.
PriceTree
— Древовидная структура цен на инструментыДревовидная структура цен на инструменты, возвращенных как структура MATLAB деревьев, содержащих векторы цен на инструменты и начисленных процентов, и вектор времен наблюдения для каждого узла. В PriceTree
:
PriceTree.PTree
содержит чистые цены.
PriceTree.AITree
содержит начисленные проценты.
PriceTree.tObs
содержит времена наблюдения.
PriceTree.Connect
содержит векторы возможности соединения. Каждый элемент в массиве ячеек описывает, как узлы на том уровне соединяются со следующим. Для данного древовидного уровня в векторе существуют элементы NumNodes
, и они содержат индекс узла на следующем уровне, с которым соединяется среднее ответвление. Вычитание 1 от того значения указывает, где подключения-ответвления к, и добавление 1 указали, где вниз переходят подключения к.
PriceTree.Probs
содержит массивы вероятности. Каждый элемент массива ячеек содержит, середина и вероятности перехода вниз для каждого узла уровня.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.