basketbyju
Price European basket options using Nengjiu Ju approximation model
Description
Examples
Find a European call basket option of two stocks. Assume that the stocks are currently trading at $10 and $11.50 with annual volatilities of 20% and 25%, respectively. The basket contains one unit of the first stock and one unit of the second stock. The correlation between the assets is 30%. On January 1, 2009, an investor wants to buy a 1-year call option with a strike price of $21.50. The current annualized, continuously compounded interest rate is 5%. Use this data to compute the price of the call basket option with the Nengjiu Ju approximation model.
Settle = datetime(2009,1,1); Maturity = datetime(2010,1,1); % Define the RateSpec. Rate = 0.05; Compounding = -1; RateSpec = intenvset('ValuationDate', Settle, 'StartDates', ... Settle, 'EndDates', Maturity, 'Rates', Rate, 'Compounding', Compounding); % Define the Correlation matrix. Correlation matrices are symmetric and % have ones along the main diagonal. Corr = [1 0.30; 0.30 1]; % Define the BasketStockSpec. AssetPrice = [10;11.50]; Volatility = [0.2;0.25]; Quantity = [1;1]; BasketStockSpec = basketstockspec(Volatility, AssetPrice, Quantity, Corr); % Compute the price of the call basket option. OptSpec = {'call'}; Strike = 21.5; PriceCorr30 = basketbyju(RateSpec, BasketStockSpec, OptSpec, Strike, Settle, Maturity)
PriceCorr30 = 2.1221
Compute the price of the basket instrument for these two stocks with a correlation of 60%. Then compare this cost to the total cost of buying two individual call options.
Corr = [1 0.60; 0.60 1]; % Define the new BasketStockSpec. BasketStockSpec = basketstockspec(Volatility, AssetPrice, Quantity, Corr); % Compute the price of the call basket option with Correlation = -0.60 PriceCorr60 = basketbyju(RateSpec, BasketStockSpec, OptSpec, Strike, Settle, Maturity)
PriceCorr60 = 2.2757
The following table summarizes the sensitivity of the option to correlation changes. In general, the premium of the basket option decreases with lower correlation and increases with higher correlation.

Compute the cost of two vanilla 1-year call options using the Black-Scholes (BLS) model on the individual assets:
StockSpec = stockspec(Volatility, AssetPrice);
StrikeVanilla= [10;11.5];
PriceVanillaOption = optstockbybls(RateSpec, StockSpec, Settle, Maturity,...
OptSpec, StrikeVanilla)PriceVanillaOption = 2×1
    1.0451
    1.4186
Find the total cost of buying two individual call options.
sum(PriceVanillaOption)
ans = 2.4637
The total cost of purchasing two individual call options is $2.4637, compared to the maximum cost of the basket option of $2.27 with a correlation of 60%.
Input Arguments
BasketStock specification, specified using basketstockspec.
Data Types: struct
Definition of the option as 'call' or
                     'put', specified as a character vector or a
                     2-by-1 cell array of character
                  vectors.
Data Types: char | cell
Option strike price value, specified as one of the following:
- For a European or Bermuda option, - Strikeis a scalar (European) or- 1-by-- NSTRIKES(Bermuda) vector of strike prices.
- For an American option, - Strikeis a scalar vector of the strike price.
Data Types: double
Settlement or trade date for the basket option, specified as a scalar datetime, string, or date character vector.
To support existing code, basketbyju also
    accepts serial date numbers as inputs, but they are not recommended.
Maturity date for the basket option, specified as a scalar datetime, string, or date character vector.
To support existing code, basketbyju also
    accepts serial date numbers as inputs, but they are not recommended.
Output Arguments
Expected price for basket option, returned as a numeric.
More About
A basket option is an option on a portfolio of several underlying equity assets.
A basket option allows investors to hedge or speculate on the performance of a group of assets, such as stocks, commodities, or currencies, as opposed to individual securities. Basket options are particularly useful in situations where investors want to gain exposure to a diversified set of assets with a single financial instrument.
Payout for a basket option depends on the cumulative performance of the collection of the individual assets. A basket option tends to be cheaper than the corresponding portfolio of plain vanilla options for these reasons:
- If the basket components correlate negatively, movements in the value of one component neutralize opposite movements of another component. Unless all the components correlate perfectly, the basket option is cheaper than a series of individual options on each of the assets in the basket. 
- A basket option minimizes transaction costs because an investor has to purchase only one option instead of several individual options. 
For more information, see Basket Option.
References
[1] Nengjiu Ju. “Pricing Asian and Basket Options Via Taylor Expansion.” Journal of Computational Finance. Vol. 5, 2002.
Version History
Introduced in R2009bAlthough basketbyju supports serial date numbers,
                        datetime values are recommended instead. The
                        datetime data type provides flexible date and time
                formats, storage out to nanosecond precision, and properties to account for time
                zones and daylight saving time.
To convert serial date numbers or text to datetime values, use the datetime function. For example:
t = datetime(738427.656845093,"ConvertFrom","datenum"); y = year(t)
y =
        2021
There are no plans to remove support for serial date number inputs.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)