optstockbyblk

Опции цены на фьючерсы и форварды с использованием модели Black option pricing

Описание

пример

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

Примечание

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

пример

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

Примеры

свернуть все

В этом примере показов, как вычислить опцию цены на фьючерсы с помощью модели ценообразования Black опции. Рассмотрим две опции европейских вызовов по фьючерсному контракту с ценами исполнения в 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

В этом примере показов, как вычислить цены на опцию для форвардов с помощью модели Black pricing. Рассмотрим две европейские опции, вызов и положить на контракт с Brent Blend, который истекает 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

Рассмотрим вызов европейская опция по фьючерсам на нефть Brent. Срок действия опции истекает 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 - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

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

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

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

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

свернуть все

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

Подробнее о

свернуть все

Фьючерсные Опции

A futures option является стандартизированным договором между двумя сторонами о покупке или продаже определенного актива стандартизированного количества и качества по цене, согласованной сегодня (фьючерсная цена) с поставкой и оплатой в указанную будущую дату, дату поставки.

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

Фьючерсный контракт - это поставка < reservedrangesplaceholder1 > элемента в момент T и:

  • На рынке существует котируемая цена F(t,T), которая известна как цена фьючерса на момент времени t для поставки J в момент T.

  • Цена ввода фьючерсного контракта равна нулю.

  • В течение любого временного интервала [t, s] держатель получает суммуF(s,T)F(t,T) (это отражает мгновенную маркировку на рынке).

  • В T момент времени держатель платит F(T,T) и имеет право получать J. Обратите внимание, что F(T,T) должна быть спотовой ценой J в момент T.

Для получения дополнительной информации смотрите Фьючерс опция.

Опция форвардов

forwards option - это нестандартный контракт между двумя сторонами на покупку или продажу актива в указанное будущее время по цене, согласованной сегодня.

Покупатель договора опции форвардов имеет право удерживать конкретную позицию форвардов по определенной цене в любое время до истечения опции. Продавец опции форвардов удерживает противоположную позицию форвардов, когда покупатель выполняет опцию. Опция вызова - это право войти в длинное положение вперед, а опция put - это право войти в короткое положение вперед. Тесно связанным договором является фьючерсный контракт. Форвард похож на фьючерс, поскольку он определяет обмен товаров на указанную цену в указанную будущую дату.

Выплата для опции форвардов, где значение форвардной позиции на сроке зависит от связи между ценой поставки (K) и базовой ценой (S T) на тот момент, является:

  • Для длинной позиции: fT=STK

  • Для краткой позиции: fT=KST

Для получения дополнительной информации см. раздел Опция переадресации.

Введенный в R2008b