LookbackMC: Lookback option valuation via Monte Carlo (MC) simulation

Description Usage Arguments Details Value Author(s) References Examples

View source: R/Lookback.R

Description

Calculates the price of a lookback option using a Monte Carlo (MC) Simulation. Carries the assumption that the asset price is observed continuously. Assumes that the the option o followes ds = mu * S * dt + sqrt(vol) * S * dz where dz is a Wiener Process. Assume that without dividends, mu are default to be r.

Usage

1
2
LookbackMC(o = OptPx(Opt(Style = "Lookback"), r = 0.05, q = 0, vol = 0.3),
  NPaths = 5, div = 1000, Type = c("Floating", "Fixed"))

Arguments

o

The OptPx option object to price. See OptPx and Opt for more information.

NPaths

How many time of the simulation are applied. Coustomer defined.

div

number to decide length of each interval

Type

Specifies the Lookback option as either Floating or Fixed- default argument is Floating.

Details

To price the lookback option, we require the S0, K, and ttm arguments from object Opt and r, q, vol from object OptPx defined in the package. The results of simulation would unstable without setting seeds.

Value

A list of class LookbackMC consisting of the input object OptPx and the price of the lookback option based on Monte Carlo Simulation (see references).

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

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
(o = LookbackMC())$PxMC   #Use default arguments, Output: approximately 16.31.

 # Floating & Put
 o=OptPx(Opt(S0=50,K=50,ttm=0.25,Right='Put',Style="Lookback"),r=0.1,vol=.4)
 LookbackMC(o,NPaths=5,div=1000) #Output: 7.79 from Hull 9e Example 26.2 Pg 608.

 # Floating & Call
 o=OptPx(Opt(S0=50,K=50,ttm=0.25,Right='Call',Style="Lookback"),r=0.1,vol=.4)
 LookbackMC(o,NPaths=5,div=1000) #Output: 8.04 from Hull 9e Example 26.2 Pg 608

 # Fixed & Put
 o=OptPx(Opt(S0=50,K=60,ttm=1,Right='Put',Style="Lookback"),r=0.05,q=0.02,vol=.25)
 LookbackMC(o,Type="Fixed",NPaths=5,div=1000)

 # Fixed & Call
 o=OptPx(Opt(S0=50,K=55,ttm=1,Right='Call',Style="Lookback"),r=0.1,vol=.25)
 LookbackMC(o,Type="Fixed",NPaths=5,div=1000)

Example output

[1] 20.20607
$S0
[1] 50

$ttm
[1] 0.25

$K
[1] 50

$Style
$Style$Name
[1] "Lookback"

$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] FALSE

$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] TRUE

$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.1

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.4

$NSteps
[1] 3

$u
[1] 1.122401

$d
[1] 0.8909473

$dt
[1] 0.08333333

$a
[1] 1.008368

$p
[1] 0.5073193

$SYld
[1] 0.1

$DF_ttm
[1] 0.9753099

$DF_dt
[1] 0.9917013

$isFixed
[1] FALSE

$isFloating
[1] TRUE

$NPaths
[1] 5

$PxMC
[1] 10.64556

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

$ttm
[1] 0.25

$K
[1] 50

$Style
$Style$Name
[1] "Lookback"

$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] FALSE

$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] TRUE

$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.1

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.4

$NSteps
[1] 3

$u
[1] 1.122401

$d
[1] 0.8909473

$dt
[1] 0.08333333

$a
[1] 1.008368

$p
[1] 0.5073193

$SYld
[1] 0.1

$DF_ttm
[1] 0.9753099

$DF_dt
[1] 0.9917013

$isFixed
[1] FALSE

$isFloating
[1] TRUE

$NPaths
[1] 5

$PxMC
[1] 9.238003

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

$ttm
[1] 1

$K
[1] 60

$Style
$Style$Name
[1] "Lookback"

$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] FALSE

$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] TRUE

$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.02

$rf
[1] 0

$vol
[1] 0.25

$NSteps
[1] 3

$u
[1] 1.155274

$d
[1] 0.8655955

$dt
[1] 0.3333333

$a
[1] 1.01005

$p
[1] 0.4986723

$SYld
[1] 0.03

$DF_ttm
[1] 0.9512294

$DF_dt
[1] 0.9834715

$isFixed
[1] TRUE

$isFloating
[1] FALSE

$NPaths
[1] 5

$PxMC
[1] 19.7323

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

$ttm
[1] 1

$K
[1] 55

$Style
$Style$Name
[1] "Lookback"

$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] FALSE

$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] TRUE

$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.1

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.25

$NSteps
[1] 3

$u
[1] 1.155274

$d
[1] 0.8655955

$dt
[1] 0.3333333

$a
[1] 1.033895

$p
[1] 0.5809875

$SYld
[1] 0.1

$DF_ttm
[1] 0.9048374

$DF_dt
[1] 0.9672161

$isFixed
[1] TRUE

$isFloating
[1] FALSE

$NPaths
[1] 5

$PxMC
[1] 8.707497

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

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