Ценовая облигация из дерева процентных ставок Heath-Jarrow-Morton
[ добавляет дополнительные аргументы пары "имя-значение".Price,PriceTree]
= bondbyhjm(___,Name,Value)
Цена облигации 4% с помощью дерева процентных ставок HJM.
Загрузка deriv.mat, который обеспечивает HJMTree. The HJMTree структура содержит информацию о времени и процентной ставке, необходимую для ценообразования облигации.
load deriv.mat;Определите связь с помощью необходимых аргументов. Другие аргументы используют значения по умолчанию.
CouponRate = 0.04; Settle = '01-Jan-2000'; Maturity = '01-Jan-2004';
Использование bondbyhjm для вычисления цены облигации.
Period = 1; Price = bondbyhjm(HJMTree, CouponRate, Settle, Maturity, Period)
Price = 97.3600
Цена одиночных ступенчатых купонных облигаций с использованием рыночных данных.
Определите структуру процентной ставки.
Rates = [0.035; 0.042147; 0.047345; 0.052707]; ValuationDate = 'Jan-1-2010'; StartDates = ValuationDate; EndDates = {'Jan-1-2011'; 'Jan-1-2012'; 'Jan-1-2013'; 'Jan-1-2014'}; Compounding = 1;
Создайте RateSpec.
RS = intenvset('ValuationDate', ValuationDate, 'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding);
Создайте инструмент шагового соединения.
Settle = '01-Jan-2010'; Maturity = {'01-Jan-2011';'01-Jan-2012';'01-Jan-2013';'01-Jan-2014'}; CouponRate = {{'01-Jan-2012' .0425;'01-Jan-2014' .0750}}; Period = 1;
Создайте дерево HJM с помощью следующих рыночных данных:
Volatility = [.2; .19; .18; .17];
CurveTerm = [ 1; 2; 3; 4];
HJMTimeSpec = hjmtimespec(ValuationDate, EndDates);
HJMVolSpec = hjmvolspec('Proportional', Volatility, CurveTerm, 1e6);
HJMT = hjmtree(HJMVolSpec,RS,HJMTimeSpec);Рассчитать цену ступенчатых купонных облигаций.
PHJM= bondbyhjm(HJMT, CouponRate, Settle,Maturity , Period)
PHJM = 4×1
100.7246
100.0945
101.5900
102.0820
Цена облигации с графиком амортизации с помощью Face входной параметр для определения расписания.
Определите структуру процентной ставки.
Rates = 0.065; ValuationDate = '1-Jan-2011'; StartDates = ValuationDate; EndDates= '1-Jan-2017'; Compounding = 1;
Создайте RateSpec.
RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: 0.6853
Rates: 0.0650
EndTimes: 6
StartTimes: 0
EndDates: 736696
StartDates: 734504
ValuationDate: 734504
Basis: 0
EndMonthRule: 1
Создайте инструмент облигации. Облигация имеет купонную ставку 7%, срок один год, и созревает по 1-Jan-2017.
CouponRate = 0.07; Settle ='1-Jan-2011'; Maturity = '1-Jan-2017'; Period = 1; Face = {{'1-Jan-2015' 100;'1-Jan-2016' 90;'1-Jan-2017' 80}};
Создайте дерево HJM с помощью следующих рыночных данных:
Volatility = [.2; .19; .18; .17];
CurveTerm = [ 1; 2; 3; 4];
MaTree = {'Jan-1-2012'; 'Jan-1-2013'; 'Jan-1-2014'; 'Jan-1-2015';...
'Jan-1-2016'; 'Jan-1-2017'};
HJMTimeSpec = hjmtimespec(ValuationDate, MaTree);
HJMVolSpec = hjmvolspec('Proportional', Volatility, CurveTerm, 1e6);
HJMT = hjmtree(HJMVolSpec,RateSpec,HJMTimeSpec);Вычислите цену амортизирующей связи.
Price = bondbyhjm(HJMT, CouponRate, Settle, Maturity, 'Period',... Period, 'Face' , Face)
Price = 102.3155
Сравните результаты с ценой ванильной связи.
PriceVanilla = bondbyhjm(HJMT, CouponRate, Settle, Maturity, Period)
PriceVanilla = 102.4205
HJMTree - Структура процентной ставкиДревовидная структура процентной ставки, созданная hjmtree
Типы данных: struct
CouponRate - Ставка купона по облигациям Ставка купона на облигацию, заданная как NINST-by- 1 десятичный годовой темп или NINST-by- 1 массив ячеек, где каждый элемент является NumDates-by- 2 массив ячеек. Первый столбец NumDates-by- 2 массив ячеек является датами, и второй столбец связан скоростями. Дата указывает на последний день действия ставки купона.
Типы данных: double | cell
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] = bondbyhjm(HJMTree,CouponRate,Settle,Maturity,'Period',4,'Face',10000)'Period' - Купоны в год2 в год (по умолчанию) | векторКупоны в год, заданные как разделенная разделенными запятой парами, состоящая из 'Period' и a NINST-by- 1 вектор. Значения для Period являются 1, 2, 3, 4, 6, и 12.
Типы данных: 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
'EndMonthRule' - Флаг правила конца месяца для генерации дат при Maturity является датой конца месяца для месяца, имеющего 30 или менее дней1 (в действии) (по умолчанию) | неотрицательное целое число [0,1]Флаг правила конца месяца для генерации дат при Maturity - дата конца месяца для месяца, имеющего 30 или менее дней, заданная как разделенная разделенными запятой парами, состоящая из 'EndMonthRule' и неотрицательное целое число [0, 1] использование NINST-by- 1 вектор.
0 = Игнорировать правило, означающее, что дата платежа всегда является одним и тем же числовым днем месяца.
1 = Установите правило, означающее, что дата платежа всегда является последним фактическим днем месяца.
Типы данных: logical
'IssueDate' - Дата выпуска облигацийДата выпуска облигации, заданная как разделенная разделенными запятой парами, состоящая из 'IssueDate' и a NINST-by- 1 вектор с использованием последовательного неотрицательного номера даты или вектора символов даты.
Типы данных: double | char
'FirstCouponDate' - Нерегулярная дата первого купонаНерегулярная дата первого купона, заданная как разделенная разделенными запятой парами, состоящая из 'FirstCouponDate' и a NINST-by- 1 вектор с использованием последовательного неотрицательного номера даты или вектора символов даты.
Когда FirstCouponDate и LastCouponDate оба заданы, FirstCouponDate имеет приоритет при определении структуры купонного платежа. Если вы не задаете FirstCouponDateДаты платежа денежного потока определяются из других входов.
Типы данных: double | char
'LastCouponDate' - Нерегулярная дата последнего купонаНерегулярная дата последнего купона, заданная как разделенная разделенными запятой парами, состоящая из 'LastCouponDate' и a NINST-by- 1 вектор с использованием последовательного неотрицательного номера даты или вектора символов даты.
При отсутствии заданного FirstCouponDate, a заданное LastCouponDate определяет купонную структуру облигации. Купонная структура облигации усечена в LastCouponDate, независимо от того, где он падает, и сопровождается только датой движения денежных средств по облигации со сроком погашения. Если вы не задаете LastCouponDateДаты платежа денежного потока определяются из других входов.
Типы данных: double | char
'StartDate' - Форвардная дата начала платежейSettle дата (по умолчанию) | серийный номер даты | вектор символов датыДата начала платежей (дата, с которой рассматривается денежный поток облигаций), заданная как разделенная разделенными запятой парами, состоящая из 'StartDate' и a NINST-by- 1 вектор с использованием серийных номеров дат или векторов символов дат.
Если вы не задаете StartDate, дата начала вступления в силу является Settle дата.
Типы данных: char | double
'Face' - Номинал100 (по умолчанию) | неотрицательное значение | массив ячеек неотрицательных значенийНоминальное или номинальное значение, заданное как разделенная разделенными запятой парами, состоящая из 'Face' и a NINST-by- 1 вектор неотрицательных значений граней или NINST-by- 1 массив ячеек из значений граней или спецификаций лицевых значений. В последнем случае каждый элемент массива ячеек является NumDates-by- 2 массив ячеек, где первый столбец - даты, а второй - связанное с ним номинальное значение. Дата указывает последний день, когда значение лица является допустимым.
Типы данных: cell | double
'Options' - Опции ценообразования производных инструментовПроизводные опции ценообразования, заданные как разделенная разделенными запятой парами, состоящая из 'Options' и структуру, которая создается с derivset.
Типы данных: struct
'AdjustCashFlowsBasis' - Флаг для корректировки денежных потоков на основе фактического количества дней периодаfalse (по умолчанию) | значение 0 (false) или 1 ПравдаФлаг для корректировки денежных потоков на основе фактического количества дней периода, заданный как разделенная разделенными запятой парами, состоящая из 'AdjustCashFlowsBasis' и a NINST-by- 1 вектор логических единиц со значениями 0 (false) или 1 Правда.
Типы данных: logical
'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
Price - Ожидаемые цены облигаций на момент 0Ожидаемые цены облигаций на момент 0, возвращенные как NINST-by- 1 вектор.
PriceTree - Древовидная структура цен на приборыДревовидная структура цен на приборы, возвращаемая как структура MATLAB деревьев, содержащая векторы цен на приборы и начисленных процентов, и вектор времени наблюдения для каждого узла. Внутри PriceTree:
PriceTree.PBush содержит чистые цены.
PriceTree.AIBush содержит начисленные проценты.
PriceTree.tObs содержит время наблюдения.
Облигация с ванильным купоном представляет собой залог, представляющий собой обязательство погасить заемную сумму в установленный срок и производить периодические выплаты процентов до этого времени.
Эмитент облигации производит периодические выплаты процентов до погашения облигации. При погашении эмитент выплачивает держателю облигации основную сумму задолженности ( номинальное значение) и последний процентный платеж.
Повышающая и понижающая облигация является долговым обеспечением с заранее определенной купонной структурой с течением времени.
С помощью этих инструментов купоны увеличиваются (повышаются) или уменьшаются (снижаются) в определенные моменты времени в течение срока действия облигации.
Амортизированная облигация рассматривается как актив, при этом сумма дисконта амортизируется в процентные расходы в течение срока действия облигации.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.