RainbowBS: Rainbow option valuation via Black-Scholes (BS) model

Description Usage Arguments Details Value Author(s) References Examples

View source: R/Rainbow.R

Description

Rainbow Option via Black-Scholes (BS) model

Usage

1
2
3
RainbowBS(o = OptPx(Opt(Style = "Rainbow")), S1 = 100, S2 = 95, D1 = 0,
  D2 = 0, sigma1 = 0.15, sigma2 = 0.2, rho = 0.75, Type = c("Max",
  "Min"))

Arguments

o

An object of class OptPx

S1

A spot price of the underlying security 1 (usually S1)

S2

A spot price of the underlying security 2 (usually S2)

D1

A percent yield per annum from the underlying security 1

D2

A percent yield per annum from the underlying security 2

sigma1

a vector of implied volatilities for the associated security 1

sigma2

a vector of implied volatilities for the associated security 2

rho

is the correlation between asset 1 and asset 2

Type

Rainbow option type: 'Max' or 'Min'.

Details

Two types of Rainbow options are priced: 'Max' and 'Min'.

Value

A list of class RainbowBS consisting of the original OptPx object and the option pricing parameters S1, Type, isMax, and isMin as well as the computed price PxBS.

Author(s)

Chengwei Ge,Department of Statistics, Rice University, Spring 2015

References

Zhang Peter G., Exotic Options, 2nd ed, 1998.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
(o = RainbowBS())$PxBS

  o = OptPx(Opt(Style = 'Rainbow',  Right = "Put"), r = 0.08)
  RainbowBS(o, S1=100, S2=95, D1=0,D2=0,sigma1=0.15,sigma2=0.2, rho=0.75,Type='Min')

  o = OptPx(Opt(Style = 'Rainbow', K = 102, ttm = 1, Right = "Put"), r = 0.08)
  RainbowBS(o, S1=100, S2=95, D1=0,D2=0,sigma1=0.15,sigma2=0.2, rho=0.75,Type='Min')

  o=OptPx(Opt(Style = 'Rainbow', K = 102, ttm = 1, Right = "Put"), r = 0.08)
  RainbowBS(o, S1=100, S2=95, D1=0,D2=0,sigma1=0.15,sigma2=0.2, rho=0.75,Type='Max')

  o=OptPx(Opt(Style = 'Rainbow', K = 102, ttm = 1, Right = "Call"), r = 0.08)
  RainbowBS(o, S1=100, S2=95, D1=0,D2=0,sigma1=0.15,sigma2=0.2, rho=0.75,Type='Min')

  o=OptPx(Opt(Style = 'Rainbow', K = 102, ttm = 1, Right = "Call"), r = 0.08)
  RainbowBS(o, S1=100, S2=95, D1=0,D2=0,sigma1=0.15,sigma2=0.2, rho=0.75,Type='Max')

Example output

[1] 62.2371
$S0
[1] 50

$ttm
[1] 2

$K
[1] 52

$Style
$Style$Name
[1] "Rainbow"

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

$Style$MOPM
[1] FALSE

$Style$Perpetual
[1] FALSE

$Style$Quotient
[1] FALSE

$Style$Rainbow
[1] TRUE

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

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

$p
[1] 0.5497783

$SYld
[1] 0.08

$DF_ttm
[1] 0.8521438

$DF_dt
[1] 0.9480639

$PxBS
[1] 3.295033

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

$ttm
[1] 1

$K
[1] 102

$Style
$Style$Name
[1] "Rainbow"

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

$Style$MOPM
[1] FALSE

$Style$Perpetual
[1] FALSE

$Style$Quotient
[1] FALSE

$Style$Rainbow
[1] TRUE

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

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.3

$NSteps
[1] 3

$u
[1] 1.18911

$d
[1] 0.8409651

$dt
[1] 0.3333333

$a
[1] 1.027025

$p
[1] 0.5344336

$SYld
[1] 0.08

$DF_ttm
[1] 0.9231163

$DF_dt
[1] 0.9736857

$PxBS
[1] 10.45916

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

$ttm
[1] 1

$K
[1] 102

$Style
$Style$Name
[1] "Rainbow"

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

$Style$MOPM
[1] FALSE

$Style$Perpetual
[1] FALSE

$Style$Quotient
[1] FALSE

$Style$Rainbow
[1] TRUE

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

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.3

$NSteps
[1] 3

$u
[1] 1.18911

$d
[1] 0.8409651

$dt
[1] 0.3333333

$a
[1] 1.027025

$p
[1] 0.5344336

$SYld
[1] 0.08

$DF_ttm
[1] 0.9231163

$DF_dt
[1] 0.9736857

$PxBS
[1] 6.791502

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

$ttm
[1] 1

$K
[1] 102

$Style
$Style$Name
[1] "Rainbow"

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

$Style$MOPM
[1] FALSE

$Style$Perpetual
[1] FALSE

$Style$Quotient
[1] FALSE

$Style$Rainbow
[1] TRUE

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

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.3

$NSteps
[1] 3

$u
[1] 1.18911

$d
[1] 0.8409651

$dt
[1] 0.3333333

$a
[1] 1.027025

$p
[1] 0.5344336

$SYld
[1] 0.08

$DF_ttm
[1] 0.9231163

$DF_dt
[1] 0.9736857

$PxBS
[1] 8.278386

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

$ttm
[1] 1

$K
[1] 102

$Style
$Style$Name
[1] "Rainbow"

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

$Style$MOPM
[1] FALSE

$Style$Perpetual
[1] FALSE

$Style$Quotient
[1] FALSE

$Style$Rainbow
[1] TRUE

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

$q
[1] 0

$rf
[1] 0

$vol
[1] 0.3

$NSteps
[1] 3

$u
[1] 1.18911

$d
[1] 0.8409651

$dt
[1] 0.3333333

$a
[1] 1.027025

$p
[1] 0.5344336

$SYld
[1] 0.08

$DF_ttm
[1] 0.9231163

$DF_dt
[1] 0.9736857

$PxBS
[1] 15.65654

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

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