Оценка азиатских опций

Этот пример показывает, как оценить европейскую азиатскую опцию с помощью шести методов в Financial Instruments Toolbox™. Этот пример демонстрирует четыре закрытых приближения формы (Kemna-Vorst, Налог, Тернбулл-Уокемен и Haug-Haug-Margrabe), модель решетки (Кокс-Росс-Рубинштейн) и симуляция Монте-Карло. Все эти методы включают некоторые компромиссы между числовой точностью и вычислительной эффективностью. Этот пример также демонстрирует, как изменения в спотовых ценах, энергозависимости и ценах исполнения опциона влияют на цены опции на европейскую Ваниль и азиатские опции.

Обзор азиатских опций

Азиатские опции являются ценными бумагами с выплатами, которые зависят в среднем значение базового актива за определенный промежуток времени. Базовые активы могут быть запасами, предметами потребления или финансовыми индексами.

Два типа азиатских опций найдены на рынке: опции средней стоимости и среднее значение ударяют опции. Опции средней стоимости имеют фиксированное значение забастовки, и используемое среднее значение является ценой активов. Средние опции забастовки имеют забастовку, равную среднему значению базового актива.

Выплата в зрелости европейца средней стоимости азиатская опция:

max(0,Savg-K) для вызова

max(0,K-Savg) для помещенного

Выплата в зрелости среднего европейца забастовки азиатская опция:

max(0,St-Savg) для вызова

max(0,Savg-St) для помещенного

где Savg является средней стоимостью базового актива, Св. является ценой в сроке погашения базового актива, и K является ценой исполнения опциона.

Среднее значение может быть арифметикой или геометрический.

Оценка азиатских опций Используя закрытые приближения формы

Financial Instruments Toolbox™ поддерживает четыре закрытых приближения формы для европейских опций Средней стоимости. Метод Kemna-Vorst основан на геометрическом среднем значении цены базового во время жизни опции [1]. Модели Налога и Тернбулла-Уокемена предоставляют закрытое решение для оценки формы непрерывных опций усреднения арифметики [2,3]. Haug-Haug-Margrabe приближение используется для оценки дискретных опций усреднения арифметики [4].

Все функции оценки asianbykv, asianbylevy, asianbytw и asianbyhhm берут структуру термина процентной ставки и структуру запаса как входные параметры.

Рассмотрите следующий пример:

% Create RateSpec from the interest rate term structure
StartDates = '12-March-2014';
EndDates = '12-March-2020';
Rates = 0.035;   
Compounding = -1;
Basis = 1;

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

% Define StockSpec with the underlying asset information
Sigma = 0.20;
AssetPrice = 100;

StockSpec = stockspec(Sigma, AssetPrice);

% Define the Asian option
Settle = '12-March-2014';
ExerciseDates = '12-March-2015';
Strike = 90;
OptSpec = 'call';

% Kemna-Vorst closed form model
PriceKV = asianbykv(RateSpec, StockSpec, OptSpec, Strike, Settle,...
    ExerciseDates);

% Levy model approximation
PriceLevy = asianbylevy(RateSpec, StockSpec, OptSpec, Strike, Settle,...
    ExerciseDates);

% Turnbull-Wakeman approximation
PriceTW = asianbytw(RateSpec, StockSpec, OptSpec, Strike, Settle,...
    ExerciseDates);

% Haug-Haug-Margrabe approximation
PriceHHM = asianbyhhm(RateSpec, StockSpec, OptSpec, Strike, Settle,...
    ExerciseDates);     
                 
% Comparison of calculated prices for the geometric and arithmetic options
% using different closed form algorithms.
displayPricesClosedForm(PriceKV, PriceLevy, PriceTW, PriceHHM)
Comparison of Asian Arithmetic and Geometric Prices:

Kemna-Vorst:        11.862580
Levy:               12.164734
Turnbull-Wakeman:   12.164734
Haug-Haug-Margrabe: 12.108746

Вычислительные азиатские цены опций Используя модель Кокса-Росса-Рубинштейна

В дополнение к закрытым приближениям формы, поддержки Financial Instruments Toolbox™, оценивая европейские опции Средней стоимости с помощью деревьев CRR через функциональный asianbycrr.

Решетка, оценивая функциональный asianbycrr берет дерево процентной ставки (CRRTree) и структура запаса как входные параметры. Можно оценить предыдущие опции путем создания CRRTree с помощью структуры термина процентной ставки и спецификации запаса от примера выше.

