exponenta event banner

Ценообразование европейских опционов колл с использованием различных моделей капитала

Этот пример иллюстрирует, как Toolbox™ финансовых инструментов используется для оценки европейских опционов колл ванили с использованием различных моделей капитала.

В примере сравниваются цены опционов колл с использованием модели Кокса-Росса-Рубинштейна, модели Лейзена-Реймера и закрытой формулы Блэка-Шоулза.

Определение инструмента вызова

Рассмотрим вариант европейского колла с ценой упражнений 30 долларов 1 января 2010 года. Срок действия опции истекает 1 сентября 2010 года. Предположим, что базовая акция не дает дивидендов. Акции торгуются на уровне $25 и имеют волатильность 35% годовых. Годовая постоянно усложняемая безрисковая ставка составляет 1,11% годовых.

% Option
Settle = 'Jan-01-2010';
Maturity = 'Sep-01-2010';
Strike = 30;
OptSpec = 'call';

% Stock
AssetPrice = 25;   
Sigma = .35;

Создание структуры условий процентной ставки

StartDates = '01 Jan 2010';          
EndDates =   '01 Jan 2013';
Rates = 0.0111;
ValuationDate = '01 Jan 2010';
Compounding = -1;

RateSpec = intenvset('Compounding',Compounding,'StartDates', StartDates,...
                     'EndDates', EndDates, 'Rates', Rates,'ValuationDate', ValuationDate);

Создание структуры запаса

Предположим, мы хотим создать два сценария. Первый предполагает, что AssetPrice в настоящее время $25, опцион из денег (OTM). Второй сценарий предполагает, что опция находится в деньгах (банкомате), а потому AssetPriceATM = 30.

AssetPriceATM = 30; 

StockSpec = stockspec(Sigma, AssetPrice);
StockSpecATM = stockspec(Sigma, AssetPriceATM);

Цена опционов с помощью закрытой формулы Black-Scholes

Используйте функцию optstockbybls в инструментарии финансовых инструментов для расчета цены европейских опционов колл.

% Price the option with AssetPrice = 25
PriceBLS = optstockbybls(RateSpec, StockSpec, Settle, Maturity, OptSpec, Strike);

% Price the option with AssetPrice = 30
PriceBLSATM = optstockbybls(RateSpec, StockSpecATM, Settle, Maturity, OptSpec, Strike);

Построение дерева Кокса-Росса-Рубинштейна

% Create the time specification of the tree
NumPeriods = 15;

CRRTimeSpec = crrtimespec(ValuationDate, Maturity, NumPeriods);

% Build the tree
CRRTree = crrtree(StockSpec, RateSpec, CRRTimeSpec);
CRRTreeATM = crrtree(StockSpecATM, RateSpec, CRRTimeSpec);

Построение дерева Ляйзена-Реймера

% Create the time specification of the tree
LRTimeSpec = lrtimespec(ValuationDate, Maturity, NumPeriods);

% Use the default method 'PP1' (Peizer-Pratt method 1 inversion)to build
% the tree
LRTree = lrtree(StockSpec, RateSpec, LRTimeSpec, Strike);
LRTreeATM = lrtree(StockSpecATM, RateSpec, LRTimeSpec, Strike);

Цена опционов с использованием модели Кокса-Росса-Рубинштейна (CRR)

PriceCRR = optstockbycrr(CRRTree, OptSpec, Strike, Settle, Maturity); 
PriceCRRATM = optstockbycrr(CRRTreeATM, OptSpec, Strike, Settle, Maturity);

Цена опционов с использованием модели Leisen-Reimer (LR)

PriceLR = optstockbylr(LRTree, OptSpec, Strike, Settle, Maturity); 
PriceLRATM = optstockbylr(LRTreeATM, OptSpec, Strike, Settle, Maturity);

Сравнение результатов BLS, CRR и LR

sprintf('PriceBLS: \t%f\nPriceCRR: \t%f\nPriceLR:\t%f\n', PriceBLS, ...
    PriceCRR, PriceLR)
ans = 
    'PriceBLS: 	1.275075
     PriceCRR: 	1.294979
     PriceLR:	1.275838
     '

sprintf('\t== ATM ==\nPriceBLS ATM: \t%f\nPriceCRR ATM: \t%f\nPriceLR ATM:\t%f\n', PriceBLSATM, ...
    PriceCRRATM,   PriceLRATM)
ans = 
    '	== ATM ==
     PriceBLS ATM: 	3.497891
     PriceCRR ATM: 	3.553938
     PriceLR ATM:	3.498571
     '

Конвергенция моделей CRR и LR в решение BLS

В следующих таблицах сравниваются цены опционов колл с использованием моделей CRR и LR с результатами, полученными по формуле Блэка-Шоулза.

В то время как биномиальная модель CRR и модель Блэка-Шоулза сходятся по мере того, как количество временных шагов становится большим, а длина каждого шага становится небольшой, эта сходимость, за исключением денежных вариантов, является чем-то, кроме гладкой или однородной.

В таблицах ниже показано, что модель Ляйзена-Реймера уменьшает размер ошибки даже при нескольких шагах 45.

Strike = 30, Asset Price = 30

-------------------------------------

#Steps LR CRR

15 3.4986 3.5539

25 3.4981 3.5314

