Description Usage Arguments Value Author(s) References Examples
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.
1 2 |
o |
An object of class |
dir |
A direction for the barrier, either |
knock |
The option is either a knock-in option or knock-out option. Default= |
H |
The barrier level. |
A list of class BarrierLT
consisting of the input object OptPx
and the appended new parameters and option price.
Tong Liu, Department of Statistics, Rice University, Spring 2015
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.
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")))
|
[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"
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.