impvbybls

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

Описание

пример

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

пример

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

Примеры

свернуть все

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

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 - имя аргумента и 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] Екель, Петер. «Давайте будем рациональными». Wilmott Magazine., январь 2015 (https://onlinelibrary.wiley.com/doi/pdf/10.1002/wilm.10395).

Введенный в R2008b