gb.objective: Generalized Beta Objective

Description Usage Arguments Details Value Author(s) References Examples

Description

gb.objective is the objective function to be minimized in extract.gb.density.

Usage

1
2
gb.objective(theta, r, te, y, s0, market.calls, call.strikes, call.weights = 1, 
  market.puts, put.strikes, put.weights = 1, lambda = 1)

Arguments

theta

initial values for optimization

r

risk free rate

te

time to expiration

y

dividend yield

s0

current asset value

market.calls

market calls (most expensive to cheapest)

call.strikes

strikes for the calls (smallest to largest)

call.weights

weights to be used for calls

market.puts

market calls (cheapest to most expensive)

put.strikes

strikes for the puts (smallest to largest)

put.weights

weights to be used for puts

lambda

Penalty parameter to enforce the martingale condition

Details

This is the function minimized by extract.gb.desnity function.

Value

obj

value of the objective function

Author(s)

Kam Hamidieh

References

R.M. Bookstaber and J.B. McDonald (1987) A general distribution for describing security price returns. Journal of Business, 60, 401-424

X. Liu and M.B. Shackleton and S.J. Taylor and X. Xu (2007) Closed-form transformations from risk-neutral to real-world distributions Journal of Business, 60, 401-424

E. Jondeau and S. Poon and M. Rockinger (2007): Financial Modeling Under Non-Gaussian Distributions Springer-Verlag, London

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#
# The objective should be very small!
# Note the weights are automatically
# set to 1.
#

r  = 0.03
te = 50/365
k  = seq(from = 800, to = 1200, by = 10)
a  = 10
b  = 1000
v  = 2.85
w  = 2.85
y  = 0.01
s0 = exp((y-r)*te) * b * beta(v + 1/a, w - 1/a)/beta(v,w) 
s0

call.strikes = seq(from = 800, to = 1200, by = 10)
market.calls = price.gb.option(r = r, te = te, s0 = s0, y = y, 
                        k = call.strikes, a = a, b = b, v = v, w = w)$call

put.strikes = seq(from = 805, to = 1200, by = 10)
market.puts = price.gb.option(r = r, te = te, s0 = s0, y = y, 
                        k = put.strikes, a = a, b = b, v = v, w = w)$put

gb.objective(theta=c(a,b,v,w),r = r, te = te, y = y, s0 = s0, 
             market.calls = market.calls, call.strikes = call.strikes,  
             market.puts = market.puts, put.strikes = put.strikes, lambda = 1)

RND documentation built on May 1, 2019, 10:52 p.m.