VarianceSwap

VarianceSwap объект прибора

Описание

Создайте и оцените VarianceSwap объект инструмента, использующий этот рабочий процесс:

  1. Использовать fininstrument для создания VarianceSwap объект прибора.

  2. Использование ratecurve для задания модели кривой или использования finmodel для задания Heston модель.

  3. При использовании кривой модели используйте finpricer для задания ReplicatingVarianceSwap метод ценообразования для VarianceSwap прибора.

    При использовании Heston модель, использование finpricer для задания Heston метод ценообразования для VarianceSwap прибора.

Дополнительные сведения об этом рабочем процессе см. в разделе Запуске с рабочими процессами с использованием объектной среды для ценообразования финансовых инструментов.

Для получения дополнительной информации о доступных моделях и методах ценообразования для VarianceSwap инструмент, см. «Выбор инструментов», «Модели» и «Цены».

Создание

Описание

пример

VarianceSwapInstrument = fininstrument(InstrumentType,'Maturity',maturity_date,'Notional',notional_value) создает VarianceSwap объект путем определения InstrumentType и устанавливает свойства с помощью необходимых аргументов пары "имя-значение" Maturity и Notional.

The VarianceSwap инструмент поддерживает ReplicatingVarianceSwap и Heston методы ценообразования. Для получения дополнительной информации о VarianceSwap инструмент, см. Подробнее о.

пример

VarianceSwapInstrument = fininstrument(___,Name,Value) устанавливает необязательные свойства с помощью дополнительных аргументов пары "имя-значение" в дополнение к требуемым аргументам в предыдущем синтаксисе. Для примера, VarianceSwapInstrument = fininstrument("VarianceSwap",'Maturity',datetime(2019,1,30),'Notional',100,'StartDate',datetime(2016,1,30),'RealizedVariance',0.02,'Strike',110,'Name',"varianceswap_instrument") создает VarianceSwap опция со сроком погашения 30 января 2019 года. Можно задать несколько аргументы пары "имя-значение".

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

расширить все

Тип инструмента, заданный как строка со значением "VarianceSwap" или вектор символов со значением 'VarianceSwap'.

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

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

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

Пример: VarianceSwapInstrument = fininstrument("VarianceSwap",'Maturity',datetime(2019,1,30),'Notional',100,'StartDate',datetime(2016,1,30),'RealizedVariance',0.02,'Strike',110,'Name',"varianceswap_instrument")
Требуемая VarianceSwap Аргументы в виде пар имя-значение

расширить все

Дата погашения свопа отклонений, заданная как разделенная разделенными запятой парами, состоящая из 'Maturity' и скалярное значение datetime, серийный номер даты, вектор символов даты или строка даты.

Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime потому что Maturity свойство сохранено как datetime.

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

Номинальная сумма, заданная как разделенная разделенными запятой парами, состоящая из 'Notional' и скалярным числом.

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

Необязательные VarianceSwap Аргументы в виде пар имя-значение

расширить все

Дата начала, заданная как разделенная разделенными запятой парами, состоящая из 'StartDate' и скалярное значение datetime, серийный номер даты, вектор символов даты или строка даты.

Если вы используете вектор символов даты или строку даты, формат должен быть распознаваемым datetime потому что ExerciseDate свойство сохранено как datetime.

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

Реализованное отклонение, заданная как разделенная разделенными запятой парами, состоящая из 'RealizedVariance' и скалярным десятичным числом.

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

Отклонение, заданная как разделенная разделенными запятой парами, состоящая из 'Strike' и скалярным десятичным числом.

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

Определяемое пользователем имя инструмента, заданное как разделенная разделенными запятой парами, состоящая из 'Name' и скалярную строку или вектор символов.

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

Свойства

расширить все

Дата погашения, возвращенная как datetime.

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

Условная сумма, возвращенная в виде скалярного числа.

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

Дата начала, возвращенная как datetime.

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

Реализованное отклонение, возвращенная в виде скалярного десятичного числа.

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

Удар отклонения, вернулся как скаляр десятичного числа.

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

Определяемое пользователем имя инструмента, возвращаемое как строка.

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

Функции объекта

Примеры

свернуть все

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

Создание VarianceSwap Объект прибора

Использование fininstrument для создания VarianceSwap объект прибора.

