BarrierLT: Barrrier option valuation via lattice tree (LT)

Description Usage Arguments Value Author(s) References Examples

View source: R/Barrier.R

Description

Use Binomial Tree to price barrier options with relatively large NSteps (NSteps > 100) steps. The price may be not as percise as BSM function cause the convergence speed for Binomial Tree is kind of slow.

Usage

1
2
BarrierLT(o = OptPx(Opt(Style = "Barrier"), vol = 0.25, r = 0.05, q = 0.02,
  NSteps = 5), dir = c("Up", "Down"), knock = c("In", "Out"), H = 60)

Arguments

o

An object of class OptPx

dir

A direction for the barrier, either 'Up' or 'Down' Default='Up'

knock

The option is either a knock-in option or knock-out option. Default='In'

H

The barrier level. H should less than S0 if 'Up', H should greater than S0 if 'Down' Default=60.

Value

A list of class BarrierLT consisting of the input object OptPx and the appended new parameters and option price.

Author(s)

Tong Liu, Department of Statistics, Rice University, Spring 2015

References

Hull, John C., Options, Futures and Other Derivatives, 9ed, 2014. Prentice Hall. ISBN 978-0-13-345631-8, http://www-2.rotman.utoronto.ca/~hull/ofod/index.html
p.467-468. Trinomial Trees, p.604-606: Barrier Options.

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
29
30
31
32
33
34
35
36
# default Up and Knock-in Call Option with H=60, approximately 7.09
(o = BarrierLT())$PxLT

#Visualization of price changes as Nsteps change.
o = Opt(Style="Barrier")
visual=sapply(10:200,function(n) BarrierLT(OptPx(o,NSteps=n))$PxLT)

c=(10:200)
plot(visual~c,type="l",xlab="NSteps",ylab="Price",main="Price converence with NSteps")

# Down and Knock-out Call Option with H=40
o = OptPx(o=Opt(Style="Barrier"))
BarrierLT(o,dir="Down",knock="Out",H=40)

# Down and Knock-in Call Option with H=40
o = OptPx(o=Opt(Style="Barrier"))
BarrierLT(o,dir="Down",knock="In",H=40)

# Up and Knock-out Call Option with H=60
o = OptPx(o=Opt(Style="Barrier"))
BarrierLT(o,dir='Up',knock="Out")

# Down and Knock-out Put Option with H=40
o = OptPx(o=Opt(Style="Barrier",Right="Put"))
BarrierLT(o,dir="Down",knock="Out",H=40)

# Down and Knock-in Put Option with H=40
o = OptPx(o=Opt(Style="Barrier",Right="Put"))
BarrierLT(o,dir="Down",knock="In",H=40)

# Up and Knock-out Put Option with H=60
o = OptPx(o=Opt(Style="Barrier",Right="Put"))
BarrierLT(o,dir='Up',knock="Out")

# Up and Knock-in Put Option with H=60
BarrierLT(OptPx(o=Opt(Style="Barrier",Right="Put")))

Example output

[1] 6.522231
$S0
[1] 50

$ttm
[1] 2

$K
[1] 52

$Style
$Style$Name
[1] "Barrier"

$Style$Vanilla
[1] FALSE

$Style$Exotic
[1] TRUE

$Style$European
[1] FALSE

$Style$American
[1] FALSE

$Style$Asian
[1] FALSE

$Style$Binary
[1] FALSE

$Style$AverageStrike
[1] FALSE

$Style$Barrier
[1] TRUE

$Style$Chooser
[1] FALSE

$Style$Compound
[1] FALSE

$Style$DeferredPayment
[1] FALSE

$Style$ForeignEquity
[1] FALSE

$Style$ForwardStart
[1] FALSE

$Style$Gap
[1] FALSE

$Style$HolderExtendible
[1] FALSE

$Style$Ladder
[1] FALSE

$Style$Lookback
[1] FALSE

$Style$MOPM
[1] FALSE

$Style$Perpetual
[1] FALSE

$Style$Quotient
[1] FALSE

$Style$Rainbow
[1] FALSE

$Style$Shout
[1] FALSE

$Style$SimpleChooser
[1] FALSE

$Style$VarianceSwap
[1] FALSE


$Right
$Right$Name
[1] "Call"

$Right$Call
[1] TRUE

$Right$Put
[1] FALSE

$Right$Other
[1] FALSE

$Right$SignCP
[1] 1


$Curr
[1] "$"

