Ценовая нота с плавающей ставкой из дерева процентных ставок Heath-Jarrow-Morton
[ котирует ноту с плавающей ставкой из дерева процентных ставок Хита-Джарроу-Мортона. Price,PriceTree] = floatbyhjm(HJMTree,Spread,Settle,Maturity)
floatbyhjm вычисляет цены ванильных долговых обязательств с плавающей ставкой, амортизируя долговые обязательства с плавающей ставкой, увенчанные долговые обязательства с плавающей ставкой, поставил в тупик долговые обязательства с плавающей ставкой и схватил долговые обязательства с плавающей ставкой.
[ добавляет дополнительные аргументы пары имя-значение.Price,PriceTree] = floatbyhjm(___,Name,Value)
Оцените 20-базисное примечание с плавающей ставкой с использованием дерева форвардных ставок HJM.
Загрузить файл deriv.mat, что обеспечивает HJMTree. 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около-1 вектор.
Типы данных: double
Settle - Дата расчетаДата расчета, указанная как скаляр или NINSTоколо-1 вектор серийных номеров дат или векторы символов дат.
Settle для каждой заметки с плавающей ставкой устанавливается дата ValuationDate дерева HJM. Аргумент примечания с плавающей ставкой Settle игнорируется.
Типы данных: char | double
Maturity - Дата погашенияДата погашения, указанная как NINSTоколо-1 вектор серийных номеров дат или векторы символов дат, представляющие дату погашения для каждой заметки с плавающей ставкой.
Типы данных: char | double
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
[Price,PriceTree] = floatbyhjm(HJMTree,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.PBush содержит чистые цены.
PriceTree.AIBush содержит начисленные проценты.
PriceTree.tObs содержит время наблюдения.
Нота с плавающей ставкой - это ценная бумага, подобная облигации, но процентная ставка ноты периодически сбрасывается относительно ссылочной ставки индекса для отражения колебаний рыночных процентных ставок.
bondbyhjm | capbyhjm | cfbyhjm | fixedbyhjm | floorbyhjm | hjmtree | swapbyhjm
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.