Cap
объект прибора
Создайте и оцените Cap
объект инструмента, использующий этот рабочий процесс:
Дополнительные сведения об этом рабочем процессе см. в разделе Запуске с рабочими процессами с использованием объектной среды для ценообразования финансовых инструментов.
Для получения дополнительной информации о доступных моделях и методах ценообразования для Cap
инструмент, см. «Выбор инструментов», «Модели» и «Цены».
создает CapOpt
= fininstrument(InstrumentType
,'Strike
',strike_value,'Maturity
',maturity_date)Cap
объект путем определения InstrumentType
и устанавливает свойства для необходимых аргументов пары "имя-значение" Strike
и Maturity
.
The 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'
- Прописная буква Cap strikeПредельная цена доставки, заданная как разделенная разделенными запятой парами, состоящая из 'Strike'
и скаляр неотрицательное десятичное значение.
Типы данных: double
'Maturity'
- Дата зрелости прописной буквыДата зрелости прописной буквы, заданная как разделенная разделенными запятой парами, состоящая из 'ExerciseDate'
и скалярное значение datetime, серийный номер даты, вектор символов даты или строка даты.
Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime
потому что Maturity
свойство сохранено как datetime.
Типы данных: double
| char
| string
| datetime
Cap
Аргументы в виде пар имя-значение'Reset'
- Сброс частотных платежей в год 1
(по умолчанию) | число со значением 0
, 1
, 2
, 3
, 4
, 6
, или 12
Сбрасывайте частотные платежи в год, заданные как разделенная разделенными запятой парами, состоящая из 'Reset'
и скалярным числом.
Типы данных: double
'Basis'
- базис подсчета дней0
(фактический/фактический) (по умолчанию) | целое число от 0
на 13
Базис отсчета дней, заданный как разделенная разделенными запятой парами, состоящая из 'Basis'
и скаляр целое число с одним из следующих значений:
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
'Principal'
- Основная сумма или график основного значения100
(по умолчанию) | скалярное число | расписаниеГрафик основной суммы или основного значения, заданный как разделенная разделенными запятой парами, состоящая из 'Principal'
и скаляр число или расписание.
Principal
принимает timetable
, где первый столбец - даты, а второй - связанное с ним основное значение. Дата указывает на последний день действия основного значения.
Типы данных: double
| timetable
'ResetOffset'
- Задержка в настройке скорости0
(по умолчанию) | числоЗадержка в настройке скорости, заданная как разделенная разделенными запятой парами, состоящая из 'ResetOffset'
и скалярным числом.
Типы данных: double
'DaycountAdjustedCashFlow'
- Флаг для корректировки денежных потоков на основе фактического количества дней периодаfalse
(по умолчанию) | значение true
или false
Флаг для корректировки денежных потоков на основе фактического счетчика дней периода, заданный как разделенная разделенными запятой парами, состоящая из 'DaycountAdjustedCashFlow'
и скаляр со значением true
или false
.
Типы данных: logical
'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'
и a ratecurve
объект. Этот объект должен быть создан с помощью ratecurve
. Используйте этот необязательный вход, если прямая кривая отличается от кривой скидки.
Типы данных: object
'Name'
- Определяемое пользователем имя прибора" "
(по умолчанию) | строку | вектор символовОпределяемое пользователем имя инструмента, заданное как разделенная разделенными запятой парами, состоящая из 'Name'
и скалярную строку или вектор символов.
Типы данных: char
| string
Strike
- значение цены опционной доставкиОпция опциона, возвращенная в виде скалярного неотрицательного значения.
Типы данных: double
Maturity
- Дата зрелости прописной буквыДата зрелости прописной буквы, возвращенная как datetime.
Типы данных: datetime
Reset
- Сброс частотных платежей в год 1
(по умолчанию) | числоСбрасывайте платежи частоты в год, возвращайте как скалярное число.
Типы данных: double
Basis
- базис подсчета дней0
(фактический/фактический) (по умолчанию) | целое число от 0
на 13
Базис отсчета дней, возвращенный как скалярное целое число.
Типы данных: double
Principal
- Основная сумма или график основного значения100
(по умолчанию) | число | расписаниеСумма основной суммы или график основного значения, возвращенные в виде скалярного числа для суммы основной суммы или расписания для графика основного значения.
Типы данных: double
| timetable
ResetOffset
- Задержка в настройке скорости0
(по умолчанию) | числоЗадержка в настройке скорости, возвращенная в виде скалярного числа.
Типы данных: double
DaycountAdjustedCashFlow
- Флаг для корректировки денежных потоков на основе фактического количества дней периодаfalse
(по умолчанию) | значение true
или false
Флаг для корректировки денежных потоков на основе фактического количества дней периода, возвращаемый как логический со значением true
или false
.
Типы данных: logical
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
и используйте объект pricer 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
и используйте объект pricer 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
и используйте объект pricer 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
и используйте объект pricer 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.