% Create the time specification of the tree
NPeriods = 20;
TreeValuationDate = '12-March-2014';
TreeMaturity = '12-March-2024';
TimeSpec = crrtimespec(TreeValuationDate, TreeMaturity, NPeriods);

% Build the tree
CRRTree =  crrtree(StockSpec, RateSpec, TimeSpec);

% Price the European Asian option using the CRR lattice model.
% The function 'asianbycrr' computes prices of arithmetic and geometric
% Asian options.
AvgType = {'arithmetic';'geometric'};
AmericanOpt = 0;
PriceCRR20 = asianbycrr(CRRTree, OptSpec, Strike, Settle, ExerciseDates,...
                        AmericanOpt, AvgType);

% Increase the numbers of periods in the tree and compare results
NPeriods = 40;
TimeSpec = crrtimespec(TreeValuationDate, TreeMaturity, NPeriods);
CRRTree =  crrtree(StockSpec, RateSpec, TimeSpec);

PriceCRR40 = asianbycrr(CRRTree, OptSpec, Strike, Settle, ExerciseDates,...
                        AmericanOpt, AvgType);
                    
% Display prices
displayPricesCRR(PriceCRR20, PriceCRR40)
Asian Prices using the CRR lattice model:

PriceArithmetic(CRR20): 11.934380
PriceArithmetic(CRR40): 12.047243
PriceGeometric (CRR20): 11.620899
PriceGeometric (CRR40): 11.732037

Результаты выше сравнивают результаты от вычисления и геометрические и арифметические азиатские опции, с помощью деревьев CRR с 20 и 40 уровнями. Как количество увеличений уровней, результаты приближаются к закрытым решениям для формы.

Вычисление цен азиатских опций Используя симуляцию Монте-Карло

Другой метод, чтобы оценить европейские опции Средней стоимости с Financial Instruments Toolbox™ через симуляции Монте-Карло.

Функция оценки asianbyls берет структуру термина процентной ставки и структуру запаса как входные параметры. Вывод и время выполнения симуляции Монте-Карло зависит от количества путей (NumTrials) и количество периодов времени на путь (NumPeriods).

Можно оценить те же опции предыдущих примеров с помощью Монте-Карло.

% Simulation Parameters
NumTrials = 500;
NumPeriods = 200;

% Price the arithmetic option 
PriceAMC = asianbyls(RateSpec, StockSpec, OptSpec, Strike, Settle,...
                     ExerciseDates,'NumTrials', NumTrials, ...
                     'NumPeriods', NumPeriods);

% Price the geometric option 
PriceGMC = asianbyls(RateSpec, StockSpec, OptSpec, Strike, Settle,...
                     ExerciseDates,'NumTrials', NumTrials, ...
                     'NumPeriods', NumPeriods, 'AvgType', AvgType(2));

% Use the antithetic variates method to value the options
Antithetic = true;
PriceAMCAntithetic = asianbyls(RateSpec, StockSpec, OptSpec, Strike, Settle,...
                    ExerciseDates,'NumTrials', NumTrials, 'NumPeriods',...
                    NumPeriods, 'Antithetic', Antithetic);

PriceGMCAntithetic = asianbyls(RateSpec, StockSpec, OptSpec, Strike, Settle,...
                    ExerciseDates,'NumTrials', NumTrials, 'NumPeriods',...
                    NumPeriods, 'Antithetic', Antithetic,'AvgType', AvgType(2));
                
% Display prices
displayPricesMonteCarlo(PriceAMC, PriceAMCAntithetic, PriceGMC, PriceGMCAntithetic)
Asian Prices using Monte Carlo Method:

Arithmetic Asian
Standard Monte Carlo:           12.304046
Variate Antithetic Monte Carlo: 12.304046

Geometric Asian
Standard Monte Carlo:           12.048434
Variate Antithetic Monte Carlo: 12.048434

Использование прямо противоположной варьируемой величины ускоряет процесс преобразования путем сокращения отклонения.

Можно создать график отобразить различие между геометрической азиатской ценой с помощью модели Kemna-Vorst, стандартного Монте-Карло, и прямо противоположным Монте-Карло.

