optpricebysim

Ценовая опция, данная моделируемые базовые значения

Синтаксис

Price = optpricebysim(RateSpec,SimulatedPrices,Times,OptSpec,Strike,ExerciseTimes)
Price = optpricebysim(___,Name,Value)

Описание

пример

Price = optpricebysim(RateSpec,SimulatedPrices,Times,OptSpec,Strike,ExerciseTimes) вычисляет цену европейца, американца и вызова/пут-опционов Berumdan на основе нейтральной к риску симуляции базового актива. Для американских и бермудских опций метод наименьших квадратов Лонгштафф-Шварца вычисляет раннюю премию осуществления.

пример

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

Примеры

свернуть все

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

S0 = 100; % Initial price of underlying asset
Sigma = .2; % Volatility of underlying asset
Strike = 110; % Strike
OptSpec = 'call'; % Call option
Settle = '1-Jan-2013'; % Settlement date of option
Maturity = '1-Jan-2014'; % Maturity date of option
r = .05; % Risk-free rate (annual, continuous compounding)
Compounding = -1; % Continuous compounding
Basis = 0; % Act/Act day count convention
T = yearfrac(Settle, Maturity, Basis); % Time to expiration in years

Настройте объект gbm и запустите симуляцию Монте-Карло на основе Геометрического броуновского движения (GBM) с помощью метода simBySolution от Financial Toolbox™.

NTRIALS = 1000;
NPERIODS = daysact(Settle, Maturity);
dt = T/NPERIODS;
OptionGBM = gbm(r, Sigma, 'StartState', S0);
[Paths, Times, Z] = simBySolution(OptionGBM, NPERIODS, ...
'NTRIALS',NTRIALS, 'DeltaTime',dt,'Antithetic',true);

Создайте структуру термина процентной ставки, чтобы задать RateSpec.

RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, ...
           'EndDates', Maturity, 'Rate', r, 'Compounding', Compounding, ...
           'Basis', Basis)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9512
            Rates: 0.0500
         EndTimes: 1
       StartTimes: 0
         EndDates: 735600
       StartDates: 735235
    ValuationDate: 735235
            Basis: 0
     EndMonthRule: 1

Оцените американскую опцию.

SimulatedPrices = squeeze(Paths);
OptPrice = optpricebysim(RateSpec, SimulatedPrices, Times, OptSpec, ...
           Strike, T, 'AmericanOpt', 1)
OptPrice = 6.2028

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

S0 = 100; % Initial price of underlying asset
Sigma = .2; % Volatility of underlying asset
Strike = 110; % Strike
OptSpec = 'call'; % Call option
Settle = '1-Jan-2013'; % Settlement date of option
Maturity = '1-Jan-2014'; % Maturity date of option
r = .05; % Risk-free rate (annual, continuous compounding)
Compounding = -1; % Continuous compounding
Basis = 0; % Act/Act day count convention
T = yearfrac(Settle, Maturity, Basis); % Time to expiration in years

Настройте объект gbm и запустите симуляцию Монте-Карло на основе Геометрического броуновского движения (GBM) с помощью метода simBySolution от Financial Toolbox™.

NTRIALS = 1000;
NPERIODS = daysact(Settle, Maturity);
dt = T/NPERIODS;
OptionGBM = gbm(r, Sigma, 'StartState', S0);
[Paths, Times, Z] = simBySolution(OptionGBM, NPERIODS, ...
'NTRIALS',NTRIALS, 'DeltaTime',dt,'Antithetic',true);

Создайте структуру термина процентной ставки, чтобы задать RateSpec.

RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, ...
           'EndDates', Maturity, 'Rate', r, 'Compounding', Compounding, ...
           'Basis', Basis)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9512
            Rates: 0.0500
         EndTimes: 1
       StartTimes: 0
         EndDates: 735600
       StartDates: 735235
    ValuationDate: 735235
            Basis: 0
     EndMonthRule: 1

Оцените американскую азиатскую опцию (среднее арифметическое) путем нахождения средней стоимости за периоды.

