VarianceSwap

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

Описание

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

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

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

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

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

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

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

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

Создание

Описание

пример

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

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', NINST- 1 массив строк со значениями "VarianceSwap", или NINST- 1 массив ячеек из символьных векторов со значениями 'VarianceSwap'.

Типы данных: char | cell | 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, последовательный номер даты, вектор символов даты, строка даты или NINST- 1 вектор из datetimes, последовательных чисел даты, массива ячеек векторов символов даты или массива строки даты.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Свойства

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

Дата погашения, возвращенная как скалярный datetime или NINST- 1 вектор из datetimes.

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

Отвлеченная сумма, возвращенная как числовой скаляр или NINST- 1 числовой вектор.

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

Дата начала, возвращенная как скалярный datetime или NINST- 1 вектор из datetimes.

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

Реализованная дисперсия, возвращенная как скалярное десятичное число или NINST- 1 десятичный вектор.

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

Ударьте дисперсию, возвращенную как скалярное десятичное число или NINST- 1 десятичный вектор.

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

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

Типы данных: 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 объект калькулятора цен и использование 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 инструмент, когда вы используете Heston модель и Heston метод ценообразования.

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

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

VarianceSwapInst = fininstrument("VarianceSwap",'Maturity',datetime([2020,9,15 ; 2020,9,15 ; 2020,9,15]),'Notional',100,'StartDate',datetime(2020,6,15),'RealizedVariance',0.02,'Strike',0.05,'Name',"variance_swap_instrument")
VarianceSwapInst=3×1 object
  3x1 VarianceSwap array with properties:

    Notional
    RealizedVariance
    Strike
    StartDate
    Maturity
    Name

Создайте 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 объект калькулятора цен и использование 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"])
% outPR.Results

Этот пример показывает рабочий процесс, чтобы оценить 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 объект калькулятора цен и использование 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