nTrials = [50:5:100 110:10:250 300:50:500 600:100:2500]';
PriceKVVector = PriceKV * ones(size(nTrials));
PriceGMCVector = nan(size(nTrials));
PriceGMCAntitheticVector = nan(size(nTrials));
TimeGMCAntitheticVector = nan(length(nTrials),1);
TimeGMCVector = nan(length(nTrials),1);
idx = 1;
for iNumTrials = nTrials'
    PriceGMCVector(idx) = asianbyls(RateSpec, StockSpec, OptSpec, Strike, Settle,...
                        ExerciseDates,'NumTrials', iNumTrials, 'NumPeriods',...
                        NumPeriods,'AvgType', AvgType(2));

    PriceGMCAntitheticVector(idx) = asianbyls(RateSpec, StockSpec, OptSpec, Strike, Settle,...
                        ExerciseDates,'NumTrials', iNumTrials, 'NumPeriods',...
                        NumPeriods, 'Antithetic', Antithetic,'AvgType', AvgType(2));
    idx = idx+1;
end

figure('menubar', 'none', 'numbertitle', 'off')
plot(nTrials, [PriceKVVector PriceGMCVector PriceGMCAntitheticVector]);
title 'Variance Reduction by Antithetic'
xlabel 'Number of Simulations'
ylabel 'Asian Option Price'
legend('Kemna-Vorst', 'Standard Monte Carlo', 'Variate Antithetic Monte Carlo ', 'location', 'northeast');

График выше показов, как колебание в моделируемой цене уменьшается при помощи прямо противоположной варьируемой величины.

Сравните результаты модели ценообразования

Цены, вычисленные Методом Монте-Карло, отличаются в зависимости от результата симуляций. Увеличьте NumTrials и анализируйте результаты.

NumTrials = 2000;

PriceAMCAntithetic2000 = asianbyls(RateSpec, StockSpec, OptSpec, Strike, Settle, ExerciseDates,...
         'NumTrials', NumTrials, 'NumPeriods', NumPeriods, 'Antithetic', Antithetic);

PriceGMCAntithetic2000 = asianbyls(RateSpec, StockSpec, OptSpec, Strike, Settle,...
                    ExerciseDates,'NumTrials', NumTrials, 'NumPeriods',...
                    NumPeriods, 'Antithetic', Antithetic,'AvgType', AvgType(2));
                
% Comparison of calculated Asian call prices
displayComparisonAsianCallPrices(PriceLevy, PriceTW, PriceHHM, PriceCRR40, PriceAMCAntithetic, PriceAMCAntithetic2000, PriceKV, PriceGMCAntithetic, PriceGMCAntithetic2000)
Comparison of Asian call prices:

Arithmetic Asian
Levy:                     12.164734
Turnbull-Wakeman:         12.164734
Haug-Haug-Margrabe:       12.108746
Cox-Ross-Rubinstein:      12.047243
Monte Carlo(500 trials):  12.304046
Monte Carlo(2000 trials): 12.196848

Geometric Asian
Kemna-Vorst:              11.862580
Cox-Ross-Rubinstein:      11.732037
Monte Carlo(500 trials):  12.048434
Monte Carlo(2000 trials): 11.932017

Таблица выше контрастирует результаты закрытых моделей приближения против ценовых симуляций, реализованных через деревья CRR и Монте-Карло.

Азиат и колл-опционы ванили

Азиатские опции являются популярными инструментами, поскольку они имеют тенденцию быть менее дорогими, чем сопоставимая Ваниль вызывает и помещает. Это вызвано тем, что энергозависимость в среднем значении underlier имеет тенденцию быть ниже, чем энергозависимость значения самого underlier.

Financial Instruments Toolbox™ поддерживает несколько алгоритмов для оценки опций ванили. Давайте сравним цену азиатских опций против их дубликата Ванили.

Во-первых, вычислите цену европейской Опции Ванили с помощью Черной модели Скоулза.

PriceBLS = optstockbybls(RateSpec, StockSpec, Settle, ExerciseDates,...
                         OptSpec, Strike);
                     
% Comparison of calculated call prices.
displayComparisonVanillaAsian('Prices', PriceBLS, PriceKV, PriceLevy, PriceTW, PriceHHM)
Comparison of Vanilla and Asian Prices:

Vanilla BLS:              15.743809
Asian Kemna-Vorst:        11.862580
Asian Levy:               12.164734
Asian Turnbull-Wakeman:   12.164734
Asian Haug-Haug-Margrabe: 12.108746

И геометрическая и арифметическая цена азиатов ниже, чем их дубликат Ванили.

Можно анализировать цены опций на разных уровнях базового актива. Используя Financial Instruments Toolbox™, возможно наблюдать эффект различных параметров на цене опций. Рассмотрите, например, эффект изменений в цене базового актива.

