Cliquet

Cliquet инструментальный объект

Описание

Создайте и оцените Cliquet инструментальный объект для одного или нескольких инструментов Cliquet с помощью этого рабочего процесса:

  1. Использование fininstrument создать Cliquet инструментальный объект для одного или нескольких инструментов Cliquet.

  2. Использование finmodel задавать BlackScholes, Bates, Merton, или Heston модель для Cliquet инструментальный объект.

  3. Выберите метод ценообразования.

    • При использовании BlackScholes модель, использовать finpricer задавать Rubinstein метод ценообразования для одного или нескольких Cliquet инструменты.

    • При использовании BlackScholes, Heston, Bates, или Merton модель, использовать finpricer задавать AssetMonteCarlo метод ценообразования для одного или нескольких Cliquet инструменты.

Для получения дополнительной информации об этом рабочем процессе смотрите Начало работы с Рабочими процессами Используя Основанную на объектах Среду для Оценки Финансовых инструментов.

Для получения дополнительной информации о доступных моделях и методах ценообразования для Cliquet инструмент, смотрите, Выбирают Instruments, Models и Pricers.

Создание

Описание

пример

CliquetOpt = fininstrument(InstrumentType,'ResetDates',reset_dates) создает Cliquet инструментальный объект для одного или нескольких инструментов Cliquet путем определения InstrumentType и свойства наборов с помощью необходимого аргумента пары "имя-значение" для ResetDates.

пример

TouchOpt = fininstrument(___,Name,Value) устанавливает дополнительные свойства с помощью дополнительных аргументов пары "имя-значение" в дополнение к обязательным аргументам в предыдущем синтаксисе. Например, CliquetOpt = fininstrument("Cliquet",'ResetDates',ResetDates,'Name',"Cliquet_option") создает Cliquet опция. Можно задать несколько аргументов пары "имя-значение".

Входные параметры

развернуть все

Инструментальный тип в виде строки со значением "Cliquet", вектор символов со значением 'Cliquet', NINST- 1 массив строк со значениями "Cliquet", или NINST- 1 массив ячеек из символьных векторов со значениями 'Cliquet'.

Типы данных: char | cell | string

Cliquet Аргументы в виде пар имя-значение

Задайте требуемые и дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: CliquetOpt = fininstrument("Cliquet",'ResetDates',ResetDates,'Name',"Cliquet_option")
Необходимый Cliquet Аргументы в виде пар имя-значение

развернуть все

Сбросьте даты, когда забастовка опции будет установлена в виде разделенной запятой пары, состоящей из 'ResetDates' и 1- NumDates вектор из datetimes. Последний элемент соответствует дате погашения Cliquet опция.

cliquet опция является зависимой от предшествующего пути развития, экзотической опцией, которая периодически улаживает и затем сбрасывает ее цену исполнения опциона на уровне базового актива во время урегулирования. Сброс цены исполнения опциона не является условным выражением к значению базового актива в дату сброса.

Типы данных: datetime

Дополнительный Cliquet Аргументы в виде пар имя-значение

развернуть все

Тип опции в виде разделенной запятой пары, состоящей из 'OptionType' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.

Типы данных: char | string

Осуществление опции разрабатывает в виде разделенной запятой пары, состоящей из 'ExerciseStyle' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.

Типы данных: string | char

Тип опции в виде разделенной запятой пары, состоящей из 'ReturnType' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.

Типы данных: char | string

Исходная цена исполнения опциона, используемая для первой даты сброса в виде разделенной запятой пары, состоящей из 'InitialStrike' и скалярное неотрицательное числовое значение или NINST- 1 вектор из неотрицательных числовых значений.

Типы данных: double

Локальное дно в виде разделенной запятой пары, состоящей из 'LocalCap' и скалярное неотрицательное числовое значение или NINST- 1 вектор из неотрицательных числовых значений.

Типы данных: double

