# spreadbykirk

Price European spread options using Kirk pricing model

## Description

returns the price for a European spread option using the Kirk pricing model.`Price`

= spreadbykirk(`RateSpec`

,`StockSpec1`

,`StockSpec2`

,`Settle`

,`Maturity`

,`OptSpec`

,`Strike`

,`Corr`

)

## Examples

### Compute the Price of a Spread Option Using the Kirk Model

Define the spread option dates.

Settle = '01-Jan-2012'; Maturity = '01-April-2012';

Define asset 1. Price and volatility of RBOB gasoline

Price1gallon = 2.85; % $/gallon Price1 = Price1gallon * 42; % $/barrel Vol1 = 0.29;

Define asset 2. Price and volatility of WTI crude oil

```
Price2 = 93.20; % $/barrel
Vol2 = 0.36;
```

Define the correlation between the underlying asset prices of asset 1 and asset 2.

Corr = 0.42;

Define the spread option.

```
OptSpec = 'call';
Strike = 20;
```

Define the `RateSpec`

.

rates = 0.05; Compounding = -1; Basis = 1; RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, ... 'EndDates', Maturity, 'Rates', rates, ... 'Compounding', Compounding, 'Basis', Basis)

`RateSpec = `*struct with fields:*
FinObj: 'RateSpec'
Compounding: -1
Disc: 0.9876
Rates: 0.0500
EndTimes: 0.2500
StartTimes: 0
EndDates: 734960
StartDates: 734869
ValuationDate: 734869
Basis: 1
EndMonthRule: 1

Define the `StockSpec`

for the two assets.

StockSpec1 = stockspec(Vol1, Price1)

`StockSpec1 = `*struct with fields:*
FinObj: 'StockSpec'
Sigma: 0.2900
AssetPrice: 119.7000
DividendType: []
DividendAmounts: 0
ExDividendDates: []

StockSpec2 = stockspec(Vol2, Price2)

`StockSpec2 = `*struct with fields:*
FinObj: 'StockSpec'
Sigma: 0.3600
AssetPrice: 93.2000
DividendType: []
DividendAmounts: 0
ExDividendDates: []

Compute the European spread option price based on the Kirk model.

```
Price = spreadbykirk(RateSpec, StockSpec1, StockSpec2, Settle, ...
Maturity, OptSpec, Strike, Corr)
```

Price = 11.1904

## Input Arguments

`StockSpec1`

— Stock specification for underlying asset 1

structure

Stock specification for underlying asset 1. For information on the stock specification,
see `stockspec`

.

`stockspec`

can handle other types of underlying
assets. For example, for physical commodities the price is represented by
`StockSpec.Asset`

, the volatility is represented by
`StockSpec.Sigma`

, and the convenience yield is represented by
`StockSpec.DividendAmounts`

.

**Data Types: **`struct`

`StockSpec2`

— Stock specification for underlying asset 2

structure

Stock specification for underlying asset 2. For information on the stock specification,
see `stockspec`

.

`stockspec`

can handle other types of underlying
assets. For example, for physical commodities the price is represented by
`StockSpec.Asset`

, the volatility is represented by
`StockSpec.Sigma`

, and the convenience yield is represented by
`StockSpec.DividendAmounts`

.

**Data Types: **`struct`

`Settle`

— Settlement dates for spread option

serial date number | vector of serial date numbers | date character vector | cell array of character vectors

Settlement dates for the spread option, specified as date character vectors or as serial
date numbers using a `NINST`

-by-`1`

vector or cell array of
character vector dates.

**Data Types: **`double`

| `char`

| `cell`

`Maturity`

— Maturity date for spread option

serial date number | vector of serial date numbers | date character vector | cell array of date character vectors

Maturity date for spread option, specified as date character vectors or as serial date
numbers using a `NINST`

-by-`1`

vector or cell array of
character vector dates.

**Data Types: **`double`

| `char`

| `cell`

`OptSpec`

— Definition of option

character vector with values `'call'`

or
`'put'`

| cell array of character vectors

Definition of option as `'call'`

or `'put'`

, specified
as a `NINST`

-by-`1`

cell array of character vectors.

**Data Types: **`cell`

| `char`

`Strike`

— Option strike price values

integer | vector of integers

Option strike price values, specified as an integer using a
`NINST`

-by-`1`

vector of strike price values.

If `Strike`

is equal to `0`

, the function computes the
price of an exchange option.

**Data Types: **`single`

| `double`

`Corr`

— Correlation between underlying asset prices

integer | vector of integers

Correlation between underlying asset prices, specified as an integer using a
`NINST`

-by-`1`

vector.

**Data Types: **`single`

| `double`

## Output Arguments

`Price`

— Expected prices of spread option

vector

Expected prices of the spread option, returned as a
`NINST`

-by-`1`

vector.

## More About

### Spread Option

A *spread option* is an option written on the
difference of two underlying assets.

For example, a European call on the difference of two assets *X1* and
*X2* would have the following pay off at maturity:

$$\mathrm{max}(X1-X2-K,0)$$

where:

*K* is the strike price.

For more information, see Spread Option.

## References

[1] Carmona, R., Durrleman, V. “Pricing and Hedging Spread Options.”
*SIAM Review.* Vol. 45, No. 4, pp. 627–685, Society for Industrial and
Applied Mathematics, 2003.

## Version History

**Introduced in R2013b**

## Open Example

You have a modified version of this example. Do you want to open this example with your edits?

## 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.

# Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

## How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

### Americas

- 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)