StockPrices = (50:5:150)';
PriceBLS = nan(size(StockPrices));
PriceKV = nan(size(StockPrices));
PriceLevy = nan(size(StockPrices));
PriceTW = nan(size(StockPrices));
PriceHHM = nan(size(StockPrices));
idx = 1;
for So = StockPrices'
    SP = stockspec(Sigma, So);
    PriceBLS(idx) = optstockbybls(RateSpec, SP, Settle, ExerciseDates,...
                                  OptSpec, Strike);
                              
    PriceKV(idx) = asianbykv(RateSpec, SP, OptSpec, Strike, Settle,...
                             ExerciseDates);                                  
                     
    PriceLevy(idx) = asianbylevy(RateSpec, SP, OptSpec, Strike, Settle,...
                                 ExerciseDates);

    PriceKV(idx) = asianbykv(RateSpec, SP, OptSpec, Strike, Settle,...
                             ExerciseDates);
                         
    PriceKV(idx) = asianbykv(RateSpec, SP, OptSpec, Strike, Settle,...
                             ExerciseDates);                             
    
    idx = idx+1;
end

figure('menubar', 'none', 'numbertitle', 'off')
plot(StockPrices, [PriceBLS PriceKV PriceLevy PriceTW PriceHHM]);
xlabel 'Spot Price ($)'
ylabel 'Option Price ($)'
title 'Call Price Comparison'
legend('Vanilla', 'Geometric Asian', 'Continuous Arithmetic Asian (1)', 'Continuous Arithmetic Asian (2)', 'Discrete Arithmetic Asian', 'location', 'northwest');

Можно заметить, что цена азиатской опции является более дешевой, чем цена опции Ванили.

Кроме того, возможно наблюдать эффект изменений в энергозависимости базового актива. Приведенная ниже таблица показывает то, что происходит с азиатом и ценами опции Ванили, когда постоянная энергозависимость изменяется.

Call Option (ITM)

Strike = 90 AssetPrice = 100

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

Volatility Haug-Haug-Margrabe Turnbull-Wakeman Levy Kemna-Vorst BLS

10% 11.3946 11.3987 11.3987 11.3121 13.4343

20% 12.1087 12.1647 12.1647 11.8626 15.7438

30% 13.5374 13.6512 13.6512 13.0338 18.8770

40% 15.2823 15.4464 15.4464 14.4086 22.2507

Сравнение расчетных цен показывает, что азиатские опции менее чувствительны к изменениям энергозависимости, поскольку усреднение уменьшает энергозависимость значения базового актива. Кроме того, азиатские опции, которые используют среднее арифметическое, являются более дорогими, чем те, которые используют среднее геометрическое.

Теперь, исследуйте эффект удара по ценам опции.

Strikes = (90:5:120)';
NStrike = length(Strikes);
PriceBLS = nan(size(Strikes));
PriceKV = nan(size(Strikes));
PriceLevy = nan(size(Strikes));
PriceTW = nan(size(Strikes));
PriceHHM = nan(size(Strikes));
idx = 1;
for ST = Strikes'
    SP = stockspec(Sigma, AssetPrice);
    PriceBLS(idx) = optstockbybls(RateSpec, SP, Settle, ExerciseDates,...
                                  OptSpec, ST);
                     
    PriceKV(idx) = asianbykv(RateSpec, SP, OptSpec, ST, Settle,...
                             ExerciseDates);                                  
                                  
    PriceLevy(idx) = asianbylevy(RateSpec, SP, OptSpec, ST, Settle,...
                                 ExerciseDates);

    PriceTW(idx) = asianbytw(RateSpec, SP, OptSpec, ST, Settle,...
                             ExerciseDates);                             
                                 
    PriceHHM(idx) = asianbyhhm(RateSpec, SP, OptSpec, ST, Settle,...
                             ExerciseDates);     
	
    idx = idx+1;
end

figure('menubar', 'none', 'numbertitle', 'off')
plot(Strikes, [PriceBLS PriceKV PriceLevy PriceTW PriceHHM]);
xlabel 'Strike Price ($)'
ylabel 'Option Price ($)'
title 'Effect of Strike on Option Prices'
legend('Vanilla', 'Geometric Asian', 'Continuous Arithmetic Asian (1)', 'Continuous Arithmetic Asian (2)', 'Discrete Arithmetic Asian', 'location', 'northeast');

Фигура выше отображает цену опции относительно цены исполнения опциона. Начиная с уменьшений значения колл-опциона, когда увеличивается цена исполнения опциона, азиатская кривая вызова находится под кривой вызова Ванили. Можно заметить, что азиатский колл-опцион является менее дорогим, чем вызов Ванили.

