impvbybaw

Вычислите подразумеваемую волатильность с помощью модели ценообразования опционов Бэроуна-Адези и Вэли

Синтаксис

Volatility = impvbybaw(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike,OptPrice)
Volatility = impvbybaw(___,Name,Value)

Описание

пример

Volatility = impvbybaw(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike,OptPrice) вычисляет подразумеваемую волатильность с помощью модели ценообразования опционов Бэроуна-Адези и Вэли.

пример

Volatility = impvbybaw(___,Name,Value) добавляют дополнительные аргументы пары "имя-значение".

Примеры

свернуть все

Этот пример показывает, как вычислить подразумеваемую волатильность с помощью модели ценообразования опционов Бэроуна-Адези и Вэли. Рассмотрите три американских колл-опциона с ценами исполнения 100$, которые истекают 1 июля 2017. Базовый запас стоит на уровне 100$ 1 января 2017 и платит непрерывную дивидендную доходность 10%. Пересчитываемый на год постоянно составляемый безрисковый уровень составляет 10% в год, и цены опции составляют 4,063$, 6,77$ и 9,46$. Используя эти данные, вычислите подразумеваемую волатильность запаса с помощью модели ценообразования опционов Бэроуна-Адези и Вэли.

AssetPrice = 100;
Settle = 'Jan-1-2017';
Maturity = 'Jul-1-2017';
Strike = 100;
DivAmount = 0.1;
Rate = 0.05;

Задайте RateSpec.

RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle,...
'EndDates', Maturity, 'Rates', Rate, 'Compounding', -1, 'Basis', 1)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9753
            Rates: 0.0500
         EndTimes: 0.5000
       StartTimes: 0
         EndDates: 736877
       StartDates: 736696
    ValuationDate: 736696
            Basis: 1
     EndMonthRule: 1

Задайте StockSpec.

StockSpec = stockspec(NaN, AssetPrice, {'continuous'}, DivAmount)
StockSpec = struct with fields:
             FinObj: 'StockSpec'
              Sigma: NaN
         AssetPrice: 100
       DividendType: {'continuous'}
    DividendAmounts: 0.1000
    ExDividendDates: []

Задайте американскую опцию.

OptSpec = {'call'};
OptionPrice = [4.063;6.77;9.46];

Вычислите подразумеваемую волатильность для американской опции.

ImpVol =  impvbybaw(RateSpec, StockSpec, Settle, Maturity, OptSpec,...
Strike, OptionPrice)
ImpVol = 3×1

    0.1802
    0.2808
    0.3803

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: Volatility = impvbybaw(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike,OptionPrice)

Нижняя и верхняя граница подразумеваемой волатильности ищет интервал, заданный как пара, разделенная запятой, состоящая из 'Limit' и 1-by-2 положительный вектор.

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

Допуск завершения поиска подразумеваемой волатильности, заданный как пара, разделенная запятой, состоящая из 'Tolerance' и положительной скалярной величины.

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

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

свернуть все

Ожидаемые значения подразумеваемой волатильности, возвращенные как NINST-by-1 матрица. Если никакое решение не может быть найдено, NaN возвращен.

Ссылки

[1] Бэроун-Адези, G. и Роберт Э. Вэли. “Эффективное аналитическое приближение американских значений опции”. Журнал финансов. Объем 42, выпуск 2 (июнь 1987), 301–320.

[2] Haug, E. Полное руководство по опции, оценивая формулы. Второй выпуск. McGraw-Hill Education, январь 2007.

Введенный в R2017a