Локальный пол в виде разделенной запятой пары, состоящей из 'LocalFloor' и скалярное неотрицательное числовое значение или NINST- 1 вектор из неотрицательных числовых значений.

Типы данных: double

Глобальное дно в виде разделенной запятой пары, состоящей из 'GlobalCap' и скалярное неотрицательное числовое значение или NINST- 1 вектор из неотрицательных числовых значений.

Типы данных: double

Глобальный пол в виде разделенной запятой пары, состоящей из 'GlobalFloor' и скалярное неотрицательное числовое значение или NINST- 1 вектор из неотрицательных числовых значений.

Типы данных: double

Пользовательское имя для одного или нескольких инструментов в виде разделенной запятой пары, состоящей из 'Name' и скалярная строка или вектор символов или NINST- 1 массив ячеек из символьных векторов или массив строк.

Типы данных: char | cell | string

Свойства

развернуть все

Сбросьте даты, когда забастовка опции будет установлена, возвращена как 1- NumDates вектор из datetimes.

Типы данных: datetime

Тип опции, возвращенный как скалярная строка.

Типы данных: string

Тип опции, возвращенный как скалярная строка.

Типы данных: string

Исходная цена исполнения опциона используется для первой даты сброса, возвращенной как скалярное неотрицательное числовое значение.

Типы данных: double

Стиль осуществления опции, возвращенный как скалярная строка.

Типы данных: string

Локальное дно, возвращенное как скалярное неотрицательное числовое значение.

Типы данных: double

Локальный пол, возвращенный как скалярное неотрицательное числовое значение.

Типы данных: double

Глобальное дно, возвращенное как скалярное неотрицательное числовое значение.

Типы данных: double

Глобальный пол, возвращенный как скалярное неотрицательное числовое значение.

Типы данных: double

Пользовательское имя для инструмента, возвращенного как скалярная строка или NINST- 1 массив строк.

Типы данных: string

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы оценить абсолютный возврат для Cliquet инструмент, когда вы используете BlackScholes модель и AssetMonteCarlo метод ценообразования.

Создайте ratecurve Объект

Создайте ratecurve объект с помощью ratecurve.

Settle = datetime(2020,1,1);
Date = datetime(2021,1,1);
Rates = 0.10;
Basis = 1;
ZeroCurve = ratecurve('zero',Settle,Date,Rates,'Basis', Basis);

Создайте Cliquet Инструментальный объект

Используйте fininstrument создать Cliquet инструментальный объект.

ResetDates =  Settle + years(0:0.25:1);
CliquetOpt = fininstrument("Cliquet",'ResetDates',ResetDates,'Name',"cliquet_option")
CliquetOpt = 
  Cliquet with properties:

       OptionType: "call"
    ExerciseStyle: "european"
       ResetDates: [01-Jan-2020 00:00:00    01-Apr-2020 07:27:18    ...    ]
         LocalCap: Inf
       LocalFloor: 0
        GlobalCap: Inf
      GlobalFloor: 0
       ReturnType: "absolute"
    InitialStrike: NaN
             Name: "cliquet_option"

Создайте BlackScholes Объект модели

Используйте finmodel создать BlackScholes объект модели.

BlackScholesModel = finmodel("BlackScholes",'Volatility',.1)
BlackScholesModel = 
  BlackScholes with properties:

     Volatility: 0.1000
    Correlation: 1

Создайте AssetMonteCarlo Объект калькулятора цен

Используйте finpricer создать AssetMonteCarlo объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".

outPricer = finpricer("AssetMonteCarlo",'DiscountCurve',ZeroCurve,"Model",BlackScholesModel,'SpotPrice',100,'simulationDates',Settle+days(1):days(1):Date)
outPricer = 
  GBMMonteCarlo with properties:

      DiscountCurve: [1x1 ratecurve]
          SpotPrice: 100
    SimulationDates: [02-Jan-2020    03-Jan-2020    04-Jan-2020    ...    ]
          NumTrials: 1000
      RandomNumbers: []
              Model: [1x1 finmodel.BlackScholes]
       DividendType: "continuous"
      DividendValue: 0