Хеджирование

Хеджирование является страховкой, чтобы минимизировать воздействие движений рынка на значении положения или портфеля. Как базовые изменения, пропорции инструментов, формирующих портфель, возможно, должны быть настроены, чтобы сохранить чувствительность в желаемой области значений. Delta измеряет чувствительность цены опции к изменениям в цене базового.

Примите, что у вас есть портфель двух опций с той же забастовкой и зрелостью. Можно использовать Financial Instruments Toolbox™, чтобы вычислить Delta для опций Ванили и Средней стоимости.

OutSpec = 'Delta';

% Vanilla option using Black Scholes 
DeltaBLS = optstocksensbybls(RateSpec, StockSpec, Settle, ExerciseDates,...
                             OptSpec, Strike, 'OutSpec', OutSpec);

% Asian option using Kemna-Vorst method
DeltaKV = asiansensbykv(RateSpec, StockSpec, OptSpec, Strike, Settle,...
                        ExerciseDates,  'OutSpec', OutSpec);                         
                             
% Asian option using Levy model
DeltaLevy = asiansensbylevy(RateSpec, StockSpec, OptSpec, Strike, Settle,...
                            ExerciseDates,  'OutSpec', OutSpec);

% Asian option using Turnbull-Wakeman model
DeltaTW = asiansensbytw(RateSpec, StockSpec, OptSpec, Strike, Settle,...
                        ExerciseDates,  'OutSpec', OutSpec);
                    
% Asian option using Haug-Haug-Margrabe model
DeltaHHM = asiansensbyhhm(RateSpec, StockSpec, OptSpec, Strike, Settle,...
                        ExerciseDates,  'OutSpec', OutSpec);                        

% Delta Comparison
displayComparisonVanillaAsian('Delta', DeltaBLS, DeltaKV, DeltaLevy, DeltaTW, DeltaHHM)
Comparison of Vanilla and Asian Delta:

Vanilla BLS:              0.788666
Asian Kemna-Vorst:        0.844986
Asian Levy:               0.852806
Asian Turnbull-Wakeman:   0.852806
Asian Haug-Haug-Margrabe: 0.857864

Следующий график демонстрирует поведение Delta для Ванили и азиатских опций как функция базовой цены.

StockPrices = (40:5:120)';
NStockPrices = length(StockPrices);
DeltaBLS = nan(size(StockPrices));
DeltaKV = nan(size(StockPrices));
DeltaLevy = nan(size(StockPrices));
DeltaTW = nan(size(StockPrices));
DeltaHHM = nan(size(StockPrices));

idx = 1;
for SPrices = StockPrices'
    SP = stockspec(Sigma, SPrices);
    DeltaBLS(idx) = optstocksensbybls(RateSpec, SP, Settle, ...
                    ExerciseDates, OptSpec, Strike, 'OutSpec', OutSpec);

    DeltaKV(idx) = asiansensbykv(RateSpec, SP, OptSpec, Strike, ...
                   Settle, ExerciseDates,'OutSpec', OutSpec);                
                
    DeltaLevy(idx) = asiansensbylevy(RateSpec, SP, OptSpec, Strike,...
                     Settle, ExerciseDates, 'OutSpec', OutSpec);

    DeltaTW(idx) = asiansensbytw(RateSpec, SP, OptSpec, Strike, ...
                   Settle, ExerciseDates,'OutSpec', OutSpec);
               
    DeltaHHM(idx) = asiansensbyhhm(RateSpec, SP, OptSpec, Strike, ...
                   Settle, ExerciseDates,'OutSpec', OutSpec);
               
    idx = idx+1;
end

figure('menubar', 'none', 'numbertitle', 'off')
plot(StockPrices, [DeltaBLS DeltaKV DeltaLevy DeltaTW DeltaHHM]);
xlabel 'Spot Price ($)'
ylabel 'Call Delta'
title 'Delta Comparison (Strike Price = $90)'
legend('Vanilla', 'Geometric Asian', 'Continuous Arithmetic Asian (1)', 'Continuous Arithmetic Asian (2)', 'Discrete Arithmetic Asian', 'location', 'northwest');

