Main Content

blsprice

Black-Scholes put and call option pricing

Description

example

[Call,Put] = blsprice(Price,Strike,Rate,Time,Volatility) computes European put and call option prices using a Black-Scholes model.

Note

Any input argument can be a scalar, vector, or matrix. If a scalar, then that value is used to price all options. If more than one input is a vector or matrix, then the dimensions of those non-scalar inputs must be the same.

Ensure that Rate, Time, Volatility, and Yield are expressed in consistent units of time.

In addition, you can use the Financial Instruments Toolbox™ object framework with the BlackScholes (Financial Instruments Toolbox) pricer object to obtain price values for a Vanilla, Barrier, Touch, DoubleTouch, or Binary instrument using a BlackScholes model.

example

[Call,Put] = blsprice(___,Yield) adds an optional an argument for Yield.

Examples

collapse all

This example shows how to price European stock options that expire in three months with an exercise price of $95. Assume that the underlying stock pays no dividend, trades at $100, and has a volatility of 50% per annum. The risk-free rate is 10% per annum.

[Call, Put] = blsprice(100, 95, 0.1, 0.25, 0.5)
Call = 13.6953
Put = 6.3497

The S&P 100 index is at 910 and has a volatility of 25% per annum. The risk-free rate of interest is 2% per annum and the index provides a dividend yield of 2.5% per annum. Calculate the value of a three-month European call and put with a strike price of 980.

 [Call,Put] = blsprice(910,980,.02,.25,.25,.025)
Call = 19.6863
Put = 90.4683

Price an FX option on buying GBP with USD.

S = 1.6;  % spot exchange rate 
X = 1.6;  % strike 
T = .3333; 
r_d = .08;  % USD interest rate 
r_f = .11;  % GBP interest rate 
sigma = .2; 

Price = blsprice(S,X,r_d,T,sigma,r_f)
Price = 0.0639

Input Arguments

collapse all

Current price of the underlying asset, specified as a numeric value.

Data Types: double

Exercise price of the option, specified as a numeric value.

Data Types: double

Annualized continuously compounded risk-free rate of return over the life of the option, specified as a positive decimal number.

Data Types: double

Time to expiration of the option, specified as the number of years.

Data Types: double

Annualized asset price volatility (that is, annualized standard deviation of the continuously compounded asset return), specified as a positive decimal number.

Data Types: double

(Optional) Annualized continuously compounded yield of the underlying asset over the life of the option, specified as a decimal number. If Yield is empty or missing, the default value is 0.

For example, Yield could represent the dividend yield (annual dividend rate expressed as a percentage of the price of the security) or foreign risk-free interest rate for options written on stock indices and currencies.

Note

blsprice can handle other types of underlies like Futures and Currencies. When pricing Futures (Black model), enter the input argument Yield as:

Yield = Rate
When pricing currencies (Garman-Kohlhagen model), enter the input argument Yield as:
Yield = ForeignRate
where ForeignRate is the continuously compounded, annualized risk-free interest rate in the foreign country.

Data Types: double

Output Arguments

collapse all

Price of a European call option, returned as a matrix.

Price of a European put option, returned as a matrix.

References

[1] Hull, John C. Options, Futures, and Other Derivatives. 5th edition, Prentice Hall, 2003.

[2] Luenberger, David G. Investment Science. Oxford University Press, 1998.

Version History

Introduced in R2006a