# blsprice

Black-Scholes put and call option pricing

## Syntax

``````[Call,Put] = blsprice(Price,Strike,Rate,Time,Volatility)``````
``````[Call,Put] = blsprice(___,Yield)``````

## Description

example

``````[Call,Put] = blsprice(Price,Strike,Rate,Time,Volatility)``` computes European put and call option prices using a Black-Scholes model. NoteAny 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. ```

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.

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

 Luenberger, David G. Investment Science. Oxford University Press, 1998.