Ваниль или азиат, колл-опцион в деньгах (ITM) более чувствителен к динамике цен, чем из денег (OTM) опция. Если цена активов будет глубока в деньгах, то это, более вероятно, будет осуществлено. Противоположное происходит для убыточного опциона. Азиатская дельта ниже для убыточных опционов и выше для в денежных опциях, чем его европейский дубликат Ванили. Геометрическая азиатская дельта ниже, чем арифметическая азиатская дельта.

Ссылки

[1] Kemna, A. и Vorst, A. "Метод ценообразования для Опций На основе Средней Стоимости активов". Журнал Банковского дела и Финансов. Издание 14, 1990, стр 113-129.

[2] Наложите, E. "Оценивая европейские Опции Валюты Средней скорости". Журнал Международных Денег и Финансов. Издание 11,1992, стр 474-491.

[3] Тернбулл, S. M., и Уокемен, L.M. "Быстрый Алгоритм для Оценки европейских Средних Опций". Журнал Финансового и Количественного анализа. Издание 26 (3), 1991, стр 377-389.

[4] Haug, например, полное руководство по опции, оценивая формулы. McGraw-Hill, Нью-Йорк, 2007.

Служебные функции

function displayPricesClosedForm(PriceKV, PriceLevy, PriceTW, PriceHHM)
fprintf('Comparison of Asian Arithmetic and Geometric Prices:\n');
fprintf('\n');
fprintf('Kemna-Vorst:        %f\n', PriceKV);
fprintf('Levy:               %f\n', PriceLevy);
fprintf('Turnbull-Wakeman:   %f\n', PriceTW);
fprintf('Haug-Haug-Margrabe: %f\n', PriceHHM);
end

function displayPricesCRR(PriceCRR20, PriceCRR40)
fprintf('Asian Prices using the CRR lattice model:\n');
fprintf('\n');
fprintf('PriceArithmetic(CRR20): %f\n', PriceCRR20(1));
fprintf('PriceArithmetic(CRR40): %f\n', PriceCRR40(1));
fprintf('PriceGeometric (CRR20): %f\n', PriceCRR20(2));
fprintf('PriceGeometric (CRR40): %f\n', PriceCRR40(2));
end

function displayPricesMonteCarlo(PriceAMC, PriceAMCAntithetic, PriceGMC, PriceGMCAntithetic)
fprintf('Asian Prices using Monte Carlo Method:\n');
fprintf('\n');
fprintf('Arithmetic Asian\n');
fprintf('Standard Monte Carlo:           %f\n', PriceAMC);
fprintf('Variate Antithetic Monte Carlo: %f\n\n', PriceAMCAntithetic);
fprintf('Geometric Asian\n');
fprintf('Standard Monte Carlo:           %f\n', PriceGMC);
fprintf('Variate Antithetic Monte Carlo: %f\n', PriceGMCAntithetic);
end

function displayComparisonAsianCallPrices(PriceLevy, PriceTW, PriceHHM, PriceCRR40, PriceAMCAntithetic, PriceAMCAntithetic2000, PriceKV, PriceGMCAntithetic, PriceGMCAntithetic2000)
fprintf('Comparison of Asian call prices:\n');
fprintf('\n');
fprintf('Arithmetic Asian\n');
fprintf('Levy:                     %f\n', PriceLevy);
fprintf('Turnbull-Wakeman:         %f\n', PriceTW);
fprintf('Haug-Haug-Margrabe:       %f\n', PriceHHM);
fprintf('Cox-Ross-Rubinstein:      %f\n', PriceCRR40(1));
fprintf('Monte Carlo(500 trials):  %f\n', PriceAMCAntithetic);
fprintf('Monte Carlo(2000 trials): %f\n', PriceAMCAntithetic2000);
fprintf('\n');
fprintf('Geometric Asian\n');
fprintf('Kemna-Vorst:              %f\n', PriceKV);
fprintf('Cox-Ross-Rubinstein:      %f\n', PriceCRR40(2));
fprintf('Monte Carlo(500 trials):  %f\n', PriceGMCAntithetic);
fprintf('Monte Carlo(2000 trials): %f\n', PriceGMCAntithetic2000);
end

function displayComparisonVanillaAsian(type, BLS, KV, Levy, TW, HHM)
fprintf('Comparison of Vanilla and Asian %s:\n', type);
fprintf('\n');
fprintf('Vanilla BLS:              %f\n', BLS);
fprintf('Asian Kemna-Vorst:        %f\n', KV);
fprintf('Asian Levy:               %f\n', Levy);
fprintf('Asian Turnbull-Wakeman:   %f\n', TW);
fprintf('Asian Haug-Haug-Margrabe: %f\n', HHM);
end