45 3.4980 3.5165

65 3.4979 3.5108

85 3.4979 3.5077

105 3.4979 3.5058

201 3.4979 3.5020

501 3.4979 3.4996

999 3.4979 3.4987

Strike = 30, Asset Price = 25

-------------------------------------

#Steps LR CRR

15 1.2758 1.2950

25 1.2754 1.2627

45 1.2751 1.2851

65 1.2751 1.2692

85 1.2751 1.2812

105 1.2751 1.2766

201 1.2751 1.2723

501 1.2751 1.2759

999 1.2751 1.2756

Анализ влияния количества периодов на цену опционов

На следующих графиках показано изменение сходимости по мере увеличения числа шагов в биномиальном расчете, а также влияние сходимости на изменения цены акций. Обратите внимание, что модель Лейзена-Реймера удаляет колебания и создает оценки, близкие к модели Блэка-Шоулза, используя лишь небольшое количество шагов.

NPoints = 300;

% Cox-Ross-Rubinstein
NumPeriodCRR  = 5 : 1 : NPoints; 
NbStepCRR     = length(NumPeriodCRR);
PriceCRR = nan(NbStepCRR, 1);
PriceCRRATM = PriceCRR;

for i = 1 : NbStepCRR
    CRRTimeSpec = crrtimespec(ValuationDate, Maturity, NumPeriodCRR(i));
    CRRT = crrtree(StockSpec, RateSpec, CRRTimeSpec);
    PriceCRR(i) = optstockbycrr(CRRT, OptSpec, Strike,ValuationDate, Maturity) ;
    
    CRRTATM = crrtree(StockSpecATM, RateSpec, CRRTimeSpec);
    PriceCRRATM(i) = optstockbycrr(CRRTATM, OptSpec, Strike,ValuationDate, Maturity) ;
end


% Now with Leisen-Reimer
NumPeriodLR  = 5 : 2 : NPoints; 
NbStepLR     = length(NumPeriodLR);
PriceLR = nan(NbStepLR, 1);
PriceLRATM = PriceLR;

for i = 1 : NbStepLR
    LRTimeSpec = lrtimespec(ValuationDate, Maturity, NumPeriodLR(i));
    LRT = lrtree(StockSpec, RateSpec, LRTimeSpec, Strike);
    PriceLR(i) = optstockbylr(LRT, OptSpec, Strike,ValuationDate, Maturity) ;
    
    LRTATM = lrtree(StockSpecATM, RateSpec, LRTimeSpec, Strike);
    PriceLRATM(i) = optstockbylr(LRTATM, OptSpec, Strike,ValuationDate, Maturity) ;
end

Первый сценарий: вариант «Вне денежного колла»

% For Cox-Ross-Rubinstein
plot(NumPeriodCRR, PriceCRR);
hold on;
plot(NumPeriodCRR, PriceBLS*ones(NbStepCRR,1),'Color',[0 0.9 0], 'linewidth', 1.5);

% For Leisen-Reimer
plot(NumPeriodLR, PriceLR, 'Color',[0.9 0 0], 'linewidth', 1.5);

% Concentrate in the area of interest by clipping on the Y axis at 5x the
% LR Price:
YLimDelta = 5*abs(PriceLR(1) - PriceBLS);
ax = gca;
ax.YLim = [PriceBLS-YLimDelta PriceBLS+YLimDelta];

% Annotate Plot
titleString = sprintf('\nConvergence of CRR and LR models to a BLS Solution (OTM)\nStrike = %d,  Asset Price = %d', Strike , AssetPrice);
title(titleString)
ylabel('Option Price')
xlabel('Number of Steps')
legend('CRR', 'BLS', 'LR', 'Location', 'NorthEast')

Figure contains an axes. The axes with title Convergence of CRR and LR models to a BLS Solution (OTM) Strike = 30, Asset Price = 25 contains 3 objects of type line. These objects represent CRR, BLS, LR.

Второй сценарий: В вариант вызова Money

% For Cox-Ross-Rubinstein
figure;
plot(NumPeriodCRR, PriceCRRATM);
hold on;
plot(NumPeriodCRR, PriceBLSATM*ones(NbStepCRR,1),'Color',[0 0.9 0], 'linewidth', 1.5);

% For Leisen-Reimer
plot(NumPeriodLR, PriceLRATM, 'Color',[0.9 0 0], 'linewidth', 1.5);

% Concentrate in the area of interest by clipping on the Y axis at 5x the
% LR Price:
YLimDelta = 5*abs(PriceLRATM(1) - PriceBLSATM);
ax = gca;
ax.YLim = [PriceBLSATM-YLimDelta PriceBLSATM+YLimDelta];
% Annotate Plot
titleString = sprintf('\nConvergence of CRR and LR models to a BLS Solution (ATM)\nStrike = %d,  Asset Price = %d', Strike , AssetPriceATM);
title(titleString)
ylabel('Option Price')
xlabel('Number of Steps')
legend('CRR', 'BLS', 'LR', 'Location', 'NorthEast')

Figure contains an axes. The axes with title Convergence of CRR and LR models to a BLS Solution (ATM) Strike = 30, Asset Price = 30 contains 3 objects of type line. These objects represent CRR, BLS, LR.

См. также

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Связанные примеры

Подробнее