ShoutFD {QFRM} | R Documentation |
Shout option valuation via finite differences (FD) method
Description
Shout option valuation via finite differences (FD) method
Usage
ShoutFD(o = OptPx(Opt(Style = "Shout")), N = 100, M = 20, Smin = 0,
Smax = 100)
Arguments
o |
An object of class |
N |
The number of equally spaced intervals. Default is 100. |
M |
The number of equally spaced stock price. Default is 20. |
Smin |
similar to Smax |
Smax |
A stock price sufficiently high that, when it is reached, the put option has virtually no value. The level of Smax should be chosen in such a way that one of these equally spaced stock prices is the current stock price. |
Details
A shout option is a European option where the holder can 'shout' to the writer at one time during its life. At the end of the life of the option, the option holder receives either the usual payoff from a European option or the intrinsic value at the time of the shout, whichever is greater. An explicit finite difference method (Page 482 in Hull's book) is used here to price the shout put option. Similar to pricing American options, the value of the option is consolidated at each node of the grid to see if shouting would be optimal. The corresponding shout call option is priced using the Put-Call-Parity in the finite difference method .
Value
A list of class OptPx
, including
option pricing parameters N
, M
, Smin
, and Smax
,
as well as the computed option price PxFD
.
Author(s)
Xinnan Lu, Department of Statistics, Rice University, 2015
References
Hull, J.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 pp.609.
Examples
(o = ShoutFD(OptPx(Opt(Right="C", Style="Shout"))))$PxFD
o = OptPx(Opt(Right="C", Style="Shout"))
(o = ShoutFD(o, N=10))$PxFD # very differnt result for N=10
(o = ShoutFD(OptPx(Opt(Right="P", Style="Shout"))))$PxFD
o = Opt(Right='P', S0=100, K=110, ttm=0.5, Style='Shout')
o = OptPx(o, vol=0.2, r=0.05, q=0.04)
(o = ShoutFD(o,N=100,Smax=200))$PxFD
o = Opt(Right="C", S0=110, K=100, ttm=0.5, Style="Shout")
o = OptPx(o, vol=0.2, r=0.05, q=0.04)
(o = ShoutFD(o,N=100,Smax=200))$PxFD