blksch | R Documentation |
bscall
and bsput
compute Black-Scholes
call and put prices. The functions assetcall
,
assetput
, cashcall
, and cashput
provide the
prices of binary options that pay one share (the asset options) or $1
(the cash options) if at expiration the asset price exceeds the
strike (the calls) or is below the strike (the puts). We have the
identities
bscall(s, k, v, r, tt, d)
= assetcall(s, k, v, r, tt, d) - k*cashcall(s, k, v, r, tt, d)
bsput(s, k, v, r, tt, d)
= k*cashput(s, k, v, r, tt, d) - assetput(s, k, v, r, tt, d)
bscall(s, k, v, r, tt, d) bsput(s, k, v, r, tt, d) assetcall(s, k, v, r, tt, d) cashcall(s, k, v, r, tt, d) assetput(s, k, v, r, tt, d) cashput(s, k, v, r, tt, d)
s |
Price of the underlying asset |
k |
Strike price |
v |
Volatility of the asset price, 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 |
Returns a scalar or vector of option prices, depending on the inputs
A Black-Scholes option price. If more than one argument is a vector, the recycling rule determines the handling of the inputs
It is possible to specify the inputs either in terms of an interest rate and a "dividend yield" or an interest rate and a "cost of carry". In this package, the dividend yield should be thought of as the cash dividend received by the owner of the underlying asset, or (equivalently) as the payment received if the owner were to lend the asset.
There are other option pricing packages available for R, and these
may use different conventions for specifying inputs. In fOptions,
the dividend yield is replaced by the generalized cost of carry,
which is the net payment required to fund a position in the
underlying asset. If the interest rate is 10% and the dividend
yield is 3%, the generalized cost of carry is 7% (the part of the
interest payment not funded by the dividend payment). Thus, using
the GBS
function from fOptions, these two expressions return
the same price:
bscall(s, k, v, r, tt, d)
fOptions::GBSOption('c', S=s, K=k, Time=tt, r=r, b=r-d, sigma=v)
s=40; k=40; v=0.30; r=0.08; tt=0.25; d=0; bscall(s, k, v, r, tt, d) ## following returns the same price as previous assetcall(s, k, v, r, tt, d) - k*cashcall(s, k, v, r, tt, d) ## return option prices for different strikes bsput(s, k=38:42, v, r, tt, d)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.