VarianceSwapInst = fininstrument("VarianceSwap",'Maturity',datetime(2020,9,15),'Notional',100,'StartDate',datetime(2020,6,15),'RealizedVariance',0.02,'Strike',0.05,'Name',"variance_swap_instrument")
VarianceSwapInst = 
  VarianceSwap with properties:

            Notional: 100
    RealizedVariance: 0.0200
              Strike: 0.0500
           StartDate: 15-Jun-2020
            Maturity: 15-Sep-2020
                Name: "variance_swap_instrument"

Создание Heston Объект модели

Использование finmodel для создания Heston объект модели.

HestonModel = finmodel("Heston",'V0',0.06,'ThetaV',0.1,'Kappa',0.9,'SigmaV',0.7,'RhoSV',-.3)
HestonModel = 
  Heston with properties:

        V0: 0.0600
    ThetaV: 0.1000
     Kappa: 0.9000
    SigmaV: 0.7000
     RhoSV: -0.3000

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

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

Settle = datetime(2020, 1, 1);
ZeroTimes = calmonths(3);
ZeroRates = 0.05;
ZeroDates = Settle + ZeroTimes;
Basis = 1;
ZeroCurve = ratecurve("zero",Settle,ZeroDates,ZeroRates,'Basis',Basis)
ZeroCurve = 
  ratecurve with properties:

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

Создание Heston Объект прейскуранта

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

outPricer = finpricer("Analytic",'DiscountCurve',ZeroCurve,'Model',HestonModel)
outPricer = 
  Heston with properties:

    DiscountCurve: [1x1 ratecurve]
            Model: [1x1 finmodel.Heston]

Ценовые VarianceSwap Инструмент

Использование price вычислить цену и справедливое отклонение для VarianceSwap прибора.

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

       Results: [1x2 table]
    PricerData: []

outPR.Results
ans=1×2 table
    Price     FairVariance
    ______    ____________

    10.832      0.07039   

Этот пример показывает рабочий процесс, чтобы оценить VarianceSwap инструмент, когда вы используете ratecurve объект и ReplicatingVarianceSwap метод ценообразования.

Создание VarianceSwap Объект прибора

Использование fininstrument для создания VarianceSwap объект прибора.

VarianceSwapInst = fininstrument("VarianceSwap",'Maturity',datetime(2021,5,1),'Notional',150,'StartDate',datetime(2020,5,1),'RealizedVariance',0.05,'Strike',0.1,'Name',"variance_swap_instrument")
VarianceSwapInst = 
  VarianceSwap with properties:

            Notional: 150
    RealizedVariance: 0.0500
              Strike: 0.1000
           StartDate: 01-May-2020
            Maturity: 01-May-2021
                Name: "variance_swap_instrument"

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

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

Settle = datetime(2020, 9, 15);
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;
Basis = 1;
ZeroCurve = ratecurve("zero",Settle,ZeroDates,ZeroRates,'Basis',Basis)
ZeroCurve = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 1
                Dates: [10x1 datetime]
                Rates: [10x1 double]
               Settle: 15-Sep-2020
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создание ReplicatingVarianceSwap Объект прейскуранта

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

Strike = (50:5:135)';
Volatility = [.49;.45;.42;.38;.34;.31;.28;.25;.23;.21;.2;.21;.21;.22;.23;.24;.25;.26];
VolatilitySmile = table(Strike, Volatility);
SpotPrice = 100;
CallPutBoundary = 100;

outPricer =  finpricer("ReplicatingVarianceSwap",'DiscountCurve', ZeroCurve, 'VolatilitySmile', VolatilitySmile, ...
'SpotPrice', SpotPrice, 'CallPutBoundary', CallPutBoundary)
outPricer = 
  ReplicatingVarianceSwap with properties:

      DiscountCurve: [1x1 ratecurve]
       InterpMethod: "linear"
    VolatilitySmile: [18x2 table]
          SpotPrice: 100
    CallPutBoundary: 100

Ценовые VarianceSwap Инструмент

Использование price вычислить цену и справедливое отклонение для VarianceSwap прибора.

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

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

outPR.Results
ans=1×2 table
    Price     FairVariance
    ______    ____________

    8.1997      0.21701   

Подробнее о

расширить все

Введенный в R2020b