AvgPrices = zeros(NPERIODS+1, NTRIALS);
    for i = 1:NPERIODS+1
        AvgPrices(i,:) = mean(squeeze(Paths(1:i,:,:)));
    end
    AsianPrice = optpricebysim(RateSpec, AvgPrices, Times, OptSpec, ...
        Strike, T, 'AmericanOpt', 1)
AsianPrice = 1.8540

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

S0 = 100; % Initial price of underlying asset
Sigma = .2; % Volatility of underlying asset
Strike = 110; % Strike
OptSpec = 'call'; % Call option
Settle = '1-Jan-2013'; % Settlement date of option
Maturity = '1-Jan-2014'; % Maturity date of option
r = .05; % Risk-free rate (annual, continuous compounding)
Compounding = -1; % Continuous compounding
Basis = 0; % Act/Act day count convention
T = yearfrac(Settle, Maturity, Basis); % Time to expiration in years

Настройте объект gbm и запустите симуляцию Монте-Карло на основе Геометрического броуновского движения (GBM) с помощью метода simBySolution от Financial Toolbox™.

NTRIALS = 1000;
NPERIODS = daysact(Settle, Maturity);
dt = T/NPERIODS;
OptionGBM = gbm(r, Sigma, 'StartState', S0);
[Paths, Times, Z] = simBySolution(OptionGBM, NPERIODS, ...
'NTRIALS',NTRIALS, 'DeltaTime',dt,'Antithetic',true);

Создайте структуру термина процентной ставки, чтобы задать RateSpec.

RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, ...
           'EndDates', Maturity, 'Rate', r, 'Compounding', Compounding, ...
           'Basis', Basis)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9512
            Rates: 0.0500
         EndTimes: 1
       StartTimes: 0
         EndDates: 735600
       StartDates: 735235
    ValuationDate: 735235
            Basis: 0
     EndMonthRule: 1

Оцените американскую lookback опцию путем нахождения максимальной цены за периоды.

MaxPrices = zeros(NPERIODS+1, NTRIALS);
    LastPrice = squeeze(Paths(1,:,:))';
    for i = 1:NPERIODS+1;
        MaxPrices(i,:) = max([LastPrice; Paths(i,:)]);
        LastPrice = MaxPrices(i,:);
    end
    LookbackPrice = optpricebysim(RateSpec, MaxPrices, Times, OptSpec, ...
        Strike, T, 'AmericanOpt', 1)
LookbackPrice = 10.4084

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

S0 = 80; % Initial price of underlying asset
Sigma = .3; % Volatility of underlying asset
Strike = 75; % Strike
OptSpec = 'put'; % Put option
Settle = '1-Jan-2013'; % Settlement date of option
Maturity = '1-Jan-2014'; % Maturity date of option
ExerciseDates = {'1-Jun-2013', '1-Jan-2014'}; % Exercise dates of option
r = .05; % Risk-free rate (annual, continuous compounding)
Compounding = -1; % Continuous compounding
Basis = 0; % Act/Act day count convention
T = yearfrac(Settle, Maturity, Basis); % Time to expiration in years
ExerciseTimes = yearfrac(Settle, ExerciseDates, Basis)'; % Exercise times

Настройте объект gbm и запустите симуляцию Монте-Карло на основе Геометрического броуновского движения (GBM) с помощью метода simBySolution от Financial Toolbox™.

NTRIALS = 1000;
NPERIODS = daysact(Settle, Maturity);
dt = T/NPERIODS;
OptionGBM = gbm(r, Sigma, 'StartState', S0);
[Paths, Times, Z] = simBySolution(OptionGBM, NPERIODS, ...
'NTRIALS',NTRIALS, 'DeltaTime',dt,'Antithetic',true);

Создайте структуру термина процентной ставки, чтобы задать RateSpec.

RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, ...
           'EndDates', Maturity, 'Rate', r, 'Compounding', Compounding, ...
           'Basis', Basis)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9512
            Rates: 0.0500
         EndTimes: 1
       StartTimes: 0
         EndDates: 735600
       StartDates: 735235
    ValuationDate: 735235
            Basis: 0
     EndMonthRule: 1

Оцените бермудскую опцию.

SimulatedPrices = squeeze(Paths);
BermudanPrice = optpricebysim(RateSpec, SimulatedPrices, Times, ...
OptSpec, Strike, ExerciseTimes)
BermudanPrice = 5.3950

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

