impvbybls

Определите подразумеваемую волатильность с помощью модели ценообразования опционов Блэка-Шоулза

Синтаксис

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

Описание

пример

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

пример

Volatility = impvbybls(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе.

Примеры

свернуть все

Этот пример показывает, как вычислить подразумеваемую волатильность с помощью модели ценообразования опционов Блэка-Шоулза. Рассмотрите европейские колл-опционы и пут-опционы с ценой исполнения 40$, которая истекает 1 июня 2008. Базовый запас стоит на уровне 45$ 1 января 2008, и безрисковый уровень составляет 5% в год. Цена опции составляет 7,10$ для вызова и 2,85$ для помещенного. Используя эти данные, вычислите подразумеваемую волатильность европейского вызова и поместите использование модели ценообразования опционов Блэка-Шоулза.

AssetPrice = 45;
Settlement = 'Jan-01-2008';
Maturity = 'June-01-2008';
Strike = 40;
Rates = 0.05;
OptionPrice = [7.10; 2.85];
OptSpec = {'call';'put'};

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

StockSpec = stockspec(NaN, AssetPrice);

ImpvVol =  impvbybls(RateSpec, StockSpec, Settlement, Maturity, OptSpec,...
Strike, OptionPrice,'Method','jackel2016')
ImpvVol = 2×1

    0.3175
    0.4878

Подразумеваемая волатильность составляет 31,75% для вызова и 48,78% для помещенного.

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример: Volatility = impvbybls(RateSpec,StockSpec,Settle,Maturity,OptSpec,Strike,OptPrice,'Limit',5,'Tolerance',1e-5)

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

Примечание

Если вы используете Method со значением 'jackel2016', аргумент Limit проигнорирован.

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

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

Примечание

Если вы используете Method со значением 'jackel2016', аргумент Tolerance проигнорирован.

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

Метод для вычисления подразумеваемой волатильности, заданной как пара, разделенная запятой, состоящая из 'Method' и вектора символов со значением 'search' или 'jackel2016' или строки со значением "search" или "jackel2016".

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

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

свернуть все

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

Ссылки

[1] Jäckel, Питер. "Давайте будем рациональны". Журнал Wilmott., январь 2015 (https://onlinelibrary.wiley.com/doi/pdf/10.1002/wilm.10395).

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