Цена Cliquet Инструмент

Используйте price вычислить цену и чувствительность для Cliquet инструмент.

[Price, outPR] = price(outPricer,CliquetOpt,"all")
Price = 13.0616
outPR = 
  priceresult with properties:

       Results: [1x7 table]
    PricerData: [1x1 struct]

outPR.Results 
ans=1×7 table
    Price      Delta        Gamma       Lambda     Rho      Theta     Vega 
    ______    _______    ___________    ______    ______    _____    ______

    13.062    0.13062    -8.8818e-15      1       59.313      0      64.687

Этот пример показывает рабочий процесс, чтобы оценить Cliquet инструмент, когда вы используете BlackScholes модель и AssetMonteCarlo метод ценообразования. Этот пример демонстрирует, как изменения дна и этажей влияют на цены опции на европейские опции Cliquet.

Этот пример использует три 1-летних вызова cliquet опции с ежеквартальными датами наблюдения. Первая опция Cliquet не имеет никакого дна или этажей, вторая опция Cliquet имеет локальный пол, и третья опция Cliquet имеет локальное дно и локальный пол.

Создайте ratecurve Объект

Создайте ratecurve объект с помощью ratecurve.

Settle = datetime(2020,01,01);
Dates = datetime(2021,01,01);
Rate = 0.035;
Compounding = -1;
ZeroCurve = ratecurve('zero',Settle,Dates,Rate,'Compounding',Compounding)
ZeroCurve = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 0
                Dates: 01-Jan-2021
                Rates: 0.0350
               Settle: 01-Jan-2020
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создайте BlackScholes Объект модели

Используйте finmodel создать BlackScholes объект модели.

BSModel = finmodel("BlackScholes",'Volatility',.20)
BSModel = 
  BlackScholes with properties:

     Volatility: 0.2000
    Correlation: 1

Создайте Cliquet Инструментальные объекты с ежеквартальными датами наблюдения

Используйте fininstrument создать первый Cliquet инструментальный объект без дна или этажей.

ResetDates = Settle + years(0:0.25:1);

Cliquet = fininstrument("Cliquet",'ResetDates',ResetDates,'ReturnType',"relative",'LocalFloor',"-inf",'GlobalFloor',"-inf",'Name',"VanillaCliquet")
Cliquet = 
  Cliquet with properties:

       OptionType: "call"
    ExerciseStyle: "european"
       ResetDates: [01-Jan-2020 00:00:00    01-Apr-2020 07:27:18    ...    ]
         LocalCap: Inf
       LocalFloor: -Inf
        GlobalCap: Inf
      GlobalFloor: -Inf
       ReturnType: "relative"
    InitialStrike: NaN
             Name: "VanillaCliquet"

Используйте fininstrument создать второй Cliquet инструментальный объект с локальным этажом 0%.

LFCliquet = fininstrument("Cliquet",'ResetDates',ResetDates,'ReturnType',"relative",'GlobalFloor',"-inf",'Name',"LFCliquet")
LFCliquet = 
  Cliquet with properties:

       OptionType: "call"
    ExerciseStyle: "european"
       ResetDates: [01-Jan-2020 00:00:00    01-Apr-2020 07:27:18    ...    ]
         LocalCap: Inf
       LocalFloor: 0
        GlobalCap: Inf
      GlobalFloor: -Inf
       ReturnType: "relative"
    InitialStrike: NaN
             Name: "LFCliquet"

Используйте fininstrument создать третий Cliquet инструментальный объект с локальным дном 7% и локальным этажом 0%.

