optstockbyblk

Ценовые опции на фьючерсах и вперед использовании Черной модели ценообразования опционов

Синтаксис

Price = optstockbyblk(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike)
Price = optstockbyblk(___,Name,Value)

Описание

пример

Price = optstockbyblk(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike) вычисляет цены опции на фьючерсы с помощью Черной модели ценообразования опционов.

Примечание

optstockbyblk вычисляет цены опции на фьючерсы и вперед. Если ForwardMaturity не передается, функция вычисляет цены будущих опций. Если ForwardMaturity передается, функция вычисляет цены прямых опций. Это указатели на функцию несколько типов базовых активов, например, запасов и предметов потребления. Для получения дополнительной информации о спецификации базового актива смотрите stockspec.

пример

Price = optstockbyblk(___,Name,Value) добавляет дополнительный аргумент пары "имя-значение" для ForwardMaturity, чтобы вычислить цены опции на форвардов с помощью Черной модели ценообразования опционов.

Примеры

свернуть все

Этот пример показывает, как вычислить цены опции на фьючерсы с помощью Черной модели ценообразования опционов. Рассмотрите два европейских колл-опциона на фьючерсном контракте с ценами исполнения 20$ и 25$, которые истекают 1 сентября 2008. Примите, что 1 мая 2008 контракт торгует на уровне 20$ и имеет энергозависимость 35% в год. Безрисковый уровень составляет 4% в год. Используя эти данные, вычислите цену опций фьючерсов вызова с помощью модели Black.

Strike = [20; 25];
AssetPrice = 20;
Sigma = .35;
Rates = 0.04;
Settle = 'May-01-08';
Maturity = 'Sep-01-08';

% define the RateSpec and StockSpec
RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle,...
 'EndDates', Maturity, 'Rates', Rates, 'Compounding', -1);

StockSpec = stockspec(Sigma, AssetPrice);

% define the call options
OptSpec = {'call'};

Price = optstockbyblk(RateSpec, StockSpec, Settle, Maturity,...
OptSpec, Strike)
Price = 2×1

    1.5903
    0.3037

Этот пример показывает, как вычислить цены опции на форвардов с помощью Черной модели ценообразования. Рассмотрите две европейских возможности, вызов и поставьте форвардный контракт Смешения Брента, который истекает 1 января 2015. Опции истекают 1 октября 2014 с ценой исполнения 200$ и 90$ соответственно. Примите, что 1 января 2014 форвардная цена на уровне 107$, пересчитываемый на год постоянно составляемый безрисковый уровень составляет 3% в год, и энергозависимость составляет 28% в год. Используя эти данные, вычислите цену опций.

Задайте RateSpec.

ValuationDate = 'Jan-1-2014';
EndDates = 'Jan-1-2015';
Rates = 0.03;
Compounding = -1;
Basis = 1;
RateSpec  = intenvset('ValuationDate', ValuationDate, ...
'StartDates', ValuationDate, 'EndDates', EndDates, 'Rates', Rates,....
'Compounding', Compounding, 'Basis', Basis')
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9704
            Rates: 0.0300
         EndTimes: 1
       StartTimes: 0
         EndDates: 735965
       StartDates: 735600
    ValuationDate: 735600
            Basis: 1
     EndMonthRule: 1

Задайте StockSpec.

AssetPrice = 107;
Sigma = 0.28;
StockSpec  = stockspec(Sigma, AssetPrice);

Задайте опции.

Settle = 'Jan-1-2014';
Maturity = 'Oct-1-2014';  %Options maturity
Strike = [200;90];
OptSpec = {'call'; 'put'};

Оцените прямые колл-опционы и пут-опционы.

ForwardMaturity = 'Jan-1-2015';  % Forward contract maturity
Price = optstockbyblk(RateSpec, StockSpec, Settle, Maturity, OptSpec, Strike,...
'ForwardMaturity', ForwardMaturity)
Price = 2×1

    0.0535
    3.2111

Рассмотрите европейскую возможность вызова на фьючерсах Брента Сырой нефти. Опция истекает 1 декабря 2014 с ценой исполнения 120$. Примите, что 1 апреля 2014 цена фьючерса на уровне 105$, пересчитываемый на год постоянно составляемый безрисковый уровень составляет 3,5% в год, и энергозависимость составляет 22% в год. Используя эти данные, вычислите цену опции.

Задайте RateSpec.

ValuationDate = 'January-1-2014';
EndDates = 'January-1-2015';
Rates = 0.035;
Compounding = -1;
Basis = 1;
RateSpec  = intenvset('ValuationDate', ValuationDate, 'StartDates', ValuationDate,...
'EndDates', EndDates, 'Rates', Rates, 'Compounding', Compounding, 'Basis', Basis')
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9656
            Rates: 0.0350
         EndTimes: 1
       StartTimes: 0
         EndDates: 735965
       StartDates: 735600
    ValuationDate: 735600
            Basis: 1
     EndMonthRule: 1

Задайте StockSpec.

AssetPrice = 105;
Sigma = 0.22;
StockSpec  = stockspec(Sigma, AssetPrice)
StockSpec = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.2200
         AssetPrice: 105
       DividendType: []
    DividendAmounts: 0
    ExDividendDates: []

Задайте опцию.

Settle = 'April-1-2014';
Maturity = 'Dec-1-2014'; 
Strike = 120;
OptSpec = {'call'};

Оцените колл-опцион фьючерсов.

Price = optstockbyblk(RateSpec, StockSpec, Settle, Maturity, OptSpec, Strike)
Price = 2.5847

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

свернуть все

Структура термина процентной ставки (пересчитанный на год и постоянно составляемый), заданный RateSpec получена из intenvset. Для получения информации о спецификации процентной ставки смотрите intenvset.

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

Спецификация запаса для базового актива. Для получения информации о спецификации запаса смотрите stockspec.

stockspec обрабатывает несколько типов базовых активов. Например, для физических предметов потребления ценой является StockSpec.Asset, энергозависимостью является StockSpec.Sigma, и урожаем удобства является StockSpec.DividendAmounts.

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

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

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

Дата погашения для опции, заданной как последовательный номер даты или вектор символов даты с помощью NINST-by-1 вектор.

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

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

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

Значение цены исполнения опциона опции, заданное как неотрицательный NINST-by-1 вектор.

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

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

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

Пример: Price = optstockbyblk(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike,'ForwardMaturity',ForwardMaturity)

Дата погашения или дата поставки форвардного контракта, заданного как пара, разделенная запятой, состоящая из 'ForwardMaturity' и NINST-by-1 вектор с помощью последовательных чисел даты или векторов символов даты.

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

Выходные аргументы

свернуть все

Ожидаемые цены опции, возвращенные как NINST-by-1 вектор.

Представленный в R2008b