Вариант цены с моделируемыми базовыми значениями
вычисляет цену европейских, американских и 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 метод из Финансового 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 метод из Финансового 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 метод из Финансового 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
Цена американского варианта обратного просмотра, найдя максимальную цену за периоды.
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 метод из Финансового 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 метод из Финансового 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около-NumTrials матрица нейтральных по риску смоделированных цен. Первый элемент SimulatedPrices - начальное значение в момент времени 0.
Типы данных: single | double
Times - Годовые временные факторы, связанные с моделируемыми ценамиГодовые временные коэффициенты, связанные с моделируемыми ценами, указанные с помощью (NumPeriods + 1около-1 вектор столбца. Каждый элемент Times связан с соответствующей строкой SimulatedPrices. Первый элемент Times должно быть 0 (текущее время).
Типы данных: single | double
OptSpec - Определение опциона 'call' или 'put'Определение опции как 'call' или 'put', задается как символьный вектор.
Типы данных: char
Strike - Значения цены страйка опционаЗначения цены страйка опциона, указанные как скалярное значение Strike цена. Strike для Бермудских островов варианты могут быть указаны как 1около-NSTRIKES вектор или дескриптор функции, который возвращает значение удара, заданное временем удара.
Типы данных: single | double | function_handle
ExerciseTimes - Время выполнения опционаВремя упражнений для опции, определяемое как вектор времени упражнений следующим образом:
Для европейского или бермудского варианта: ExerciseTimes является 1около-1 (европейский) или 1около-NSTRIKES (Бермудские острова) вектор времени упражнений. Для европейского варианта есть только один ExerciseTimes на дату истечения срока действия опциона.
Для американского варианта, ExerciseTimes является 1около-2 вектор временных границ упражнений. Опция выполняется на любую дату между или включая пару раз в этой строке. Если ExerciseTimes является 1около-1, опции упражнения между временем 0 и один из перечисленных ExerciseTimes.
Типы данных: double
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.