S1 = 110; % Price of first underlying asset
S2 = 100; % Price of second underlying asset
Sigma1 = .1;  % Volatility of first underlying asset
Sigma2 = .15; % Volatility of second underlying asset
Strike = 15; % Strike
Rho = .3; % Correlation between underlyings
OptSpec = 'put'; % Put option
Settle = '1-Jan-2013'; % Settlement date of option
Maturity = '1-Jan-2014'; % Maturity date of option
r = .05; % Risk-free rate (annual, continuous compounding)
Compounding = -1; % Continuous compounding
Basis = 0; % Act/Act day count convention
T = yearfrac(Settle, Maturity, Basis); % Time to expiration in years

Настройте объект gbm и запустите симуляцию Монте-Карло на основе Геометрического броуновского движения (GBM) с помощью метода simBySolution от Financial Toolbox™.

NTRIALS = 1000;
NPERIODS = daysact(Settle, Maturity);
dt = T/NPERIODS;
SpreadGBM = gbm(r*eye(2), diag([Sigma1;Sigma2]),'Correlation',...
[1 Rho;Rho 1],'StartState',[S1;S2]);
[Paths, Times, Z] = simBySolution(SpreadGBM, NPERIODS,'NTRIALS',NTRIALS,...
'DeltaTime',dt,'Antithetic',true);

Создайте структуру термина процентной ставки, чтобы задать RateSpec.

RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, ...
           'EndDates', Maturity, 'Rate', r, 'Compounding', Compounding, ...
           'Basis', Basis)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9512
            Rates: 0.0500
         EndTimes: 1
       StartTimes: 0
         EndDates: 735600
       StartDates: 735235
    ValuationDate: 735235
            Basis: 0
     EndMonthRule: 1

Оцените американскую опцию распространения.

Spread = squeeze(Paths(:,1,:) - Paths(:,2,:));
SpreadPrice = optpricebysim(RateSpec, Spread, Times, OptSpec, Strike, ...
T, 'AmericanOpt', 1)
SpreadPrice = 9.0007

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

свернуть все

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

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

Моделируемые цены, заданное использование (NumPeriods + 1)-by-NumTrials матрица нейтральных к риску моделируемых цен. Первый элемент SimulatedPrices является начальным значением во время 0.

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

Ежегодные факторы времени сопоставлены с моделируемыми ценами, заданное использование (NumPeriods + 1)-by-1 вектор-столбец. Каждый элемент Times сопоставлен с соответствующей строкой SimulatedPrices. Первый элемент Times должен быть 0 (текущее время).

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

Определение опции как 'call' или 'put', заданный как вектор символов.

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

Значения цены исполнения опциона опции, заданные как скалярное значение цена Strike. Strike для бермудских опций может быть задан как 1-by-NSTRIKES вектор или указатель на функцию, который возвращает значение забастовки, учитывая время забастовки.

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

Осуществите время для опции, заданной как вектор времен осуществления можно следующим образом:

  • Для европейской или бермудской опции ExerciseTimes является 1-by-1 (европеец) или 1-by-NSTRIKES (бермудский) вектор времен осуществления. Для европейской опции на дате окончания срока действия опции существует только один ExerciseTimes.

  • Для американской опции ExerciseTimes является 1-by-2 вектор контуров времени осуществления. Опция тренируется в любую дату между, или включая, пара времен на той строке. Если ExerciseTimes является 1-by-1, упражнения опции между временем 0 и одним перечисленным ExerciseTimes.

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

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

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

Пример: Price = optpricebysim(RateSpec,Prices,Times,OptSpec,Settle,Strike,ExerciseTimes,'AmericanOpt',1)

Тип опции, заданный как пара, разделенная запятой, состоящая из 'AmericanOpt' и целочисленного скаляра, отмечает с помощью значений:

  • 0 — Европеец или бермудец

  • 1 — Американец

Для американских опций метод наименьших квадратов Лонгштафф-Шварца вычисляет раннюю премию осуществления.

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

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

свернуть все

Цена опции, возвращенной как скалярное значение.

Введенный в R2014a

Для просмотра документации необходимо авторизоваться на сайте