Ценовая записка с плавающей ставкой из дерева процентных ставок Black-Derman-Toy
[ цены плавающей банкноты из дерева процентных ставок Black-Derman-Toy. Price,PriceTree] = floatbybdt(BDTTree,Spread,Settle,Maturity)
floatbybdt вычисляет цены ванильных долговых обязательств с плавающей ставкой, амортизируя долговые обязательства с плавающей ставкой, увенчанные долговые обязательства с плавающей ставкой, поставил в тупик долговые обязательства с плавающей ставкой и схватил долговые обязательства с плавающей ставкой.
[ добавляет дополнительные аргументы пары имя-значение.Price,PriceTree] = floatbybdt(___,Name,Value)
Цена ноты с плавающей ставкой с 20 базисными точками с использованием дерева процентных ставок BDT.
Загрузить файл deriv.mat, что обеспечивает BDTTree. BDTTree структура содержит информацию о времени и процентной ставке, необходимую для оценки ноты.
load deriv.mat;Определите заметку с плавающей ставкой с помощью необходимых аргументов. В других аргументах используются значения по умолчанию.
Spread = 20; Settle = '01-Jan-2000'; Maturity = '01-Jan-2003';
Использовать floatbybdt для вычисления цены примечания.
Price = floatbybdt(BDTTree, Spread, Settle, Maturity)
Price = 100.4865
Цена амортизирующей ноты с плавающей ставкой с использованием 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}};Создайте дерево BDT и предположим, что волатильность составляет 10%.
MatDates = {'15-Nov-2012'; '15-Nov-2013';'15-Nov-2014';'15-Nov-2015';'15-Nov-2016';'15-Nov-2017'};
BDTTimeSpec = bdttimespec(ValuationDate, MatDates);
Volatility = 0.10;
BDTVolSpec = bdtvolspec(ValuationDate, MatDates, Volatility*ones(1,length(MatDates))');
BDTT = bdttree(BDTVolSpec, RateSpec, BDTTimeSpec);Вычислите цену амортизирующей банкноты с плавающей ставкой.
Price = floatbybdt(BDTT, Spread, Settle, Maturity, 'Principal', Principal)Price = 100.3059
Цена ошейника с запиской с плавающей ставкой с использованием CapRate и FloorRate входной аргумент для определения цены ошейника.
Создать RateSpec.
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);
Построить дерево BDT и предположить волатильность 5%.
MatDates = {'1-April-2013'; '1-April-2014';'1-April-2015';'1-April-2016';'1-April-2017';'1-April-2018'};
BDTTimeSpec = bdttimespec(ValuationDate, MatDates);
Volatility = 0.05;
BDTVolSpec = bdtvolspec(ValuationDate, MatDates, Volatility*ones(1,length(MatDates))');
BDTT = bdttree(BDTVolSpec, RateSpec, BDTTimeSpec);Создайте инструмент банкноты с плавающей ставкой.
Settle ='1-April-2012'; Maturity = '1-April-2016'; Spread = 10; Principal = 100;
Вычислите цену ошеломленной банкноты с плавающей ставкой.
CapStrike = {{'1-April-2013' 0.03; '1-April-2015' 0.055}};
FloorStrike = {{'1-April-2013' 0.025; '1-April-2015' 0.04}};
Price = floatbybdt(BDTT, Spread, Settle, Maturity, 'CapRate',...
CapStrike, 'FloorRate', FloorStrike)Price = 101.2414
При использовании floatbybdt для ценовых примечаний с плавающей ставкой существуют случаи, когда даты указаны в дереве BDT TimeSpec не согласованы с датами денежного потока.
Ценовые примечания с плавающей ставкой с использованием следующих данных:
ValuationDate = '01-Sep-2013'; Rates = [0.0235; 0.0239; 0.0311; 0.0323]; EndDates = {'01-Sep-2014'; '01-Sep-2015'; '01-Sep-2016';'01-Sep-2017'};
Создать RateSpec.
RateSpec = intenvset('ValuationDate',ValuationDate,'StartDates',... ValuationDate,'EndDates',EndDates,'Rates',Rates,'Compounding', 1);
Создайте дерево BDT.
VolCurve = [.10; .11; .11; .12]; BDTVolatilitySpec = bdtvolspec(RateSpec.ValuationDate, EndDates,... VolCurve); BDTTimeSpec = bdttimespec(RateSpec.ValuationDate, EndDates, 1); BDTT = bdttree(BDTVolatilitySpec, RateSpec, BDTTimeSpec);
Вычислите цену ноты с плавающей ставкой, используя следующие данные:
Spread = 5; Settle = '01-Sep-2013'; Maturity = '01-Dec-2015'; Reset = 2; Price = floatbybdt(BDTT, Spread, Settle, Maturity, 'FloatReset', Reset)
Warning: Not all cash flows are aligned with the tree. Result will be approximated.
> In floatengbybdt at 204
In floatbybdt at 123
Error using floatengbybdt (line 299)
Instrument '1 ' has cash flow dates that span across tree nodes.
Error in floatbybdt (line 123)
[Price, PriceTree, CFTree, TLPpal] = floatengbybdt(BDTTree, Spread, Settle, Maturity, OArgs{:});Эта ошибка указывает на то, что невозможно определить применимую ставку, используемую для расчета выплаты в даты сброса, учитывая, что необходимая применимая ставка не может быть вычислена (информация была потеряна из-за рекомбинации узлов дерева). Следует отметить, что если период сброса для FRN охватывает более одного уровня дерева, вычисление платежа становится невозможным из-за рекомбинирующего характера дерева. То есть путь дерева, соединяющий две последовательные даты сброса, не может быть однозначно определен, поскольку существует более одного возможного пути для соединения двух дат платежа. Самым простым решением является размещение уровней дерева в датах денежного потока инструмента, что выполняется путем указания BDTTimeSpec. Также допустимо иметь даты сброса между уровнями дерева, если на уровнях дерева имеются даты сброса.
Для восстановления после этой ошибки создайте дерево, которое выстраивается в линию с инструментом.
Basis = intenvget(RateSpec, 'Basis'); EOM = intenvget(RateSpec, 'EndMonthRule'); resetDates = cfdates(ValuationDate, Maturity, Reset ,Basis, EOM); BDTTimeSpec = bdttimespec(RateSpec.ValuationDate,resetDates,Reset); BDTT = bdttree(BDTVolatilitySpec, RateSpec, BDTTimeSpec); Price = floatbybdt(BDTT, Spread, RateSpec.ValuationDate, ... Maturity, 'FloatReset', Reset)
Price = 100.1087
BDTTree - Структура процентных ставокДревовидная структура процентных ставок, созданная bdttree
Типы данных: struct
Spread - количество базисных пунктов по базисной ставке;Количество базисных пунктов над эталонной ставкой, указанное как NINSTоколо-1 вектор.
Типы данных: double
Settle - Дата расчетаДата расчета, указанная как скаляр или NINSTоколо-1 вектор серийных номеров дат или векторы символов дат.
Settle для каждой заметки с плавающей ставкой устанавливается дата ValuationDate дерева BDT. Аргумент примечания с плавающей ставкой Settle игнорируется.
Типы данных: char | double
Maturity - Дата погашенияДата погашения, указанная как NINSTоколо-1 вектор серийных номеров дат или векторы символов дат, представляющие дату погашения для каждой заметки с плавающей ставкой.
Типы данных: char | double
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
[Price,PriceTree] = floatbybdt(BDTTree,Spread,Settle,Maturity,'Basis',3)'FloatReset' - Периодичность платежей в год1
(по умолчанию) | векторЧастота платежей в год, указанная как разделенная запятыми пара, состоящая из 'FloatReset' и NINSTоколо-1 вектор.
Примечание
Платежи по векселям с плавающей ставкой (FRN) определяются фактической процентной ставкой между датами сброса. Если период сброса для FRN охватывает более одного уровня дерева, вычисление платежа становится невозможным из-за рекомбинирующего характера дерева. То есть путь дерева, соединяющий две последовательные даты сброса, не может быть однозначно определен, поскольку существует более одного возможного пути для соединения двух дат платежа.
Типы данных: double
'Basis' - База подсчета дней 0 (факт/факт) (по умолчанию) | целое число от 0 кому 13База подсчета дней, представляющая основу, используемую при ежегодной классификации входного дерева форвардных ставок, указанного как пара, разделенная запятыми, состоящая из 'Basis' и NINSTоколо-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около-1 вектор или NINSTоколо-1 массив ячеек, где каждый элемент массива ячеек является NumDatesоколо-2 массив ячеек и первый столбец - даты, а второй столбец - связанное с ним условное основное значение. Дата указывает последний день, когда действительным является основное значение.
Типы данных: cell | double
'Options' - Структура опционов на деривативыСтруктура опционов ценообразования деривативов, указанная как пара, разделенная запятыми, состоящая из 'Options' и структура, использующая derivset.
Типы данных: struct
'EndMonthRule' - флаг правила конца месяца для генерации дат, когда Maturity - дата окончания месяца, имеющего 30 или менее дней1 (в действии) (по умолчанию) | неотрицательное целое число [0,1]Флаг правила конца месяца для генерации дат при Maturity - дата окончания месяца, имеющая 30 или менее дней, указанная как пара, разделенная запятыми, состоящая из 'EndMonthRule' и неотрицательное целое число [0, 1] с использованием NINSTоколо-1 вектор.
0 = Игнорировать правило, означающее, что дата платежа всегда совпадает с числовым днем месяца.
1 = Установите правило, означающее, что дата платежа всегда является последним фактическим днем месяца.
Типы данных: logical
'AdjustCashFlowsBasis' - Флажок для корректировки денежных потоков на основе фактического подсчета дней периодаfalse (по умолчанию) | значение 0 (false) или 1 ПравдаФлажок для корректировки денежных потоков на основе фактического количества дней периода, указанного как пара, разделенная запятыми, состоящая из 'AdjustCashFlowsBasis' и NINSTоколо-1 вектор логикалов со значениями 0 (false) или 1 Правда.
Типы данных: logical
'Holidays' - Праздники, используемые в вычислительных рабочих дняхholidays.m (по умолчанию) | Номера дат MATLAB ®Праздники, используемые в вычислительных рабочих днях, указанные как пара, разделенная запятыми, состоящая из 'Holidays' и номера дат MATLAB с использованием NHolidaysоколо-1 вектор.
Типы данных: double
'BusinessDayConvention' - Соглашения по рабочим днямactual (по умолчанию) | символьный вектор | массив ячеек символьных векторовСоглашения о рабочих днях, указанные как пара, разделенная запятыми, состоящая из 'BusinessDayConvention' и вектор символа или Nоколо-1 массив ячеек символьных векторов соглашений о рабочих днях. Выбор соглашения о рабочих днях определяет, как обрабатываются нерабочие дни. Нерабочие дни определяются как выходные дни плюс любая другая дата, когда предприятия не открыты (например, официальные праздники). Значения:
actual - Нерабочие дни фактически игнорируются. Предполагается, что денежные потоки, приходящиеся на нерабочие дни, распределяются на фактическую дату.
follow - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить на следующий рабочий день.
modifiedfollow - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить на следующий рабочий день. Однако если следующий рабочий день находится в другом месяце, вместо него используется предыдущий рабочий день.
previous - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить в предыдущий рабочий день.
modifiedprevious - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить в предыдущий рабочий день. Однако если предыдущий рабочий день находится в другом месяце, вместо него принимается следующий рабочий день.
Типы данных: char | cell
'CapRate' - Годовая предельная ставкаГодовая предельная ставка, указанная как пара, разделенная запятыми, состоящая из 'CapRate' и NINSTоколо-1 десятичная годовая ставка или NINSTоколо-1 массив ячеек, где каждый элемент является NumDatesоколо-2 массив ячеек, и первый столбец массива ячеек - даты, а второй столбец - соответствующие предельные значения. Дата указывает последний день действия предельной ставки.
Типы данных: double | cell
'FloorRate' - Годовая минимальная ставкаГодовая минимальная ставка, указанная как пара, разделенная запятыми, состоящая из 'FloorRate' и NINSTоколо-1 десятичная годовая ставка или NINSTоколо-1 массив ячеек, где каждый элемент является NumDatesоколо-2 массив ячеек, и первый столбец массива ячеек является датами, а второй столбец связан с минимальными скоростями. Дата указывает на последний день действия минимальной ставки.
Типы данных: double | cell
Price - Ожидаемые цены банкнот с плавающей ставкой в момент времени 0Ожидаемые цены нот с плавающей ставкой в момент времени 0, возвращенные как NINSTоколо-1 вектор.
PriceTree - Древовидная структура цен на инструментыДревовидная структура цен инструментов, возвращаемая как структура MATLAB деревьев, содержащих векторы цен инструментов и начисленных процентов, и вектор времени наблюдения для каждого узла. В PriceTree:
PriceTree.PTree содержит чистые цены.
PriceTree.AITree содержит начисленные проценты.
PriceTree.tObs содержит время наблюдения.
Нота с плавающей ставкой - это ценная бумага, подобная облигации, но процентная ставка ноты периодически сбрасывается относительно ссылочной ставки индекса для отражения колебаний рыночных процентных ставок.
bdttree | bondbybdt | capbybdt | cfbybdt | fixedbybdt | floorbybdt | swapbybdt
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.