Swap инструментальный объект
Создайте и оцените Swap инструментальный объект для одного или нескольких инструментов Подкачки с помощью этого рабочего процесса:
Использование fininstrument создать Swap инструментальный объект для одного или нескольких инструментов Подкачки.
Используйте ratecurve задавать модель кривой для Swap инструментальный объект или использование finmodel задавать HullWhite, BlackKarasinski, или LinearGaussian2F модель.
Выберите метод ценообразования.
При использовании ratecurveИспользование finpricer задавать Discount метод ценообразования
При использовании HullWhite или BlackKarasinski модель, используйте IRTree метод ценообразования для одного или нескольких Swap инструменты.
При использовании HullWhite или LinearGaussian2F модель, использовать finpricer задавать IRMonteCarlo метод ценообразования для одного или нескольких Swap инструменты.
Для получения дополнительной информации об этом рабочем процессе смотрите Начало работы с Рабочими процессами Используя Основанную на объектах Среду для Оценки Финансовых инструментов.
Для получения дополнительной информации о доступных моделях и методах ценообразования для Swap инструмент, смотрите, Выбирают Instruments, Models и Pricers.
создает SwapInstrument = fininstrument(InstrumentType,'Maturity',maturity_date,'LegRate',leg_rate)Swap объект для одного или нескольких инструментов Подкачки путем определения InstrumentType и устанавливает свойства для необходимых аргументов пары "имя-значение" Maturity и LegRate.
Swap инструмент поддерживает подкачки ванили, амортизируя подкачки и прямые подкачки. Можно использовать Swap инструмент для подкачки единой валюты, но не валютного свопа. Для получения дополнительной информации о Swap инструмент, смотрите Больше О.
устанавливает дополнительные свойства с помощью дополнительных пар "имя-значение" в дополнение к обязательным аргументам в предыдущем синтаксисе. Например, SwapInstrument = fininstrument(___,Name,Value)SwapInstrument = fininstrument("Swap",'Maturity',datetime(2019,1,30),'LegRate',[0.06 0.12],'LegType',["fixed","fixed"],'Basis',1,'Notional',100,'StartDate',datetime(2016,1,30),'DaycountAdjustedCashFlow',true,'BusinessDayConvention',"follow",'ProjectionCurve',ratecurve,'Name',"swap_instrument") создает Swap опция со зрелостью от 30 января 2019. Можно задать несколько аргументов пары "имя-значение".
InstrumentType — Инструментальный тип"Swap" | массив строк со значениями "Swap" | вектор символов со значением 'Swap' | массив ячеек из символьных векторов со значениями 'Swap'Инструментальный тип в виде строки со значением "Swap", вектор символов со значением 'Swap', NINST- 1 массив строк со значениями "Swap", или NINST- 1 массив ячеек из символьных векторов со значениями 'Swap'.
Типы данных: char | cell | string
Swap Аргументы в виде пар имя-значениеЗадайте требуемые и дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
SwapInstrument = fininstrument("Swap",'Maturity',datetime(2019,1,30),'LegRate',[0.06 0.12],'LegType',["fixed","fixed"],'Basis',1,'Notional',100,'StartDate',datetime(2016,1,30),'DaycountAdjustedCashFlow',true,'BusinessDayConvention',"follow",'ProjectionCurve',ratecurve,'Name',"swap_instrument")Swap Аргументы в виде пар имя-значениеMaturity — Подкачайте дату погашенияПодкачайте дату погашения в виде разделенной запятой пары, состоящей из 'Maturity' и скалярный datetime, последовательный номер даты, вектор символов даты, строка даты или NINST- 1 вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.
Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime потому что Maturity свойство хранится как datetime.
Типы данных: char | cell | double | string | datetime
LegRate — Уровень участка в десятичных значенияхУровень участка в десятичных значениях в виде разделенной запятой пары, состоящей из 'LegRate' и NINST- 2 матрица. Каждая строка может быть задана как одно из следующего:
[CouponRate Spread] (фиксированное плавание)
[Spread CouponRate] (зафиксированный плаванием)
[CouponRate CouponRate] (фиксировано зафиксированный)
[Spread Spread] (плавание плавающее)
CouponRate десятичный годовой показатель. Spread количество пунктов в десятичных числах по ссылочному уровню. Первый столбец представляет участок получения, в то время как второй столбец представляет участок оплаты.
Типы данных: double
Swap Аргументы в виде пар имя-значениеLegType — Тип участка["fixed","float"] для каждого инструмента (значение по умолчанию) | массив ячеек из символьных векторов со значениями {'fixed','fixed'}, {'fixed','float'}, {'float','fixed'}, или {'float','float'}
| массив строк со значениями ["fixed","fixed"], ["fixed","float"], ["float","fixed"], или ["float","float"]
Тип участка в виде разделенной запятой пары, состоящей из 'LegType' и массив ячеек из символьных векторов или массив строк с поддерживаемыми значениями. LegType задает интерпретацию значений, вводимых в LegRate.
Примечание
Когда вы задаете Swap инструмент как базовый актив для Swaption инструмент при использовании Normal, SABR, Black, или HullWhite калькулятор цен, Swap
LegType должен быть ["fixed","float"] или ["float","fixed"]. Необходимо также установить ExerciseStyle аргумент пары "имя-значение" связанного Swaption инструмент к 'European'.
Типы данных: cell | string
ProjectionCurve — Кривая уровня для проектирования плавающих потоков наличностиratecurve.empty (значение по умолчанию) | скалярный ratecurve возразите | вектор из ratecurve объектыКривая уровня для проектирования плавающих потоков наличности в виде разделенной запятой пары, состоящей из 'ProjectionCurve' и скалярный ratecurve возразите или NINST- 1 вектор из ratecurve объекты. Необходимо создать этот объект с помощью ratecurve. Используйте этот дополнительный вход, если прямая кривая отличается от дисконтной кривой.
Типы данных: object
Reset — Частота платежей в год
(значение по умолчанию) | числовое значение 0, 1, 2, 3, 4, 6, или 12 | матрицаЧастота платежей в год в виде разделенной запятой пары, состоящей из 'Reset' и скаляр или NINST- 2 матрица, если Reset отличается для каждого участка) с одним из следующих значений: 0, 1, 2, 3, 4, 6, или 12.
Типы данных: 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
Notional — Отвлеченная основная сумма или основное расписание значения
(значение по умолчанию) | скаляр, числовой | числовой вектор | расписаниеОтвлеченная основная сумма или основное значение планируют в виде разделенной запятой пары, состоящей из 'Notional' и числовой скаляр или NINST- 1 числовой вектор или расписание. Используйте скаляр или вектор для ванили Swap инструмент и расписание для амортизации Swap инструмент.
Notional принимает скаляр для основной суммы (или 1- 2 матрица, если Notional отличается для каждого участка), или a timetable для основных расписаний значения. Для расписаний первый столбец расписания является датами, и второй столбец является связанным отвлеченным основным значением. Дата указывает в последний день, что основное значение допустимо.
Примечание
Если вы создаете один или несколько Swap инструменты и использование расписание, спецификация расписания применяется ко всему Swap инструменты. Notional не принимает NINST- 1 массив ячеек расписаний, как введено.
Типы данных: timetable | double
LatestFloatingRate — Последний плавающий курс для участков плавающихratecurve должен содержать эту информацию (значение по умолчанию) | скаляр, числовой | векторПоследний плавающий курс для участков плавающих в виде разделенной запятой пары, состоящей из 'LatestFloatingRate' и числовой скаляр или NINST- 1 числовой вектор.
LatestFloatingRate NINST- 1 матрица (или NINST- 2 матрица, если LatestFloatingRate отличается для каждого участка).
Типы данных: double
ResetOffset — Отстаньте в установлении норм
(значение по умолчанию) | векторОтстаньте в установлении норм в виде разделенной запятой пары, состоящей из 'ResetOffset' и NINST- 2 матрица.
Типы данных: double
DaycountAdjustedCashFlow — Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периодаfalse
(значение по умолчанию) | логическое значение true или false
| вектор из логических значений true или false
Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода в виде разделенной запятой пары, состоящей из 'DaycountAdjustedCashFlow' и NINST- 1 матрица (или NINST- 2 матрица, если AdjustCashFlowsBasis отличается для каждого участка) logicals со значениями true или false.
Типы данных: логический
BusinessDayConvention — Соглашения рабочего дня"actual"
(значение по умолчанию) | представляет в виде строки | массив строк | вектор символов | массив ячеек из символьных векторовСоглашения рабочего дня в виде разделенной запятой пары, состоящей из 'BusinessDayConvention' и строка (или NINST- 2 массив строк, если BusinessDayConvention отличается для каждого участка) или вектор символов (или NINST- 2 массив ячеек из символьных векторов, если BusinessDayConvention отличается для каждого участка). Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Значения:
"actual" — Нерабочие дни эффективно проигнорированы. Потоки наличности, которые падают в нерабочие дни, приняты, чтобы быть распределенными в фактическую дату.
"follow" — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день.
"modifiedfollow" — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день. Однако, если следующий рабочий день находится в различном месяце, предыдущий рабочий день принят вместо этого.
"previous" — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день.
"modifiedprevious" — Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в различном месяце, следующий рабочий день принят вместо этого.
Типы данных: char | cell | string
Holidays — Праздники используются в вычислении рабочих днейNaT
(значение по умолчанию) | datetime | массив ячеек векторов символов даты | массив строки даты | последовательные числа датыПраздники, используемые в вычислении рабочих дней в виде разделенной запятой пары, состоящей из 'Holidays' и даты с помощью NINST- 1 вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты. Например:
H = holidays(datetime('today'),datetime(2025,12,15));
Swap = fininstrument("Swap",'Maturity',datetime(2025,12,15),'LegRate',[0.06 20],'Holidays',H)Типы данных: double | cell | datetime | string
EndMonthRule — Правило конца месяца отмечает для генерации дат когда Maturity дата конца месяца в течение месяца с 30 или меньшим количеством дней[true true] (в действительности) (значение по умолчанию) | логический со значением true или false | вектор из logicals со значениями true или falseПравило конца месяца отмечает для генерации дат когда Maturity дата конца месяца в течение месяца с 30 или меньшим количеством дней в виде разделенной запятой пары, состоящей из 'EndMonthRule' и логическое значение true или false использование NINST- 1 матрица (или NINST- 2 матрица, если EndMonthRule отличается для каждого участка).
Если вы устанавливаете EndMonthRule к false, программное обеспечение игнорирует правило, означая, что платежный день всегда является тем же числовым днем месяца.
Если вы устанавливаете EndMonthRule к true, программное обеспечение устанавливает правило о, означая, что платежный день всегда является прошлым фактическим днем месяца.
Типы данных: логический
StartDate — Подкачка даты запускаетсяSettle дата (значение по умолчанию) | datetime | последовательный номер даты | вектор символов даты | строка даты | вектор из datetimes | вектор из последовательных чисел даты | массив ячеек векторов символов даты | массив строки датыПодкачка даты запускается в виде разделенной запятой пары, состоящей из 'StartDate' и скалярный datetime, последовательный номер даты, вектор символов даты, строка даты или NINST- 1 вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.
Используйте StartDate оценивать прямую подкачку, то есть, подкачку, которая запускается позднее.
Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime потому что StartDate свойство хранится как datetime.
Типы данных: char | double | string | datetime
Name — Пользовательское имя для инструмента" "
(значение по умолчанию) | представляет в виде строки | массив строк | вектор символов | массив ячеек из символьных векторовПользовательское имя для инструмента в виде разделенной запятой пары, состоящей из 'Name' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.
Типы данных: char | cell | string
Maturity — Дата погашенияДата погашения, возвращенная как скалярный datetime или NINST- 1 вектор из datetimes.
Типы данных: datetime
LegRate — Уровень участкаУровень участка, возвращенный как NINST- 2 матрица десятичных значений, с каждой строкой, заданной как одно из следующего:
[CouponRate Spread] (фиксированное плавание)
[Spread CouponRate] (зафиксированный плаванием)
[CouponRate CouponRate] (фиксировано зафиксированный)
[Spread Spread] (плавание плавающее)
Типы данных: double
LegType — Тип участка["fixed","float"] для каждого инструмента (значение по умолчанию) | массив строк со значениями ["fixed","fixed"], ["fixed","float"], ["float","fixed"], или ["float","float"]
Тип участка, возвращенный как массив строк со значениями ["fixed","fixed"], ["fixed","float"], ["float","fixed"], или ["float","float"].
Типы данных: string
ProjectionCurve — Кривая уровня используется в генерации будущих потоков наличностиratecurve.empty (значение по умолчанию) | скалярный ratecurve возразите | вектор из ratecurve объектыКривая уровня, используемая в проектировании будущих потоков наличности, возвращенных как ratecurve возразите или NINST- 1 вектор из ratecurve объекты.
Типы данных: object
Reset — Сбросьте частоту в год для каждой подкачки
(значение по умолчанию) | векторСбросьте частоту в год для каждой подкачки, возвращенной как скаляр или NINST- 2 матрица.
Типы данных: double
Basis — Дневной базис количества (фактическое/фактическое) (значение по умолчанию) | целое число от 0 к 13Дневной базис количества, возвращенный как NINST- 1 или NINST- 2 матрица.
Типы данных: double
ResetOffset — Отстаньте в установлении норм
(значение по умолчанию) | матрицаОтстаньте в установлении норм, возвращенном как NINST- 2 или NINST- 2 матрица.
Типы данных: double
Notional — Отвлеченная основная сумма или основные расписания значения
(значение по умолчанию) | скаляр, числовой | числовой вектор | расписаниеОтвлеченная основная сумма, возвращенная как числовой скаляр или NINST- 1 числовой вектор или расписание.
Типы данных: double | timetable
LatestFloatingRate — Уровень для следующей плавающей оплатыratecurve должен содержать эту информацию (значение по умолчанию) | скаляр, числовой | числовой векторУровень для следующей плавающей оплаты, установленной в последнюю дату сброса, возвратился как числовой скаляр или NINST- 1 числовой вектор или NINST- 2 if LatestFloatingRate отличается для каждого участка.
Типы данных: double
DaycountAdjustedCashFlow — Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периодаfalse
(значение по умолчанию) | логическое значение true или false | вектор из логических значений true или false
Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода, возвращенного как NINST- 1 матрица (или NINST- 2 матрица, если AdjustCashFlowsBasis отличается для каждого участка) logicals со значениями true или false.
Типы данных: логический
BusinessDayConvention — Соглашения рабочего дня"actual"
(значение по умолчанию) | представляет в виде строки | массив строкСоглашения рабочего дня, возвращенные как строка или NINST- 2 массив строк, если BusinessDayConvention отличается для каждого участка.
Типы данных: char | cell | string
Holidays — Праздники используются в вычислении рабочих днейNaT (значение по умолчанию) | datetimesПраздники используются в вычислении рабочих дней, возвращенных как NINST- 1 вектор из datetimes.
Типы данных: datetime
EndMonthRule — Правило конца месяца отмечает для генерации дат когда Maturity дата конца месяца в течение месяца с 30 или меньшим количеством дней[true true] (в действительности) (значение по умолчанию) | логический со значением true или false | вектор из logicals со значениями true или falseПравило конца месяца отмечает для генерации дат когда Maturity дата конца месяца в течение месяца с 30 или меньшим количеством дней, возвращенных как NINST- 1 матрица (или NINST- 2 матрица, если EndMonthRule отличается для каждого участка.
Типы данных: логический
StartDate — Подкачка даты запускаетсяSettle дата (значение по умолчанию) | скалярный datetime | вектор из datetimesПодкачка даты запускается, возвращенный как скалярный datetime или NINST- 1 вектор из datetimes.
Типы данных: datetime
Name — Пользовательское имя для инструмента" "
(значение по умолчанию) | представляет в виде строки | массив строкПользовательское имя для инструмента, возвращенного как скалярная строка или NINST- 1 массив строк.
Типы данных: string
cashflows | Вычислите поток наличности для FixedBond, FloatBondподкачка, FRA, STIRFuture, OISFuture, OvernightIndexedSwap, или Deposit инструмент |
parswaprate | Вычислите уровень подкачки паритета для Swap инструмент |
Этот пример показывает рабочий процесс, чтобы оценить ваниль Swap инструмент, когда вы используете ratecurve и Discount метод ценообразования.
Создайте Объект ratecurve
Создайте ratecurve объект с помощью ratecurve поскольку базовая процентная ставка изгибается для Swap инструмент.
Settle = datetime(2019,9,15); Type = 'zero'; ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC =
ratecurve with properties:
Type: "zero"
Compounding: -1
Basis: 0
Dates: [10x1 datetime]
Rates: [10x1 double]
Settle: 15-Sep-2019
InterpMethod: "linear"
ShortExtrapMethod: "next"
LongExtrapMethod: "previous"
Создайте Swap Инструментальный объект
Используйте fininstrument создать ваниль Swap инструментальный объект.
Swap = fininstrument("Swap",'Maturity',datetime(2024,9,15),'LegRate',[0.022 0.019 ],'LegType',["float","fixed"],'ProjectionCurve',myRC,'Name',"swap_instrument")
Swap =
Swap with properties:
LegRate: [0.0220 0.0190]
LegType: ["float" "fixed"]
Reset: [2 2]
Basis: [0 0]
Notional: 100
LatestFloatingRate: [NaN NaN]
ResetOffset: [0 0]
DaycountAdjustedCashFlow: [0 0]
ProjectionCurve: [1x2 ratecurve]
BusinessDayConvention: ["actual" "actual"]
Holidays: NaT
EndMonthRule: [1 1]
StartDate: NaT
Maturity: 15-Sep-2024
Name: "swap_instrument"
Создайте Discount Объект калькулятора цен
Используйте finpricer создать Discount объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".
outPricer = finpricer("Discount", 'DiscountCurve',myRC)
outPricer =
Discount with properties:
DiscountCurve: [1x1 ratecurve]
Цена Swap Инструмент
Используйте price вычислить цену и чувствительность для ванили Swap инструмент.
[Price, outPR] = price(outPricer, Swap,["all"])Price = 7.2279
outPR =
priceresult with properties:
Results: [1x2 table]
PricerData: []
outPR.Results
ans=1×2 table
Price DV01
______ _________
7.2279 -0.046631
Этот пример показывает рабочий процесс, чтобы оценить несколько ваниль Swap инструменты, когда вы используете ratecurve и Discount метод ценообразования.
Создайте Объект ratecurve
Создайте ratecurve объект с помощью ratecurve поскольку базовая процентная ставка изгибается для Swap инструмент.
Settle = datetime(2019,9,15); Type = 'zero'; ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC =
ratecurve with properties:
Type: "zero"
Compounding: -1
Basis: 0
Dates: [10x1 datetime]
Rates: [10x1 double]
Settle: 15-Sep-2019
InterpMethod: "linear"
ShortExtrapMethod: "next"
LongExtrapMethod: "previous"
Создайте Swap Инструментальный объект
Используйте fininstrument создать ваниль Swap инструментальный объект для трех инструментов Подкачки.
Swap = fininstrument("Swap",'Maturity',datetime([2024,9,15 ; 2025,9,15 ; 2026,9,15]),'LegRate',[0.022 0.019 ],'LegType',["float","fixed"],'ProjectionCurve',myRC,'Name',"swap_instrument")
Swap=3×1 object
3x1 Swap array with properties:
LegRate
LegType
Reset
Basis
Notional
LatestFloatingRate
ResetOffset
DaycountAdjustedCashFlow
ProjectionCurve
BusinessDayConvention
Holidays
EndMonthRule
StartDate
Maturity
Name
Создайте Discount Объект калькулятора цен
Используйте finpricer создать Discount объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".
outPricer = finpricer("Discount", 'DiscountCurve',myRC)
outPricer =
Discount with properties:
DiscountCurve: [1x1 ratecurve]
Цена Swap Инструменты
Используйте price вычислить цены и чувствительность для ванили Swap инструменты.
[Price, outPR] = price(outPricer, Swap,["all"])Price = 3×1
7.2279
9.9725
13.0798
outPR=1×3 object
1x3 priceresult array with properties:
Results
PricerData
outPR.Results
ans=1×2 table
Price DV01
______ _________
7.2279 -0.046631
ans=1×2 table
Price DV01
______ _________
9.9725 -0.054393
ans=1×2 table
Price DV01
_____ _________
13.08 -0.061381
Этот пример показывает рабочий процесс, чтобы оценить амортизацию Swap инструмент, когда вы используете ratecurve и Discount метод ценообразования.
Создайте ratecurve Объект
Создайте ratecurve объект с помощью ratecurve поскольку базовая процентная ставка изгибается для Swap инструмент.
Settle = datetime(2019,1,1); Type = 'zero'; ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC =
ratecurve with properties:
Type: "zero"
Compounding: -1
Basis: 0
Dates: [10x1 datetime]
Rates: [10x1 double]
Settle: 01-Jan-2019
InterpMethod: "linear"
ShortExtrapMethod: "next"
LongExtrapMethod: "previous"
Создайте Swap Инструментальный объект
Используйте fininstrument создать амортизацию Swap инструментальный объект.
Maturity = datetime(2024,1,1); ADates = datetime([2020,1,1 ; 2024,1,1]); APrincipal = [100; 85]; Notional = timetable(ADates,APrincipal); Swap = fininstrument("Swap",'Maturity',Maturity,'LegRate',[0.035,0.01],'Reset',[1 1],'Notional',Notional,'Name',"swap_instrument")
Swap =
Swap with properties:
LegRate: [0.0350 0.0100]
LegType: ["fixed" "float"]
Reset: [1 1]
Basis: [0 0]
Notional: [2x1 timetable]
LatestFloatingRate: [NaN NaN]
ResetOffset: [0 0]
DaycountAdjustedCashFlow: [0 0]
ProjectionCurve: [0x0 ratecurve]
BusinessDayConvention: ["actual" "actual"]
Holidays: NaT
EndMonthRule: [1 1]
StartDate: NaT
Maturity: 01-Jan-2024
Name: "swap_instrument"
Создайте Discount Объект калькулятора цен
Используйте finpricer создать Discount объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".
outPricer = finpricer("Discount", 'DiscountCurve',myRC)
outPricer =
Discount with properties:
DiscountCurve: [1x1 ratecurve]
Цена Swap Инструмент
Используйте price вычислить цену и чувствительность для амортизации Swap инструмент.
[Price, outPR] = price(outPricer, Swap,["all"])Price = 5.7183
outPR =
priceresult with properties:
Results: [1x2 table]
PricerData: []
outPR.Results
ans=1×2 table
Price DV01
______ ________
5.7183 0.044672
Этот пример показывает рабочий процесс, чтобы оценить ваниль Swap инструмент, когда вы используете HullWhite модель и IRTree метод ценообразования.
Создайте ratecurve Объект
Создайте ratecurve объект с помощью ratecurve поскольку базовая процентная ставка изгибается для Swap инструмент.
Settle = datetime(2020,1,15); Type = 'zero'; ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC =
ratecurve with properties:
Type: "zero"
Compounding: -1
Basis: 0
Dates: [10x1 datetime]
Rates: [10x1 double]
Settle: 15-Jan-2020
InterpMethod: "linear"
ShortExtrapMethod: "next"
LongExtrapMethod: "previous"
Создайте Swap Инструментальный объект
Используйте fininstrument создать ваниль Swap инструментальный объект.
LegType = ["float","fixed"]; Swap = fininstrument("Swap",'Maturity',datetime(2030,9,15),'LegRate',[0.022 0.019],'LegType',LegType,'ProjectionCurve',myRC,'Name',"swap_instrument")
Swap =
Swap with properties:
LegRate: [0.0220 0.0190]
LegType: ["float" "fixed"]
Reset: [2 2]
Basis: [0 0]
Notional: 100
LatestFloatingRate: [NaN NaN]
ResetOffset: [0 0]
DaycountAdjustedCashFlow: [0 0]
ProjectionCurve: [1x2 ratecurve]
BusinessDayConvention: ["actual" "actual"]
Holidays: NaT
EndMonthRule: [1 1]
StartDate: NaT
Maturity: 15-Sep-2030
Name: "swap_instrument"
Создайте HullWhite Объект модели
Используйте finmodel создать HullWhite объект модели.
HullWhiteModel = finmodel("HullWhite",'Alpha',0.032,'Sigma',0.04)
HullWhiteModel =
HullWhite with properties:
Alpha: 0.0320
Sigma: 0.0400
Вычислите Swap Инструментальные даты потока наличности
Используйте cfdates вычислить потоки наличности.
CFdates = cfdates(Settle, Swap.Maturity, Swap.Reset(1), Swap.Basis(1))
CFdates = 1x22 datetime
Columns 1 through 5
15-Mar-2020 15-Sep-2020 15-Mar-2021 15-Sep-2021 15-Mar-2022
Columns 6 through 10
15-Sep-2022 15-Mar-2023 15-Sep-2023 15-Mar-2024 15-Sep-2024
Columns 11 through 15
15-Mar-2025 15-Sep-2025 15-Mar-2026 15-Sep-2026 15-Mar-2027
Columns 16 through 20
15-Sep-2027 15-Mar-2028 15-Sep-2028 15-Mar-2029 15-Sep-2029
Columns 21 through 22
15-Mar-2030 15-Sep-2030
Создайте IRTree Объект калькулятора цен
Используйте finpricer создать IRTree объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".
HWTreePricer = finpricer("IRTree",'Model',HullWhiteModel,'DiscountCurve',myRC,'TreeDates',CFdates')
HWTreePricer =
HWBKTree with properties:
Tree: [1x1 struct]
TreeDates: [22x1 datetime]
Model: [1x1 finmodel.HullWhite]
DiscountCurve: [1x1 ratecurve]
Цена Swap Инструмент
Используйте price вычислить цену и чувствительность для ванили Swap инструмент.
[Price, outPR] = price(HWTreePricer, Swap,"all")Price = 24.3727
outPR =
priceresult with properties:
Results: [1x4 table]
PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Vega Gamma Delta
______ __________ _______ ______
24.373 8.5265e-10 -8790.5 820.67
Этот пример показывает рабочий процесс, чтобы оценить ваниль Swap инструмент при использовании LinearGaussian2F модель и IRMonteCarlo метод ценообразования.
Создайте ratecurve Объект
Создайте ratecurve объект с помощью ratecurve.
Settle = datetime(2020,1,15); Type = 'zero'; ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC =
ratecurve with properties:
Type: "zero"
Compounding: -1
Basis: 0
Dates: [10x1 datetime]
Rates: [10x1 double]
Settle: 15-Jan-2020
InterpMethod: "linear"
ShortExtrapMethod: "next"
LongExtrapMethod: "previous"
Создайте Swap Инструментальный объект
Используйте fininstrument создать Swap инструментальный объект.
LegType = ["float","fixed"]; Swap = fininstrument("Swap",'Maturity',datetime(2030,9,15),'LegRate',[0.022 0.019],'LegType',LegType,'ProjectionCurve',myRC,'Name',"swap_instrument")
Swap =
Swap with properties:
LegRate: [0.0220 0.0190]
LegType: ["float" "fixed"]
Reset: [2 2]
Basis: [0 0]
Notional: 100
LatestFloatingRate: [NaN NaN]
ResetOffset: [0 0]
DaycountAdjustedCashFlow: [0 0]
ProjectionCurve: [1x2 ratecurve]
BusinessDayConvention: ["actual" "actual"]
Holidays: NaT
EndMonthRule: [1 1]
StartDate: NaT
Maturity: 15-Sep-2030
Name: "swap_instrument"
Создайте LinearGaussian2F Объект модели
Используйте finmodel создать LinearGaussian2F объект модели.
LinearGaussian2FModel = finmodel("LinearGaussian2F",'Alpha1',0.07,'Sigma1',0.01,'Alpha2',0.5,'Sigma2',0.006,'Correlation',-0.7)
LinearGaussian2FModel =
LinearGaussian2F with properties:
Alpha1: 0.0700
Sigma1: 0.0100
Alpha2: 0.5000
Sigma2: 0.0060
Correlation: -0.7000
Создайте IRMonteCarlo Объект калькулятора цен
Используйте finpricer создать IRMonteCarlo объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".
outPricer = finpricer("IRMonteCarlo",'Model',LinearGaussian2FModel,'DiscountCurve',myRC,'SimulationDates',ZeroDates)
outPricer =
G2PPMonteCarlo with properties:
NumTrials: 1000
RandomNumbers: []
DiscountCurve: [1x1 ratecurve]
SimulationDates: [15-Jul-2020 15-Jan-2021 15-Jan-2022 ... ]
Model: [1x1 finmodel.LinearGaussian2F]
Цена Swap Инструмент
Используйте price вычислить цену и чувствительность для Swap инструмент.
[Price,outPR] = price(outPricer,Swap,["all"])Price = 23.6657
outPR =
priceresult with properties:
Results: [1x4 table]
PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Delta Gamma Vega
______ ______ _______ ______
23.666 819.11 -8748.9 0 0
swap является контрактом между двумя сторонами, обязывающими стороны обмениваться будущими потоками наличности.
Подкачка ванили состоит из участка с плавающей ставкой и участка с фиксированной процентной ставкой.
swap with an amortization schedule возмещает часть принципала (номинальная стоимость) наряду с купонными платежами.
Подкачка с расписанием амортизации используется, чтобы управлять риском процентной ставки и служить инструментом управления потока наличности. Для этого конкретного типа подкачки отвлеченная сумма уменьшается в зависимости от времени. Это означает, что выплаты процентов уменьшаются не только на плавающем участке, но также и на фиксированном участке. Используйте Notional аргумент пары "имя-значение", чтобы поддержать расписание амортизации.
В forward interest-rate swap ссудой фиксированной процентной ставки обмениваются на ссуду плавающей процентной ставки в заданную дату будущего.
StartDate аргумент пары "имя-значение" поддерживает будущую дату прямой подкачки.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.