$ContrSize
[1] 100

$SName
[1] "A stock share"

$SSymbol
[1] ""

$r
[1] 0.05

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.3

$NSteps
[1] 3

$u
[1] 1.277556

$d
[1] 0.7827445

$dt
[1] 0.6666667

$a
[1] 1.033895

$p
[1] 0.5075682

$SYld
[1] 0.05

$DF_ttm
[1] 0.9048374

$DF_dt
[1] 0.9672161

$Direction
[1] "Down"

$Knock
[1] "Out"

$isUp
[1] FALSE

$isIn
[1] FALSE

$PxLT
[1] 8.910034

attr(,"class")
[1] "Opt"   "OptPx"
$S0
[1] 50

$ttm
[1] 2

$K
[1] 52

$Style
$Style$Name
[1] "Barrier"

$Style$Vanilla
[1] FALSE

$Style$Exotic
[1] TRUE

$Style$European
[1] FALSE

$Style$American
[1] FALSE

$Style$Asian
[1] FALSE

$Style$Binary
[1] FALSE

$Style$AverageStrike
[1] FALSE

$Style$Barrier
[1] TRUE

$Style$Chooser
[1] FALSE

$Style$Compound
[1] FALSE

$Style$DeferredPayment
[1] FALSE

$Style$ForeignEquity
[1] FALSE

$Style$ForwardStart
[1] FALSE

$Style$Gap
[1] FALSE

$Style$HolderExtendible
[1] FALSE

$Style$Ladder
[1] FALSE

$Style$Lookback
[1] FALSE

$Style$MOPM
[1] FALSE

$Style$Perpetual
[1] FALSE

$Style$Quotient
[1] FALSE

$Style$Rainbow
[1] FALSE

$Style$Shout
[1] FALSE

$Style$SimpleChooser
[1] FALSE

$Style$VarianceSwap
[1] FALSE


$Right
$Right$Name
[1] "Call"

$Right$Call
[1] TRUE

$Right$Put
[1] FALSE

$Right$Other
[1] FALSE

$Right$SignCP
[1] 1


$Curr
[1] "$"

$ContrSize
[1] 100

$SName
[1] "A stock share"

$SSymbol
[1] ""

$r
[1] 0.05

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.3

$NSteps
[1] 3

$u
[1] 1.277556

$d
[1] 0.7827445

$dt
[1] 0.6666667

$a
[1] 1.033895

$p
[1] 0.5075682

$SYld
[1] 0.05

$DF_ttm
[1] 0.9048374

$DF_dt
[1] 0.9672161

$Direction
[1] "Down"

$Knock
[1] "In"

$isUp
[1] FALSE

$isIn
[1] TRUE

$PxLT
[1] 1.363458

attr(,"class")
[1] "Opt"   "OptPx"
$S0
[1] 50

$ttm
[1] 2

$K
[1] 52

$Style
$Style$Name
[1] "Barrier"

$Style$Vanilla
[1] FALSE

$Style$Exotic
[1] TRUE

$Style$European
[1] FALSE

$Style$American
[1] FALSE

$Style$Asian
[1] FALSE

$Style$Binary
[1] FALSE

$Style$AverageStrike
[1] FALSE

$Style$Barrier
[1] TRUE

$Style$Chooser
[1] FALSE

$Style$Compound
[1] FALSE

$Style$DeferredPayment
[1] FALSE

$Style$ForeignEquity
[1] FALSE

$Style$ForwardStart
[1] FALSE

$Style$Gap
[1] FALSE

$Style$HolderExtendible
[1] FALSE

$Style$Ladder
[1] FALSE

$Style$Lookback
[1] FALSE

$Style$MOPM
[1] FALSE

$Style$Perpetual
[1] FALSE

$Style$Quotient
[1] FALSE

$Style$Rainbow
[1] FALSE

$Style$Shout
[1] FALSE

$Style$SimpleChooser
[1] FALSE

$Style$VarianceSwap
[1] FALSE


$Right
$Right$Name
[1] "Call"

$Right$Call
[1] TRUE

$Right$Put
[1] FALSE

$Right$Other
[1] FALSE

$Right$SignCP
[1] 1


$Curr
[1] "$"

$ContrSize
[1] 100

$SName
[1] "A stock share"

$SSymbol
[1] ""

$r
[1] 0.05

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.3

$NSteps
[1] 3

$u
[1] 1.277556

$d
[1] 0.7827445

