Cap объект прибора
Создать и оценить Cap объект инструмента с использованием этого рабочего процесса:
Дополнительные сведения об этом потоке операций см. в разделе Начало работы с потоками операций с использованием объектной структуры для расчета цен на финансовые инструменты.
Для получения дополнительной информации о доступных моделях и методах ценообразования для Cap см. раздел Выбор приборов, моделей и прайсеров.
создает 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' - Цена 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' и даты с использованием времени даты, серийных номеров дат, массива ячеек векторов символов даты или массива строк даты. Например:
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
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Праздники, используемые в вычислительных рабочих днях, возвращенные в качестве дат.
Типы данных: 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 object и используйте 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 object и используйте 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 object и используйте 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 object и используйте 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
Ограничение - это договор, который включает гарантию, устанавливающую максимальную процентную ставку, выплачиваемую держателем, на основе плавающей процентной ставки.
Выплата для предела равна: , 0)
Дополнительные сведения см. в разделе Кепка.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.