Cap
инструментальный объект
Создайте и оцените Cap
инструментальный объект, использующий этот рабочий процесс:
Для получения дополнительной информации об этом рабочем процессе смотрите Начало работы с Рабочими процессами Используя Основанную на объектах Среду для Оценки Финансовых инструментов.
Для получения дополнительной информации о доступных моделях и методах ценообразования для Cap
инструмент, смотрите, Выбирают Instruments, Models и Pricers.
создает CapOpt
= fininstrument(InstrumentType
,'Strike
',strike_value,'Maturity
',maturity_date)Cap
объект путем определения InstrumentType
и устанавливает свойства для необходимых аргументов пары "имя-значение" Strike
и Maturity
.
Cap
инструмент поддерживает дно амортизации и ваниль.
устанавливает дополнительные свойства с помощью дополнительных пар "имя-значение" в дополнение к обязательным аргументам в предыдущем синтаксисе. Например, CapOpt
= fininstrument(___,Name,Value
)CapOpt = fininstrument("Cap",'Strike',0.65,'Maturity',datetime(2019,1,30),'Reset',4,'Principal',100,'ResetOffset',1,'Basis',1,'DaycountAdjustedCashFlow',true,'BusinessDayConvention',"follow",'ProjectionCurve',ratecurve_object,'Name',"cap_option")
создает Cap
опция с забастовкой 0,65. Можно задать несколько аргументов пары "имя-значение".
InstrumentType
— Инструментальный тип"Cap"
| вектор символов со значением 'Cap'
Инструментальный тип в виде строки со значением "Cap"
или вектор символов со значением 'Cap'
.
Типы данных: char |
string
Cap
Аргументы в виде пар имя-значениеЗадайте требуемые и дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
CapOpt = fininstrument("Cap",'Strike',0.65,'Maturity',datetime(2019,1,30),'Reset',4,'Principal',100,'ResetOffset',1,'Basis',1,'DaycountAdjustedCashFlow',true,'BusinessDayConvention',"follow",'ProjectionCurve',ratecurve_object,'Name',"cap_option")
Cap
Аргументы в виде пар имя-значение'Strike'
— Цена исполнения опциона днаЦена исполнения опциона дна в виде разделенной запятой пары, состоящей из 'Strike'
и скалярное неотрицательное десятичное значение.
Типы данных: double
'Maturity'
— Дата погашения днаДата погашения дна в виде разделенной запятой пары, состоящей из 'ExerciseDate'
и скалярный datetime, последовательный номер даты, вектор символов даты или строка даты.
Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime
потому что Maturity
свойство хранится как datetime.
Типы данных: double |
char
| string
| datetime
Cap
Аргументы в виде пар имя-значение'Reset'
— Сбросьте платежи частоты в год
(значение по умолчанию) | числовой со значением 0
, 1
, 2
, 3
, 4
, 6
, или 12
Сбросьте платежи частоты в год в виде разделенной запятой пары, состоящей из 'Reset'
и числовой скаляр.
Типы данных: double
'Basis'
— Основание дневного количества
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
к 13
Основание дневного количества в виде разделенной запятой пары, состоящей из '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
принимает a timetable
, где первый столбец является датами, и второй столбец является своим связанным основным значением. Дата указывает в последний день, что основное значение допустимо.
Типы данных: double |
timetable
'ResetOffset'
— Отстаньте в установлении норм
(значение по умолчанию) | числовойОтстаньте в установлении норм в виде разделенной запятой пары, состоящей из 'ResetOffset'
и числовой скаляр.
Типы данных: double
'DaycountAdjustedCashFlow'
— Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периодаfalse
(значение по умолчанию) | значение true
или false
Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода в виде разделенной запятой пары, состоящей из 'DaycountAdjustedCashFlow'
и скаляр со значением true
или false
.
Типы данных: логический
'BusinessDayConvention'
— Соглашения рабочего дня"actual"
(значение по умолчанию) | представляет в виде строки | вектор символовСоглашения рабочего дня в виде разделенной запятой пары, состоящей из 'BusinessDayConvention'
и скалярная строка или вектор символов для соглашения рабочего дня. Выбор для соглашения рабочего дня определяет, как обработаны нерабочие дни. Нерабочие дни заданы как выходные плюс любая другая дата, что компании не открыты (например, установленные законом праздники). Значения:
"actual"
— Нерабочие дни эффективно проигнорированы. Потоки наличности, которые падают в нерабочие дни, приняты, чтобы быть распределенными в фактическую дату.
"follow"
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день.
"modifiedfollow"
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в следующий рабочий день. Однако, если следующий рабочий день находится в различном месяце, предыдущий рабочий день принят вместо этого.
"previous"
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день.
"modifiedprevious"
— Потоки наличности, которые падают в нерабочий день, приняты, чтобы быть распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в различном месяце, следующий рабочий день принят вместо этого.
Типы данных: char |
string
'Holidays'
— Праздники используются в вычислении рабочих днейNaT
(значение по умолчанию) | datetime | массив ячеек из символьных векторов | массив строки даты | последовательный номер датыПраздники, используемые в вычислении рабочих дней в виде разделенной запятой пары, состоящей из 'Holidays'
и даты с помощью datetimes, последовательные числа даты, массив ячеек векторов символов даты или массив строки даты. Например:
H = holidays(datetime('today'),datetime(2025,12,15)); CapOpt = fininstrument("Cap",'Strike',100,'Maturity',datetime(2025,12,15),'Holidays',H)
Типы данных: double |
cell
| datetime
| string
'ProjectionCurve'
— Кривая уровня используется в генерации будущих потоков наличностиratecurve.empty
(значение по умолчанию) | ratecurve
объектКривая уровня, используемая в проектировании будущих потоков наличности в виде разделенной запятой пары, состоящей из 'ProjectionCurve'
и ratecurve
объект. Этот объект должен быть создан с помощью ratecurve
. Используйте этот дополнительный вход, если прямая кривая отличается от дисконтной кривой.
Типы данных: object
'Name'
— Пользовательское имя для инструмента" "
(значение по умолчанию) | представляет в виде строки | вектор символовПользовательское имя для инструмента в виде разделенной запятой пары, состоящей из 'Name'
и скалярная строка или вектор символов.
Типы данных: char |
string
Strike
— Значение цены исполнения опциона опцииЗначение цены исполнения опциона опции, возвращенное как скалярное неотрицательное значение.
Типы данных: double
Maturity
— Дата погашения днаДата погашения дна, возвращенная как datetime.
Типы данных: datetime
Reset
— Сбросьте платежи частоты в год
(значение по умолчанию) | числовойСбросьте платежи частоты в год, возвращенный как числовой скаляр.
Типы данных: double
Basis
— Основание дневного количества
(фактическое/фактическое) (значение по умолчанию) | целое число от 0
к 13
Основание дневного количества, возвращенное как скалярное целое число.
Типы данных: double
Principal
— Основная сумма или основное расписание значения
(значение по умолчанию) | числовой | расписаниеОсновная сумма или основное расписание значения, возвращенное как скаляр, числовой для основной суммы или расписания для основного расписания значения.
Типы данных: double |
timetable
ResetOffset
— Отстаньте в установлении норм
(значение по умолчанию) | числовойОтстаньте в установлении норм, возвращенном как числовой скаляр.
Типы данных: double
DaycountAdjustedCashFlow
— Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периодаfalse
(значение по умолчанию) | значение true
или false
Отметьте, чтобы настроить потоки наличности на основе фактического дневного количества периода, возвращенного как логическое со значением true
или false
.
Типы данных: логический
BusinessDayConvention
— Соглашения рабочего дня"actual"
(значение по умолчанию) | строкаСоглашения рабочего дня, возвращенные как строка.
Типы данных: string
Holidays
— Праздники используются в вычислении рабочих днейNaT
(значение по умолчанию) | datetimeПраздники используются в вычислении рабочих дней, возвращенных как datetimes.
Типы данных: datetime
ProjectionCurve
— Кривая уровня используется в генерации будущих потоков наличностиratecurve.empty
(значение по умолчанию) | структураКривая уровня, используемая в проектировании будущих потоков наличности, возвращенных как ratecurve
объект.
Типы данных: object
Name
— Пользовательское имя для инструмента" "
(значение по умолчанию) | строкаПользовательское имя для инструмента, возвращенного как строка.
Типы данных: string
Этот пример показывает рабочий процесс, чтобы оценить ваниль Cap
инструмент при использовании HullWhite
модель и HullWhite
метод ценообразования.
Создайте Cap
Инструментальный объект
Используйте fininstrument
создать Cap
инструментальный объект.
CapOpt = fininstrument("Cap",'Strike',0.02,'Maturity',datetime(2019,1,30),'Reset',4,'Principal',100,'Basis',8,'Name',"cap_option")
CapOpt = Cap with properties: Strike: 0.0200 Maturity: 30-Jan-2019 ResetOffset: 0 Reset: 4 Basis: 8 Principal: 100 ProjectionCurve: [0x0 ratecurve] DaycountAdjustedCashFlow: 0 BusinessDayConvention: "actual" Holidays: NaT Name: "cap_option"
Создайте HullWhite
Объект модели
Используйте finmodel
создать HullWhite
объект модели.
HullWhiteModel = finmodel("HullWhite",'Alpha',0.62,'Sigma',0.99)
HullWhiteModel = HullWhite with properties: Alpha: 0.6200 Sigma: 0.9900
Создайте ratecurve
Объект
Создайте ratecurve
объект с помощью ratecurve
.
Settle = datetime(2018,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-2018 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создайте HullWhite
Объект калькулятора цен
Используйте finpricer
создать HullWhite
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
outPricer = finpricer("analytic",'Model',HullWhiteModel,'DiscountCurve',myRC)
outPricer = HullWhite with properties: DiscountCurve: [1x1 ratecurve] Model: [1x1 finmodel.HullWhite]
Цена Cap
Инструмент
Используйте price
вычислить цену за Cap
инструмент.
Price = price(outPricer,CapOpt)
Price = 2.9366
Этот пример показывает рабочий процесс, чтобы оценить ваниль Cap
инструмент, когда вы используете Normal
модель и Normal
метод ценообразования.
Создайте ratecurve
Объект
Создайте ratecurve
объект с помощью ratecurve
поскольку базовая процентная ставка изгибается для cap
инструмент.
Settle = datetime(2018,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-2018 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создайте Cap
Инструментальный объект
Используйте fininstrument
создать Cap
инструментальный объект.
CapOpt = fininstrument("Cap",'Maturity',datetime(2022,9,15),'Strike',0.04,'ProjectionCurve',myRC)
CapOpt = Cap with properties: Strike: 0.0400 Maturity: 15-Sep-2022 ResetOffset: 0 Reset: 1 Basis: 0 Principal: 100 ProjectionCurve: [1x1 ratecurve] DaycountAdjustedCashFlow: 0 BusinessDayConvention: "actual" Holidays: NaT Name: ""
Создайте Normal
Объект модели
Используйте finmodel
создать Normal
объект модели.
NormalModel = finmodel("Normal",'Volatility',0.01)
NormalModel = Normal with properties: Volatility: 0.0100
Создайте Normal
Объект калькулятора цен
Используйте finpricer
создать Normal
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
outPricer = finpricer("analytic",'DiscountCurve',myRC,'Model',NormalModel)
outPricer = Normal with properties: DiscountCurve: [1x1 ratecurve] Shift: 0 Model: [1x1 finmodel.Normal]
Цена Cap
Инструмент
Используйте price
вычислить цену за Cap
инструмент.
[Price, outPR] = price(outPricer, CapOpt)
Price = 0.0701
outPR = priceresult with properties: Results: [1x1 table] PricerData: []
Этот пример показывает рабочий процесс, чтобы оценить амортизацию Cap
инструмент, когда вы используете Black
модель и Black
метод ценообразования.
Создайте Cap
Инструментальный объект
Используйте fininstrument
создать амортизацию Cap
инструментальный объект.
CADates = [datetime(2020,9,1) ; datetime(2023,9,1)]; CAPrincipal = [100; 85]; Principal = timetable(CADates,CAPrincipal); CapOpt = fininstrument("Cap",'Maturity',datetime(2023,9,1),'Strike',0.015,'Principal',Principal,'Name',"cap_amortizing_option")
CapOpt = Cap with properties: Strike: 0.0150 Maturity: 01-Sep-2023 ResetOffset: 0 Reset: 1 Basis: 0 Principal: [2x1 timetable] ProjectionCurve: [0x0 ratecurve] DaycountAdjustedCashFlow: 0 BusinessDayConvention: "actual" Holidays: NaT Name: "cap_amortizing_option"
Создайте Black
Объект модели
Используйте finmodel
создать Black
объект модели.
BlackModel = finmodel("Black",'Volatility',0.2)
BlackModel = Black with properties: Volatility: 0.2000 Shift: 0
Создайте ratecurve
Объект
Создайте ratecurve
объект с помощью ratecurve
.
Settle = datetime(2018,9,1); Type = 'zero'; ZeroTimes = [calyears([1 2 3 4 5 7 10])]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168]'; ZeroDates = Settle + ZeroTimes; myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates);
Создайте Black
Объект калькулятора цен
Используйте finpricer
создать Black
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
outPricer = finpricer("analytic",'Model',BlackModel,'DiscountCurve',myRC)
outPricer = Black with properties: Model: [1x1 finmodel.Black] DiscountCurve: [1x1 ratecurve]
Цена Cap
Инструмент
Используйте price
вычислить цену за Cap
инструмент.
Price = price(outPricer,CapOpt)
Price = 0.3897
Этот пример показывает рабочий процесс, чтобы оценить ваниль Cap
инструмент при использовании HullWhite
модель и IRTree
метод ценообразования.
Создайте Cap
Инструментальный объект
Используйте fininstrument
создать Cap
инструментальный объект.
CapOpt = fininstrument("Cap",'Strike',0.02,'Maturity',datetime(2020,1,30),'Reset',4,'Principal',100,'Basis',8,'Name',"cap_option")
CapOpt = Cap with properties: Strike: 0.0200 Maturity: 30-Jan-2020 ResetOffset: 0 Reset: 4 Basis: 8 Principal: 100 ProjectionCurve: [0x0 ratecurve] DaycountAdjustedCashFlow: 0 BusinessDayConvention: "actual" Holidays: NaT Name: "cap_option"
Создайте HullWhite
Объект модели
Используйте finmodel
создать HullWhite
объект модели.
HullWhiteModel = finmodel("HullWhite",'Alpha',0.01,'Sigma',0.10)
HullWhiteModel = HullWhite with properties: Alpha: 0.0100 Sigma: 0.1000
Создайте ratecurve
Объект
Создайте ratecurve
объект с помощью ratecurve
.
Settle = datetime(2018,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-2018 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Создайте IRTree
Объект калькулятора цен
Используйте finpricer
создать IRTree
объект калькулятора цен и использование ratecurve
объект для 'DiscountCurve'
аргумент пары "имя-значение".
CFdates = cfdates(Settle, CapOpt.Maturity, CapOpt.Reset, CapOpt.Basis); outPricer = finpricer("IRTree",'Model',HullWhiteModel,'DiscountCurve',myRC,'TreeDates',CFdates')
outPricer = HWBKTree with properties: Tree: [1x1 struct] TreeDates: [6x1 datetime] Model: [1x1 finmodel.HullWhite] DiscountCurve: [1x1 ratecurve]
Цена Cap
Инструмент
Используйте price
вычислить цену и чувствительность для Cap
инструмент.
[Price, outPR] = price(outPricer,CapOpt,["all"])
Price = 2.7733
outPR = priceresult with properties: Results: [1x4 table] PricerData: [1x1 struct]
outPR.Results
ans=1×4 table
Price Vega Gamma Delta
______ ______ _______ ______
2.7733 31.655 -49.227 28.932
cap является контрактом, который включает гарантию, которая устанавливает максимальную процентную ставку платежи держателя, на основе в противном случае плавающей процентной ставки.
Выплата для дна:
Для получения дополнительной информации смотрите Кэпа.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.