Ценовые облигации от дерева процентных ставок Heath-Jarrow-Morton
[ добавляет дополнительные аргументы пары имя-значение.Price,PriceTree] = bondbyhjm(___,Name,Value)
Цена 4% облигации с использованием дерева процентных ставок HJM.
Груз deriv.mat, что обеспечивает HJMTree. 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около-1 десятичная годовая ставка или NINSTоколо-1 массив ячеек, где каждый элемент является NumDatesоколо-2 массив ячеек. Первый столбец NumDatesоколо-2 массив ячеек - даты, а второй столбец - связанные скорости. Дата указывает последний день, когда действительна ставка купона.
Типы данных: double | cell
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] = bondbyhjm(HJMTree,CouponRate,Settle,Maturity,'Period',4,'Face',10000)'Period' - Купоны в год2 в год (по умолчанию) | векторКупоны в год, указанные как пара, разделенная запятыми, состоящая из 'Period' и NINSTоколо-1 вектор. Значения для Period являются 1, 2, 3, 4, 6, и 12.
Типы данных: 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
'EndMonthRule' - флаг правила конца месяца для генерации дат, когда Maturity - дата окончания месяца, имеющего 30 или менее дней1 (в действии) (по умолчанию) | неотрицательное целое число [0,1]Флаг правила конца месяца для генерации дат при Maturity - дата окончания месяца, имеющая 30 или менее дней, указанная как пара, разделенная запятыми, состоящая из 'EndMonthRule' и неотрицательное целое число [0, 1] с использованием NINSTоколо-1 вектор.
0 = Игнорировать правило, означающее, что дата платежа всегда совпадает с числовым днем месяца.
1 = Установите правило, означающее, что дата платежа всегда является последним фактическим днем месяца.
Типы данных: logical
'IssueDate' - Дата выпуска облигацийДата выпуска облигаций, указанная как пара, разделенная запятыми, состоящая из 'IssueDate' и NINSTоколо-1 с использованием серийного неотрицательного номера даты или вектора символов даты.
Типы данных: double | char
'FirstCouponDate' - нерегулярная дата первого купонаНеправильная дата первого купона, указанная как пара, разделенная запятыми, состоящая из 'FirstCouponDate' и NINSTоколо-1 с использованием серийного неотрицательного номера даты или вектора символов даты.
Когда FirstCouponDate и LastCouponDate оба указаны, FirstCouponDate имеет приоритет при определении структуры купонных выплат. Если не указать FirstCouponDateдаты оплаты денежного потока определяются из других входных данных.
Типы данных: double | char
'LastCouponDate' - нерегулярная дата последнего купонаНеправильная дата последнего купона, указанная как пара, разделенная запятыми, состоящая из 'LastCouponDate' и NINSTоколо-1 с использованием серийного неотрицательного номера даты или вектора символов даты.
При отсутствии указанного FirstCouponDate, указанный LastCouponDate определяет структуру купона облигации. Купонная структура облигации усечена в LastCouponDateнезависимо от того, куда она попадает, и следует только дата денежного потока погашения облигации. Если не указать LastCouponDateдаты оплаты денежного потока определяются из других входных данных.
Типы данных: double | char
'StartDate' - Форвардная дата начала платежейSettle дата (по умолчанию) | серийный номер даты | вектор символов датыФорвардная дата начала выплат (дата, с которой рассматривается денежный поток облигации), указанная как пара, разделенная запятыми, состоящая из 'StartDate' и NINSTоколо-1 вектор с использованием серийных номеров дат или векторов символов даты.
Если не указать StartDate, дата начала действия - Settle дата.
Типы данных: char | double
'Face' - Номинал100 (по умолчанию) | неотрицательное значение | массив ячеек неотрицательных значенийНоминал или номинальная стоимость, указанная как пара, разделенная запятыми, состоящая из 'Face' и NINSTоколо-1 вектор неотрицательных номиналов или NINSTоколо-1 массив ячеек перечней номиналов или номиналов. В последнем случае каждый элемент массива ячеек является NumDatesоколо-2 массив ячеек, где первый столбец - даты, а второй столбец - связанные с ним номинальные значения. Дата указывает последний день, когда номинал является действительным.
Типы данных: cell | double
'Options' - Варианты ценообразования деривативовОпционы ценообразования деривативов, указанные как пара, разделенная запятыми, состоящая из 'Options' и структура, которая создается с помощью derivset.
Типы данных: struct
'AdjustCashFlowsBasis' - Флажок для корректировки денежных потоков на основе фактического подсчета дней периодаfalse (по умолчанию) | значение 0 (false) или 1 ПравдаФлажок для корректировки денежных потоков на основе фактического количества дней периода, указанного как пара, разделенная запятыми, состоящая из 'AdjustCashFlowsBasis' и NINSTоколо-1 вектор логикалов со значениями 0 (false) или 1 Правда.
Типы данных: logical
'BusinessDayConvention' - Соглашения по рабочим днямactual
(по умолчанию) | символьный вектор | массив ячеек символьных векторовСоглашения о рабочих днях, указанные как пара, разделенная запятыми, состоящая из 'BusinessDayConvention' и вектор символа или Nоколо-1 (или NINSTоколо-2 если BusinessDayConvention отличается для каждого участка) массив ячеек символьных векторов соглашений о рабочих днях. Выбор соглашения о рабочих днях определяет, как обрабатываются нерабочие дни. Нерабочие дни определяются как выходные дни плюс любая другая дата, когда предприятия не открыты (например, официальные праздники). Значения:
actual - Нерабочие дни фактически игнорируются. Предполагается, что денежные потоки, приходящиеся на нерабочие дни, распределяются на фактическую дату.
follow - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить на следующий рабочий день.
modifiedfollow - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить на следующий рабочий день. Однако если следующий рабочий день находится в другом месяце, вместо него используется предыдущий рабочий день.
previous - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить в предыдущий рабочий день.
modifiedprevious - Денежные потоки, приходящиеся на нерабочий день, предполагается распределить в предыдущий рабочий день. Однако если предыдущий рабочий день находится в другом месяце, вместо него принимается следующий рабочий день.
Типы данных: char | cell
'Holidays' - Праздники, используемые в вычислительных рабочих дняхholidays.m (по умолчанию) | Номера дат MATLAB ®Праздники, используемые в вычислительных рабочих днях, указанные как пара, разделенная запятыми, состоящая из 'Holidays' и номера дат MATLAB с использованием NHolidaysоколо-1 вектор.
Типы данных: double
Price - Ожидаемые цены облигаций в момент 0Ожидаемые цены облигаций в момент времени 0, возвращенные как NINSTоколо-1 вектор.
PriceTree - Древовидная структура цен на инструментыДревовидная структура цен инструментов, возвращаемая как структура MATLAB деревьев, содержащих векторы цен инструментов и начисленных процентов, и вектор времени наблюдения для каждого узла. В PriceTree:
PriceTree.PBush содержит чистые цены.
PriceTree.AIBush содержит начисленные проценты.
PriceTree.tObs содержит время наблюдения.
Ванильный купонный залог - это ценная бумага, представляющая собой обязательство погасить заемную сумму в установленное время и производить периодические выплаты процентов до этого времени.
Эмитент облигации осуществляет периодические выплаты процентов до погашения облигации. При погашении эмитент выплачивает держателю облигации сумму основного долга (номинальную стоимость) и последний платеж по процентам.
Повышающая и понижающая облигации - это долговое обеспечение с заданной структурой купона с течением времени.
С помощью этих инструментов купоны увеличиваются (повышаются) или уменьшаются (понижаются) в определенное время в течение срока действия облигации.
Амортизируемая облигация рассматривается как актив, а сумма дисконта амортизируется в счет процентных расходов в течение срока действия облигации.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.