$dt
[1] 0.6666667

$a
[1] 1.033895

$p
[1] 0.5075682

$SYld
[1] 0.05

$DF_ttm
[1] 0.9048374

$DF_dt
[1] 0.9672161

$Direction
[1] "Up"

$Knock
[1] "Out"

$isUp
[1] TRUE

$isIn
[1] FALSE

$PxLT
[1] 0

attr(,"class")
[1] "Opt"   "OptPx"
$S0
[1] 50

$ttm
[1] 2

$K
[1] 52

$Style
$Style$Name
[1] "Barrier"

$Style$Vanilla
[1] FALSE

$Style$Exotic
[1] TRUE

$Style$European
[1] FALSE

$Style$American
[1] FALSE

$Style$Asian
[1] FALSE

$Style$Binary
[1] FALSE

$Style$AverageStrike
[1] FALSE

$Style$Barrier
[1] TRUE

$Style$Chooser
[1] FALSE

$Style$Compound
[1] FALSE

$Style$DeferredPayment
[1] FALSE

$Style$ForeignEquity
[1] FALSE

$Style$ForwardStart
[1] FALSE

$Style$Gap
[1] FALSE

$Style$HolderExtendible
[1] FALSE

$Style$Ladder
[1] FALSE

$Style$Lookback
[1] FALSE

$Style$MOPM
[1] FALSE

$Style$Perpetual
[1] FALSE

$Style$Quotient
[1] FALSE

$Style$Rainbow
[1] FALSE

$Style$Shout
[1] FALSE

$Style$SimpleChooser
[1] FALSE

$Style$VarianceSwap
[1] FALSE


$Right
$Right$Name
[1] "Put"

$Right$Call
[1] FALSE

$Right$Put
[1] TRUE

$Right$Other
[1] FALSE

$Right$SignCP
[1] -1


$Curr
[1] "$"

$ContrSize
[1] 100

$SName
[1] "A stock share"

$SSymbol
[1] ""

$r
[1] 0.05

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.3

$NSteps
[1] 3

$u
[1] 1.277556

$d
[1] 0.7827445

$dt
[1] 0.6666667

$a
[1] 1.033895

$p
[1] 0.5075682

$SYld
[1] 0.05

$DF_ttm
[1] 0.9048374

$DF_dt
[1] 0.9672161

$Direction
[1] "Down"

$Knock
[1] "Out"

$isUp
[1] FALSE

$isIn
[1] FALSE

$PxLT
[1] 0

attr(,"class")
[1] "Opt"   "OptPx"
$S0
[1] 50

$ttm
[1] 2

$K
[1] 52

$Style
$Style$Name
[1] "Barrier"

$Style$Vanilla
[1] FALSE

$Style$Exotic
[1] TRUE

$Style$European
[1] FALSE

$Style$American
[1] FALSE

$Style$Asian
[1] FALSE

$Style$Binary
[1] FALSE

$Style$AverageStrike
[1] FALSE

$Style$Barrier
[1] TRUE

$Style$Chooser
[1] FALSE

$Style$Compound
[1] FALSE

$Style$DeferredPayment
[1] FALSE

$Style$ForeignEquity
[1] FALSE

$Style$ForwardStart
[1] FALSE

$Style$Gap
[1] FALSE

$Style$HolderExtendible
[1] FALSE

$Style$Ladder
[1] FALSE

$Style$Lookback
[1] FALSE

$Style$MOPM
[1] FALSE

$Style$Perpetual
[1] FALSE

$Style$Quotient
[1] FALSE

$Style$Rainbow
[1] FALSE

$Style$Shout
[1] FALSE

$Style$SimpleChooser
[1] FALSE

$Style$VarianceSwap
[1] FALSE


$Right
$Right$Name
[1] "Put"

$Right$Call
[1] FALSE

$Right$Put
[1] TRUE

$Right$Other
[1] FALSE

$Right$SignCP
[1] -1


$Curr
[1] "$"

$ContrSize
[1] 100

$SName
[1] "A stock share"

$SSymbol
[1] ""

$r
[1] 0.05

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.3

$NSteps
[1] 3

$u
[1] 1.277556

$d
[1] 0.7827445

$dt
[1] 0.6666667

$a
[1] 1.033895

$p
[1] 0.5075682

$SYld
[1] 0.05

$DF_ttm
[1] 0.9048374

$DF_dt
[1] 0.9672161

$Direction
[1] "Down"

$Knock
[1] "In"

