Ценовой инструмент подкачки от Белого как оболочка дерева процентной ставки
Оцените подкачку процентной ставки с фиксированным участком получения и плавающим участком оплаты. Платежи осуществлены один раз в год, и отвлеченная основная сумма составляет 100$. Значения для остающихся аргументов:
Купонная ставка для фиксированного участка: 0.06 (6%)
Распространитесь для плавания участка: 20 пунктов
Расчетный день подкачки: 01 января 2005
Дата погашения подкачки: 01 января 2008
На основе информации выше, устанавливает обязательные аргументы и создают LegRate
, LegType
, и LegReset
матрицы:
Settle = '01-Jan-2005'; Maturity = '01-Jan-2008'; Basis = 0; Principal = 100; LegRate = [0.06 20]; % [CouponRate Spread] LegType = [1 0]; % [Fixed Float] LegReset = [1 1]; % Payments once per year
Оцените подкачку с помощью HWTree
включенный в MAT-файл deriv.mat
. HWTree
структура содержит время, и информация о форвардном курсе должна была оценить инструмент.
load deriv.mat;
Используйте swapbyhw
вычислить цену подкачки.
[Price, PriceTree, SwapRate] = swapbyhw(HWTree, LegRate, ... Settle, Maturity, LegReset, Basis, Principal, LegType)
Warning: Swaps are valued at Tree ValuationDate rather than Settle
Price = 5.9109
PriceTree = struct with fields:
FinObj: 'HWPriceTree'
PTree: {1x5 cell}
tObs: [0 1 2 3 4]
Connect: {[2] [2 3 4] [2 2 3 4 4]}
Probs: {[3x1 double] [3x3 double] [3x5 double]}
SwapRate = NaN
Используя предыдущие данные, вычислите уровень подкачки, который является купонной ставкой для фиксированного участка, такого, что цена подкачки во время = 0 является нулем.
LegRate = [NaN 20]; [Price, PriceTree, SwapRate] = swapbyhw(HWTree, LegRate, ... Settle, Maturity, LegReset, Basis, Principal, LegType)
Warning: Swaps are valued at Tree ValuationDate rather than Settle
Price = 1.4211e-14
PriceTree = struct with fields:
FinObj: 'HWPriceTree'
PTree: {1x5 cell}
tObs: [0 1 2 3 4]
Connect: {[2] [2 3 4] [2 2 3 4 4]}
Probs: {[3x1 double] [3x3 double] [3x5 double]}
SwapRate = 0.0438
Оцените подкачку амортизации с помощью Principal
входной параметр, чтобы задать расписание амортизации.
Создайте RateSpec
.
Rates = 0.035; ValuationDate = '1-Jan-2011'; StartDates = ValuationDate; EndDates = '1-Jan-2017'; Compounding = 1; RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: 0.8135
Rates: 0.0350
EndTimes: 6
StartTimes: 0
EndDates: 736696
StartDates: 734504
ValuationDate: 734504
Basis: 0
EndMonthRule: 1
Создайте инструмент подкачки с помощью следующих данных:
Settle ='1-Jan-2011'; Maturity = '1-Jan-2017'; Period = 1; LegRate = [0.04 10];
Задайте расписание амортизации подкачки.
Principal ={{'1-Jan-2013' 100;'1-Jan-2014' 80;'1-Jan-2015' 60;'1-Jan-2016' 40; '1-Jan-2017' 20}};
Создайте дерево HW использование следующих данных:
VolDates = ['1-Jan-2012'; '1-Jan-2013';'1-Jan-2014';'1-Jan-2015';'1-Jan-2016';'1-Jan-2017']; VolCurve = 0.1; AlphaDates = '01-01-2017'; AlphaCurve = 0.1; HWVolSpec = hwvolspec(RateSpec.ValuationDate, VolDates, VolCurve,... AlphaDates, AlphaCurve); HWTimeSpec = hwtimespec(RateSpec.ValuationDate, VolDates, Compounding); HWT = hwtree(HWVolSpec, RateSpec, HWTimeSpec);
Вычислите цену подкачки амортизации.
Price = swapbyhw(HWT, LegRate, Settle, Maturity, 'Principal', Principal)
Price = 1.4574
Оцените прямую подкачку с помощью StartDate
входной параметр, чтобы задать будущий срок начала работы подкачки.
Создайте RateSpec
.
Rates = 0.0374; ValuationDate = '1-Jan-2012'; StartDates = ValuationDate; EndDates = '1-Jan-2018'; Compounding = 1; RateSpec = intenvset('ValuationDate', ValuationDate,'StartDates', StartDates,... 'EndDates', EndDates,'Rates', Rates, 'Compounding', Compounding)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: 1
Disc: 0.8023
Rates: 0.0374
EndTimes: 6
StartTimes: 0
EndDates: 737061
StartDates: 734869
ValuationDate: 734869
Basis: 0
EndMonthRule: 1
Создайте дерево HW.
VolDates = {'1-Jan-2013'; '1-Jan-2014';'1-Jan-2015';'1-Jan-2016';'1-Jan-2017';'1-Jan-2018'}; VolCurve = 0.1; AlphaDates = '01-01-2018'; AlphaCurve = 0.1; HWVolSpec = hwvolspec(RateSpec.ValuationDate, VolDates, VolCurve,... AlphaDates, AlphaCurve); HWTimeSpec = hwtimespec(RateSpec.ValuationDate, VolDates, Compounding); HWT = hwtree(HWVolSpec, RateSpec, HWTimeSpec);
Вычислите цену прямой подкачки, которая запускается через год (1 января 2013) и назревает за четыре года с прямым уровнем подкачки 4,25%.
Settle ='1-Jan-2012'; Maturity = '1-Jan-2017'; StartDate = '1-Jan-2013'; LegRate = [0.0425 10]; Price = swapbyhw(HWT, LegRate, Settle, Maturity, 'StartDate', StartDate)
Price = 1.4434
Используя предыдущие данные, вычислите прямой уровень подкачки, купонную ставку для фиксированного участка, такого, что прямая цена подкачки во время = 0 является нулем.
LegRate = [NaN 10];
[Price, ~,SwapRate] = swapbyhw(HWT, LegRate, Settle, Maturity, 'StartDate', StartDate)
Price = 4.2633e-14
SwapRate = 0.0384
HWTree
— Структура процентной ставкиДревовидная структура процентной ставки, созданная hwtree
Типы данных: struct
LegRate
— Уровень участкаУровень участка, заданный как NINST
- 2
матрица, с каждой строкой, заданной как одно из следующего:
[CouponRate Spread]
(фиксированное плавание)
[Spread CouponRate]
(зафиксированный плаванием)
[CouponRate CouponRate]
(фиксировано зафиксированный)
[Spread Spread]
(плавание плавающее)
CouponRate
десятичный годовой показатель. Spread
количество пунктов по ссылочному уровню. Первый столбец представляет участок получения, в то время как второй столбец представляет участок оплаты.
Типы данных: double
Settle
— Расчетный деньРасчетный день, заданный или как скаляр или как NINST
- 1
вектор последовательных чисел даты или векторов символов даты.
Settle
дата каждой подкачки назначена к ValuationDate
из дерева HW. Аргумент Settle
подкачки проигнорирован.
Типы данных: char |
double
Maturity
— Дата погашенияДата погашения, заданная как NINST
- 1
вектор последовательных чисел даты или векторов символов даты, представляющих дату погашения для каждой подкачки.
Типы данных: char |
double
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
[Price,PriceTree,CFTree,SwapRate] = swapbyhw(HWTree,LegRate,Settle,Maturity,LegReset,Basis,Principal,LegType)
'LegReset'
— Сбросьте частоту в год для каждой подкачки
(значение по умолчанию) | векторСбросьте частоту в год для каждой подкачки, заданной как разделенная запятой пара, состоящая из 'LegReset'
и NINST
- 2
вектор.
Типы данных: double
'Basis'
— Основание дневного количества, представляющее основание для каждого участка
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
к 13
Основание дневного количества, представляющее основание для каждого участка, заданного как разделенная запятой пара, состоящая из 'Basis'
и NINST
- 1
массив (или NINST
- 2
если Basis
отличается для каждого участка).
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'
— Отвлеченные основные суммы или основные расписания значения
(значение по умолчанию) | векторный массив или массив ячеекОтвлеченные основные суммы или основные расписания значения, заданные как разделенная запятой пара, состоящая из 'Principal'
и векторный массив или массив ячеек.
Principal
принимает NINST
- 1
вектор или NINST
- 1
массив ячеек (или NINST
- 2
если Principal
отличается для каждого участка) отвлеченных основных сумм или основных расписаний значения. Для расписаний каждым элементом массива ячеек является NumDates
- 2
массив, где первый столбец является датами и вторым столбцом, является своим связанным отвлеченным основным значением. Дата указывает в последний день, что основное значение допустимо.
Типы данных: cell
| double
'LegType'
— Тип участка
для каждого инструмента (значение по умолчанию) | матрица со значениями [1 1]
(фиксировано зафиксированный), [1 0]
(фиксированное плавание), [0 1]
(зафиксированный плаванием), или [0 0]
(плавание плавающее)Тип участка, заданный как разделенная запятой пара, состоящая из 'LegType'
и NINST
- 2
матрица со значениями [1 1]
(фиксировано зафиксированный), [1 0]
(фиксированное плавание), [0 1]
(зафиксированный плаванием), или [0 0]
(плавание плавающее). Каждая строка представляет инструмент. Каждый столбец указывает, фиксируется ли соответствующий участок (1
) или плавание (0
). Эта матрица задает интерпретацию значений, вводимых в LegRate
. LegType
позволяет [1 1]
(фиксировано зафиксированный), [1 0]
(фиксированное плавание), [0 1]
(зафиксированный плаванием), или [0 0]
подкачки (плавающие плавающие)
Типы данных: double
'Options'
— Производные оценивая структуру опцийПроизводные оценивая структуру опций, заданную как разделенная запятой пара, состоящая из 'Options'
и структура получена из использования derivset
.
Типы данных: struct
'EndMonthRule'
— Правило конца месяца отмечает для генерации дат когда Maturity
дата конца месяца в течение месяца, имея 30 или меньше дней
(в действительности) (значение по умолчанию) | неотрицательный целочисленный [0,1]
Правило конца месяца отмечает для генерации дат когда Maturity
дата конца месяца в течение месяца, имея 30 или меньше дней, заданных как разделенная запятой пара, состоящая из 'EndMonthRule'
и неотрицательное целое число [0
, 1] использование
NINST
- 1
(или NINST
- 2
если EndMonthRule
отличается для каждого участка).
0 = Проигнорируйте правило, подразумевая, что платежный день всегда является тем же числовым днем месяца.
1 = Установите правило о, подразумевая, что платежный день всегда является прошлым фактическим днем месяца.
Типы данных: логический
'AdjustCashFlowsBasis'
— Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периодаfalse
(значение по умолчанию) | значение 0
(FALSE) или 1
TRUEОтметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода, заданного как разделенная запятой пара, состоящая из 'AdjustCashFlowsBasis'
и NINST
- 1
(или NINST
- 2
если AdjustCashFlowsBasis
отличается для каждого участка) logicals со значениями 0
(FALSE) или 1
TRUE.
Типы данных: логический
'BusinessDayConvention'
— Соглашения рабочего дняactual
(значение по умолчанию) | вектор символов | массив ячеек из символьных векторовСоглашения рабочего дня, заданные как разделенная запятой пара, состоящая из 'BusinessDayConvention'
и вектор символов или N
- 1
(или NINST
- 2
если BusinessDayConvention
отличается для каждого участка), массив ячеек из символьных векторов соглашений рабочего дня. Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Значения:
actual
— Нерабочие дни эффективно проигнорированы. Потоки наличности, которые падают в нерабочие дни, приняты, чтобы быть распределенными в фактическую дату.
follow
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день.
modifiedfollow
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день. Однако, если следующий рабочий день находится в различном месяце, предыдущий рабочий день принят вместо этого.
previous
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день.
modifiedprevious
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в различном месяце, следующий рабочий день принят вместо этого.
Типы данных: char |
cell
'Holidays'
— Праздники используются в вычислении рабочих днейholidays.m
(значение по умолчанию) | числа даты MATLAB®Праздники используются в вычислении рабочих дней, заданных как разделенная запятой пара, состоящая из 'Holidays'
и числа даты MATLAB с помощью NHolidays
- 1
вектор.
Типы данных: double
'StartDate'
— Подкачка даты на самом деле запускаетсяSettle
дата (значение по умолчанию) | последовательный номер даты | вектор символовПодкачка даты на самом деле запускается, заданный как разделенная запятой пара, состоящая из 'StartDate'
и NINST
- 1
вектор дат с помощью последовательного номера даты или вектора символов.
Используйте этот аргумент, чтобы оценить прямые подкачки, то есть, подкачки, которые запускаются на будущей дате
Типы данных: char |
double
Price
— Ожидаемые цены подкачки во время 0Ожидаемые цены подкачки во время 0, возвращенный как NINST
- 1
вектор.
PriceTree
— Древовидная структура цен на инструментыДревовидная структура цен на инструменты, возвращенных как структура MATLAB деревьев, содержащих векторы swaption цен на инструменты и вектор времен наблюдения для каждого узла. В PriceTree
:
PriceTree.PTree
содержит чистые цены.
PriceTree.tObs
содержит времена наблюдения.
PriceTree.Connect
содержит векторы возможности соединения. Каждый элемент в массиве ячеек описывает, как узлы на том уровне соединяются со следующим. Для данного древовидного уровня существует NumNodes
элементы в векторе, и они содержат индекс узла на следующем уровне, с которым соединяется средняя ветвь. Вычитание 1 от того значения указывает, где подключения-ветви к, и добавление 1 указали, где вниз переходят подключения к.
PriceTree.Probs
содержит массивы вероятности. Каждый элемент массива ячеек содержит, середина и вероятности перехода вниз для каждого узла уровня.
CFTree
— Подкачайте потоки наличностиПодкачайте потоки наличности, возвращенные как древовидная структура с вектором потоков наличности подкачки в каждом узле. Эта структура содержит только NaN
s, потому что с деревьями переобъединения бинома, потоки наличности не могут быть вычислены точно в каждом узле дерева.
SwapRate
— Уровни, применимые к фиксированному участкуУровни, применимые к фиксированному участку, возвращенному как NINST
- 1
вектор уровней, применимых к фиксированному участку, таким образом, что значения подкачек являются нулем во время 0. Этот уровень используется в вычислении цен подкачек, когда уровень задал для фиксированного участка в LegRate
isnan
. SwapRate
выход дополнен NaN
для тех инструментов, в который CouponRate
не установлен в NaN
.
В подкачке амортизации отвлеченный принципал периодически уменьшается, потому что он связывается к базовому финансовому инструменту со снижением (амортизирующим) основной баланс, такой как ипотека.
Соглашение ввести в процентную ставку подкачивает расположение относительно установленной даты в будущем.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.