Swap
инструментальный объект
Создайте и оцените Swap
инструментальный объект, использующий этот рабочий процесс:
Используйте fininstrument
создать Swap
инструментальный объект.
Используйте ratecurve
задавать модель кривой для Swap
инструмент.
Используйте finpricer
задавать Discount
метод ценообразования для 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'
.
Типы данных: char |
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, последовательный номер даты, вектор символов даты или строка даты.
Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime
потому что Maturity
свойство хранится как datetime.
Типы данных: char |
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
объектКривая уровня для проектирования плавающих потоков наличности в виде разделенной запятой пары, состоящей из 'ProjectionCurve'
и 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'
и числовой скаляр или расписание. Используйте скаляр в ванили Swap
инструмент и расписание для амортизации Swap
инструмент.
Notional
принимает скаляр для основной суммы (или NINST
- 2
матрица, если Notional
отличается для каждого участка), или timetable
для основных расписаний значения. Для расписаний первый столбец расписания является датами, и второй столбец является связанным отвлеченным основным значением. Дата указывает в последний день, что основное значение допустимо.
Типы данных: timetable
| double
'LatestFloatingRate'
— Последний плавающий курс для участков плавающихratecurve
должен содержать эту информацию (значение по умолчанию) | скаляр, числовой | векторПоследний плавающий курс для участков плавающих в виде разделенной запятой пары, состоящей из 'LatestFloatingRate'
и скалярное числовое значение.
LatestFloatingRate
NINST
- 1
матрица (или NINST
- 2
матрица, если LatestFloatingRate
отличается для каждого участка).
Типы данных: double
'ResetOffset'
— Отстаньте в установлении норм
(значение по умолчанию) | векторОтстаньте в установлении норм в виде разделенной запятой пары, состоящей из 'ResetOffset'
и NINST
- 2
вектор.
Типы данных: double
'DaycountAdjustedCashFlow'
— Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периодаfalse
(значение по умолчанию) | значение true
или false
Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода в виде разделенной запятой пары, состоящей из 'DaycountAdjustedCashFlow'
и NINST
- 1
(или NINST
- 2
если AdjustCashFlowsBasis
отличается для каждого участка) logicals со значениями true
или false
.
Типы данных: логический
'BusinessDayConvention'
— Соглашения рабочего дня"actual"
(значение по умолчанию) | представляет в виде строки | массив строк | вектор символов | массив ячеек из символьных векторовСоглашения рабочего дня в виде разделенной запятой пары, состоящей из 'BusinessDayConvention'
и строка (или массив строк, если BusinessDayConvention
отличается для каждого участка) или вектор символов (или NINST
- 2
массив ячеек из символьных векторов, если BusinessDayConvention
отличается для каждого участка). Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Значения:
"actual"
— Нерабочие дни эффективно проигнорированы. Потоки наличности, которые падают в нерабочие дни, приняты, чтобы быть распределенными в фактическую дату.
"follow"
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день.
"modifiedfollow"
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день. Однако, если следующий рабочий день находится в различном месяце, предыдущий рабочий день принят вместо этого.
"previous"
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день.
"modifiedprevious"
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в различном месяце, следующий рабочий день принят вместо этого.
Типы данных: char |
cell
| string
'Holidays'
— Праздники используются в вычислении рабочих днейNaT
(значение по умолчанию) | datetime | массив ячеек векторов символов даты | массив строки даты | последовательные числа датыПраздники, используемые в вычислении рабочих дней в виде разделенной запятой пары, состоящей из 'Holidays'
и даты с помощью 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
Правило конца месяца отмечает для генерации дат когда Maturity
дата конца месяца в течение месяца с 30 или меньшим количеством дней в виде разделенной запятой пары, состоящей из 'EndMonthRule'
и логическое значение true
или false
использование NINST
- 1
(или NINST
- 2
если EndMonthRule
отличается для каждого участка).
Если вы устанавливаете EndMonthRule
к false
, программное обеспечение игнорирует правило, означая, что платежный день всегда является тем же числовым днем месяца.
Если вы устанавливаете EndMonthRule
к true
, программное обеспечение устанавливает правило о, означая, что платежный день всегда является прошлым фактическим днем месяца.
Типы данных: логический
'StartDate'
— Подкачка даты запускаетсяSettle
дата (значение по умолчанию) | datetime | последовательный номер даты | вектор символов даты | строка датыПодкачка даты запускается в виде разделенной запятой пары, состоящей из 'StartDate'
и скалярный datetime, последовательный номер даты, вектор символов даты или строка даты.
Используйте StartDate
оценивать прямую подкачку, то есть, подкачку, которая запускается позднее.
Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime
потому что StartDate
свойство хранится как datetime.
Типы данных: char |
double
| string
| datetime
'Name'
— Пользовательское имя для инструмента" "
(значение по умолчанию) | представляет в виде строки | вектор символовПользовательское имя для инструмента в виде разделенной запятой пары, состоящей из 'Name'
и скалярная строка или вектор символов.
Типы данных: char |
string
Maturity
— Дата погашенияДата погашения, возвращенная как datetime.
Типы данных: 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
объект.
Типы данных: object
Reset
— Сбросьте частоту в год для каждой подкачки
(значение по умолчанию) | векторСбросьте частоту в год для каждой подкачки, возвращенной как NINST
- 2
вектор.
Типы данных: double
Basis
— Дневное основание количества
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
к 13
Дневное основание количества, возвращенное как NINST
- 2
вектор.
Типы данных: double
ResetOffset
— Отстаньте в установлении норм
(значение по умолчанию) | векторОтстаньте в установлении норм, возвращенном как NINST
- 2
вектор.
Типы данных: double
Notional
— Отвлеченная основная сумма или основные расписания значения
(значение по умолчанию) | скаляр, числовой | расписаниеОтвлеченная основная сумма, возвращенная как числовой скаляр или расписание.
Типы данных: cell
| double
LatestFloatingRate
— Уровень для следующей плавающей оплатыratecurve
должен содержать эту информацию (значение по умолчанию) | числовой скалярУровень для следующей плавающей оплаты, установленной в последнюю дату сброса, возвратился как скалярное числовое значение.
Типы данных: double
DaycountAdjustedCashFlow
— Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периодаfalse
(значение по умолчанию) | значение true
или false
Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода, возвращенного как NINST
- 1
матрица (или NINST
- 2
матрица, если AdjustCashFlowsBasis
отличается для каждого участка) logicals со значениями true
или false
.
Типы данных: логический
BusinessDayConvention
— Соглашения рабочего дня"actual"
(значение по умолчанию) | представляет в виде строки | массив строкСоглашения рабочего дня, возвращенные как строка или NINST
- 2
массив строк, если BusinessDayConvention
отличается для каждого участка.
Типы данных: char |
cell
| string
Holidays
— Праздники используются в вычислении рабочих днейNaT
(значение по умолчанию) | datetimeПраздники используются в вычислении рабочих дней, возвращенных как datetimes.
Типы данных: datetime
EndMonthRule
— Правило конца месяца отмечает для генерации дат когда Maturity
дата конца месяца в течение месяца с 30 или меньшим количеством дней[true true]
(в действительности) (значение по умолчанию) | логический со значением true
или false
Правило конца месяца отмечает для генерации дат когда Maturity
дата конца месяца в течение месяца с 30 или меньшим количеством дней, возвращенных как логический скаляр.
Типы данных: логический
StartDate
— Подкачка даты запускаетсяSettle
дата (значение по умолчанию) | datetimeПодкачка даты запускается, возвращенный как datetime.
Типы данных: datetime
Name
— Пользовательское имя для инструмента" "
(значение по умолчанию) | строкаПользовательское имя для инструмента, возвращенного как строка.
Типы данных: string
cashflows | Вычисляет поток наличности для FixedBond , FloatBond подкачка , FRA подкачка , или Deposit инструмент |
Этот пример показывает рабочий процесс, чтобы оценить ваниль Swap
инструмент, когда вы используете ratecurve
и Discount
метод ценообразования.
Создайте Объект ratecurve
Создайте ratecurve
объект с помощью ratecurve
поскольку базовая процентная ставка изгибается для Swap
инструмент.
Settle = datetime(2019,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: [10×1 datetime] Rates: [10×1 double] Settle: 15-Jan-2019 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создайте Swap
Инструментальный объект
Используйте fininstrument
создать ваниль Swap
инструментальный объект.
Swap = fininstrument("Swap",'Maturity',datetime(2020,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: [1×2 ratecurve] BusinessDayConvention: ["actual" "actual"] Holidays: NaT EndMonthRule: [1 1] StartDate: NaT Maturity: 15-Sep-2020 Name: "swap_instrument"
Создайте Discount
Объект калькулятора цен
Используйте finpricer
создать Discount
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
outPricer = finpricer("Discount", 'DiscountCurve',myRC)
outPricer = Discount with properties: DiscountCurve: [1×1 ratecurve] ShiftValue: 1.0000e-04
Цена Swap
Инструмент
Используйте price
вычислить цену и чувствительность для ванили Swap
инструмент.
[Price, outPR] = price(outPricer, Swap,["all"])
Price = 2.3902
outPR = priceresult with properties: Results: [1×2 table] PricerData: []
outPR.Results
ans=1×2 table
Price DV01
______ __________
2.3902 -0.0098199
Этот пример показывает рабочий процесс, чтобы оценить амортизацию Swap
инструмент, когда вы используете ratecurve
и Discount
метод ценообразования.
Создайте ratecurve
Объект
Создайте ratecurve
объект с помощью ratecurve
поскольку базовая процентная ставка изгибается для Swap
инструмент.
Settle = datetime(2019,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-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.6465
outPR = priceresult with properties: Results: [1x2 table] PricerData: []
outPR.Results
ans=1×2 table
Price DV01
______ ________
5.6465 0.022987
swap является контрактом между двумя сторонами, обязывающими стороны обмениваться будущими потоками наличности.
Подкачка ванили состоит из участка с плавающей ставкой и участка с фиксированной процентной ставкой.
swap with an amortization schedule возмещает часть принципала (номинальная стоимость) наряду с купонными платежами.
Подкачка с расписанием амортизации используется, чтобы управлять риском процентной ставки и служить инструментом управления потока наличности. Для этого конкретного типа подкачки отвлеченная сумма уменьшается в зависимости от времени. Это означает, что выплаты процентов уменьшаются не только на плавающем участке, но также и на фиксированном участке. Используйте Notional
аргумент пары "имя-значение", чтобы поддержать расписание амортизации.
В forward interest-rate swap ссудой фиксированной процентной ставки обмениваются на ссуду плавающей процентной ставки в заданную дату будущего.
StartDate
аргумент пары "имя-значение" поддерживает будущую дату прямой подкачки.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.