$isUp
[1] FALSE

$isIn
[1] TRUE

$PxLT
[1] 10.27349

attr(,"class")
[1] "Opt"   "OptPx"
$S0
[1] 50

$ttm
[1] 2

$K
[1] 52

$Style
$Style$Name
[1] "Barrier"

$Style$Vanilla
[1] FALSE

$Style$Exotic
[1] TRUE

$Style$European
[1] FALSE

$Style$American
[1] FALSE

$Style$Asian
[1] FALSE

$Style$Binary
[1] FALSE

$Style$AverageStrike
[1] FALSE

$Style$Barrier
[1] TRUE

$Style$Chooser
[1] FALSE

$Style$Compound
[1] FALSE

$Style$DeferredPayment
[1] FALSE

$Style$ForeignEquity
[1] FALSE

$Style$ForwardStart
[1] FALSE

$Style$Gap
[1] FALSE

$Style$HolderExtendible
[1] FALSE

$Style$Ladder
[1] FALSE

$Style$Lookback
[1] FALSE

$Style$MOPM
[1] FALSE

$Style$Perpetual
[1] FALSE

$Style$Quotient
[1] FALSE

$Style$Rainbow
[1] FALSE

$Style$Shout
[1] FALSE

$Style$SimpleChooser
[1] FALSE

$Style$VarianceSwap
[1] FALSE


$Right
$Right$Name
[1] "Put"

$Right$Call
[1] FALSE

$Right$Put
[1] TRUE

$Right$Other
[1] FALSE

$Right$SignCP
[1] -1


$Curr
[1] "$"

$ContrSize
[1] 100

$SName
[1] "A stock share"

$SSymbol
[1] ""

$r
[1] 0.05

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.3

$NSteps
[1] 3

$u
[1] 1.277556

$d
[1] 0.7827445

$dt
[1] 0.6666667

$a
[1] 1.033895

$p
[1] 0.5075682

$SYld
[1] 0.05

$DF_ttm
[1] 0.9048374

$DF_dt
[1] 0.9672161

$Direction
[1] "Up"

$Knock
[1] "Out"

$isUp
[1] TRUE

$isIn
[1] FALSE

$PxLT
[1] 5.892547

attr(,"class")
[1] "Opt"   "OptPx"
$S0
[1] 50

$ttm
[1] 2

$K
[1] 52

$Style
$Style$Name
[1] "Barrier"

$Style$Vanilla
[1] FALSE

$Style$Exotic
[1] TRUE

$Style$European
[1] FALSE

$Style$American
[1] FALSE

$Style$Asian
[1] FALSE

$Style$Binary
[1] FALSE

$Style$AverageStrike
[1] FALSE

$Style$Barrier
[1] TRUE

$Style$Chooser
[1] FALSE

$Style$Compound
[1] FALSE

$Style$DeferredPayment
[1] FALSE

$Style$ForeignEquity
[1] FALSE

$Style$ForwardStart
[1] FALSE

$Style$Gap
[1] FALSE

$Style$HolderExtendible
[1] FALSE

$Style$Ladder
[1] FALSE

$Style$Lookback
[1] FALSE

$Style$MOPM
[1] FALSE

$Style$Perpetual
[1] FALSE

$Style$Quotient
[1] FALSE

$Style$Rainbow
[1] FALSE

$Style$Shout
[1] FALSE

$Style$SimpleChooser
[1] FALSE

$Style$VarianceSwap
[1] FALSE


$Right
$Right$Name
[1] "Put"

$Right$Call
[1] FALSE

$Right$Put
[1] TRUE

$Right$Other
[1] FALSE

$Right$SignCP
[1] -1


$Curr
[1] "$"

$ContrSize
[1] 100

$SName
[1] "A stock share"

$SSymbol
[1] ""

$r
[1] 0.05

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.3

$NSteps
[1] 3

$u
[1] 1.277556

$d
[1] 0.7827445

$dt
[1] 0.6666667

$a
[1] 1.033895

$p
[1] 0.5075682

$SYld
[1] 0.05

$DF_ttm
[1] 0.9048374

$DF_dt
[1] 0.9672161

$Direction
[1] "Up"

$Knock
[1] "In"

$isUp
[1] TRUE

$isIn
[1] TRUE

$PxLT
[1] 4.380945

attr(,"class")
[1] "Opt"   "OptPx"

QFRM documentation built on May 2, 2019, 8:26 a.m.