LocalCap = 0.07;
LFLCCliquet = fininstrument("Cliquet",'ResetDates',ResetDates,'ReturnType',"relative",'LocalCap',LocalCap,'GlobalFloor',"-inf",'Name',"LFLCCLiquet")
LFLCCliquet = 
  Cliquet with properties:

       OptionType: "call"
    ExerciseStyle: "european"
       ResetDates: [01-Jan-2020 00:00:00    01-Apr-2020 07:27:18    ...    ]
         LocalCap: 0.0700
       LocalFloor: 0
        GlobalCap: Inf
      GlobalFloor: -Inf
       ReturnType: "relative"
    InitialStrike: NaN
             Name: "LFLCCLiquet"

Создайте AssetMonteCarlo Объект калькулятора цен

Используйте finpricer создать AssetMonteCarlo объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".

SpotPrice = 100;
NumTrials =  5000;
MCPricer = finpricer("AssetMonteCarlo","DiscountCurve",ZeroCurve,"Model",BSModel,...
                     'SpotPrice',SpotPrice,'SimulationDates',[Settle+years(0:0.25:1),Settle+calmonths(0:1:12)],'NumTrials',NumTrials)
MCPricer = 
  GBMMonteCarlo with properties:

      DiscountCurve: [1x1 ratecurve]
          SpotPrice: 100
    SimulationDates: [01-Jan-2020 00:00:00    01-Feb-2020 00:00:00    ...    ]
          NumTrials: 5000
      RandomNumbers: []
              Model: [1x1 finmodel.BlackScholes]
       DividendType: "continuous"
      DividendValue: 0

Цена Cliquet Инструменты

Используйте price вычислить цены на три Cliquet инструменты.

Price = price(MCPricer,[Cliquet;LFCliquet;LFLCCliquet])
Price = 3×1

    0.0339
    0.1716
    0.1030

Базовый актив имеет хорошие и низкие производительности, когда симуляция опции Cliquet возвращается. Можно наблюдать эффект дна и этажей на этой эффективности при вычислении выплаты трех инструментов Cliquet:

  • Первая опция Cliquet не имеет никакого локального пола, таким образом, она берет все низкие производительности. С тех пор нет никакого локального дна, ни один из возвратов не выступает за эту опцию Cliquet.

  • Цена второй опции Cliquet выше, чем цена первой опции Cliquet. Эффект локального пола на второй опции Cliquet состоит в том, что ни одна из эффективности ниже 0% не рассматривается.

  • Цена третьей опции Cliquet ниже, чем цена второй опции Cliquet из-за эффективности в верхнем регистре (возвращается выше 7%, не рассматриваются), но это выше, чем цена первой опции Cliquet без локального пола, поскольку низкие производительности ниже 0% не рассматриваются.

Этот пример показывает рабочий процесс, чтобы оценить несколько Cliquet инструменты, когда вы используете BlackScholes модель и Rubinstein метод ценообразования.

Создайте ratecurve Объект

Создайте плоский ratecurve объект с помощью ratecurve.

Settle = datetime(2018,9,15);
Maturity = datetime(2023,9,15);
Rate = 0.035;
myRC = ratecurve('zero',Settle,Maturity,Rate,'Basis',12)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 12
                Dates: 15-Sep-2023
                Rates: 0.0350
               Settle: 15-Sep-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создайте Cliquet Инструментальный объект

Используйте fininstrument создать Cliquet инструментальный объект для трех инструментов Cliquet.

ResetDates = Settle + years(0:0.25:1);  
CliquetOpt = fininstrument("Cliquet",'ResetDates',ResetDates,'InitialStrike',[140;150;160],'ExerciseStyle',"european",'Name',"cliquet_option")
CliquetOpt=3×1 object
  3x1 Cliquet array with properties:

    OptionType
    ExerciseStyle
    ResetDates
    LocalCap
    LocalFloor
    GlobalCap
    GlobalFloor
    ReturnType
    InitialStrike
    Name

Создайте BlackScholes Объект модели

Используйте finmodel создать BlackScholes объект модели.

BlackScholesModel = finmodel("BlackScholes",'Volatility',0.28)
BlackScholesModel = 
  BlackScholes with properties:

     Volatility: 0.2800
    Correlation: 1

