jumps {derivmkts} R Documentation

## Option pricing with jumps

### Description

The functions `cashjump`, `assetjump`, and `mertonjump` return call and put prices, as vectors named "Call" and "Put", or "Call1", "Call2", etc. in case inputs are vectors. The pricing model is the Merton jump model, in which jumps are lognormally distributed.

### Usage

```assetjump(s, k, v, r, tt, d, lambda, alphaj, vj, complete)
cashjump(s, k, v, r, tt, d, lambda, alphaj, vj, complete)
mertonjump(s, k, v, r, tt, d, lambda, alphaj, vj, complete)
```

### Arguments

 `s` Stock price `k` Strike price of the option `v` Volatility of the stock, defined as the annualized standard deviation of the continuously-compounded return `r` Annual continuously-compounded risk-free interest rate `tt` Time to maturity in years `d` Dividend yield, annualized, continuously-compounded `lambda` Poisson intensity: expected number of jumps per year `alphaj` Mean change in log price conditional on a jump `vj` Standard deviation of change in log price conditional on a jump `complete` Return inputs along with prices, all in a data frame

### Details

Returns a scalar or vector of option prices, depending on the inputs

### Value

A vector of call and put prices computed using the Merton lognormal jump formula.

McDonald, Robert L., Derivatives Markets, 3rd Edition (2013) Chapter 24

bscall bsput

### Examples

```s <- 40; k <- 40; v <- 0.30; r <- 0.08; tt <- 2; d <- 0;
lambda <- 0.75; alphaj <- -0.05; vj <- .35;
bscall(s, k, v, r, tt, d)
bsput(s, k, v, r, tt, d)
mertonjump(s, k, v, r, tt, d, 0, 0, 0)
mertonjump(s, k, v, r, tt, d, lambda, alphaj, vj)

## following returns the same price as previous
c(1, -1)*(assetjump(s, k, v, r, tt, d, lambda, alphaj, vj) -
k*cashjump(s, k, v, r, tt, d, lambda, alphaj, vj))

## return call prices for different strikes
kseq <- 35:45
cp <- mertonjump(s, kseq, v, r, tt, d, lambda, alphaj,
vj)\$Call

## Implied volatilities: Compute Black-Scholes implied volatilities
## for options priced using the Merton jump model
vimp <- sapply(1:length(kseq), function(i) bscallimpvol(s, kseq[i],
r, tt, d, cp[i]))
plot(kseq, vimp, main='Implied volatilities', xlab='Strike',
ylab='Implied volatility', ylim=c(0.30, 0.50))
```

[Package derivmkts version 0.2.4 Index]