Ценовая опция, данная моделируемые базовые значения
Price = optpricebysim(RateSpec,SimulatedPrices,Times,OptSpec,Strike,ExerciseTimes)
Price = optpricebysim(___,Name,Value)
вычисляет цену европейца, американца и вызова/пут-опционов Berumdan на основе нейтральной к риску симуляции базового актива. Для американских и бермудских опций метод наименьших квадратов Лонгштафф-Шварца вычисляет раннюю премию осуществления.Price
= optpricebysim(RateSpec
,SimulatedPrices
,Times
,OptSpec
,Strike
,ExerciseTimes
)
добавляют дополнительные аргументы пары "имя-значение".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
— Структура термина процентной ставки безрисковых уровнейСтруктура термина процентной ставки безрисковых уровней (пересчитанный на год и постоянно составляемый), заданный RateSpec
получена из intenvset
. Дата оценки должна быть в расчетный день опции, и основание дневного количества и правило конца месяца должны совпасть с используемыми, чтобы вычислить вход Times
. Для получения информации о спецификации процентной ставки смотрите intenvset
.
Типы данных: struct
SimulatedPrices
— Моделируемые ценыМоделируемые цены, заданное использование (NumPeriods
+ 1
)-by-NumTrials
матрица нейтральных к риску моделируемых цен. Первый элемент SimulatedPrices
является начальным значением во время 0.
Типы данных: single | double
\times
Ежегодные факторы времени сопоставлены с моделируемыми ценамиЕжегодные факторы времени сопоставлены с моделируемыми ценами, заданное использование (NumPeriods
+ 1
)-by-1
вектор-столбец. Каждый элемент Times
сопоставлен с соответствующей строкой SimulatedPrices
. Первый элемент Times
должен быть 0 (текущее время).
Типы данных: single | double
OptSpec
— Определение опции 'call'
или 'put'
Определение опции как 'call'
или 'put'
, заданный как вектор символов.
Типы данных: char
Strike
— Значения цены исполнения опциона опцииЗначения цены исполнения опциона опции, заданные как скалярное значение цена Strike
. Strike
для бермудских опций может быть задан как 1
-by-NSTRIKES
вектор или указатель на функцию, который возвращает значение забастовки, учитывая время забастовки.
Типы данных: single
| double
| function_handle
ExerciseTimes
— Осуществите время для опцииОсуществите время для опции, заданной как вектор времен осуществления можно следующим образом:
Для европейской или бермудской опции 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
или бермудское (значение по умолчанию) | скалярный флаг со значением [0,1]
Тип опции, заданный как пара, разделенная запятой, состоящая из 'AmericanOpt'
и целочисленного скаляра, отмечает с помощью значений:
0
— Европеец или бермудец
1
— Американец
Для американских опций метод наименьших квадратов Лонгштафф-Шварца вычисляет раннюю премию осуществления.
Типы данных: single | double
Price
— Цена опцииЦена опции, возвращенной как скалярное значение.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.