Создайте Rubinstein Объект калькулятора цен

Используйте finpricer создать Rubinstein объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".

outPricer = finpricer("analytic",'DiscountCurve',myRC,'Model',BlackScholesModel,'SpotPrice',135,'DividendValue',0.025,'PricingMethod',"Rubinstein")
outPricer = 
  Rubinstein with properties:

    DiscountCurve: [1x1 ratecurve]
            Model: [1x1 finmodel.BlackScholes]
        SpotPrice: 135
    DividendValue: 0.0250
     DividendType: "continuous"

Цена Cliquet Инструменты

Используйте price вычислить цены и чувствительность для трех Cliquet инструменты.

[Price, outPR] = price(outPricer,CliquetOpt,"all")
Price = 3×1

   28.1905
   25.3226
   23.8168

outPR=3×1 object
  3x1 priceresult array with properties:

    Results
    PricerData

outPR.Results 
ans=1×7 table
    Price      Delta      Gamma     Lambda     Vega      Rho      Theta 
    ______    _______    _______    ______    ______    ______    ______

    28.191    0.59697    0.02066    2.8588    105.38    60.643    -14.62

ans=1×7 table
    Price      Delta      Gamma      Lambda     Vega      Rho       Theta 
    ______    _______    ________    ______    ______    ______    _______

    25.323    0.41949    0.016816    2.2364    100.47    55.367    -11.708

ans=1×7 table
    Price      Delta      Gamma      Lambda     Vega      Rho      Theta 
    ______    _______    ________    ______    ______    ______    ______

    23.817    0.29729    0.011132    1.6851    93.219    51.616    -7.511

Больше о

развернуть все

Алгоритмы

cliquet опция создается как ряд прямых опций запуска. Премия и даты (сброса) наблюдения установлены заранее, и его выплата зависит от возвратов базового актива в даты сброса или заданное наблюдение. Этот возврат может базироваться в терминах абсолютного, или родственник возвращается. Возврат в период [Tn-1, Tn] определяется следующим образом:

Rn={STnSTn1STn1relative returnSTnSTn1absolute return}

Где n = 1, …, Nobs и Nobs является количеством наблюдений (даты сброса) во время жизни контракта, Sn является ценой базового актива во время наблюдения n.

Поскольку cliquet инструмент создается как ряд прямых опций запуска, затем его выплата является суммой возвратов:

Payoff cliquet=i=1n(Ri)

В зависимости от эффективности базового актива были бы положительные и отрицательные возвраты, и присутствие дна и этажей играет большую роль в выплате и цене cliquet инструмента.

Если локальное дно (LC) и локальный пол (LF) индивидуума возвращаются, рассматриваются, то выплата cliquet опции является суммой возвратов, ограниченных и настеленных пол LC и LF, в каждый раз наблюдения tn:

LCLFCliquetPayoff=i=1nmax(LF,min(LC,Ri))

В зрелости сумма этих модифицированных локальных возвратов может также быть глобально ограничена и настелена пол. Если глобальное дно (GC) и глобальный пол (GF) также рассматриваются, cliquet опция имеет итоговую выплату:

GCGFCliquetPayoff=max[GF,min(GC,i=1nмакс. (LF, min (LC, RI))]

В этом случае полная сумма всего cliquets теперь глобально ограничена и настелена пол.

Существует два популярных cliquets на рынке, глобально и локально настеленный пол cliquet в верхнем регистре (GCLF) и глобально настеленный пол и локально cliquet в верхнем регистре (GFLC). Их выплаты определяются следующим образом:

GCLFCliquetPayoff=min(GC,i=1nmax(LF,Ri))

GFLCCliquetPayoff=max(GF,i=1nmin(LF,Ri))

Таким образом, выплата cliquet инструмента является суммой в верхнем регистре, и настеленный пол возвращается.

Введенный в R2021b
Для просмотра документации необходимо авторизоваться на сайте