Computing Equity Instrument Sensitivities
Sensitivities can be reported either as dollar price changes or percentage price changes. The delta, gamma, and vega sensitivities that the toolbox computes are dollar sensitivities.
The functions crrsens
, eqpsens
, ittsens
,
and sttsens
compute the delta,
gamma, and vega sensitivities of instruments using a stock tree. They
also optionally return the calculated price for each instrument. The
sensitivity functions require the same two input arguments used by
the pricing functions (CRRTree
and CRRInstSet
for
CRR, EQPTree
and EQPInstSet
for
EQP, ITTTree
and ITTInstSet
for
ITT, and STTTree
and STTInstSet
for
STT).
As with the instrument pricing functions, the optional input argument
Options
is also allowed. You would include this argument if you
want a sensitivity function to generate a price for a barrier option as one of its
outputs and want to control the method that the toolbox uses to perform the pricing
operation. See Pricing Options Structure or the
derivset
function for more
information.
For path-dependent options (lookback and Asian), delta and gamma
are computed by finite differences in calls to crrprice
, eqpprice
, ittprice
, and sttprice
.
For the other options (stock option, barrier, and compound), delta
and gamma are computed from the CRR, EQP, ITT, and STT trees and the
corresponding option price tree. (See Chriss, Neil, Black-Scholes
and Beyond, pp. 308–312.)
CRR Sensitivities Example
The calling syntax for the sensitivity function is:
[Delta, Gamma, Vega, Price] = crrsens(CRRTree, InstSet,
Options)
Using the example data in deriv.mat
, calculate
the sensitivity of the instruments.
load deriv.mat
[Delta, Gamma, Vega, Price] = crrsens(CRRTree, CRRInstSet);
You can conveniently examine the sensitivities and the prices by arranging them into a single matrix.
format bank
All = [Delta, Gamma, Vega, Price]
All = 0.59 0.04 53.45 8.29 -0.31 0.03 67.00 2.50 0.69 0.03 67.00 12.13 -0.12 -0.01 -98.08 3.32 -0.40 -45926.32 88.18 7.60 -0.42 -112143.15 119.19 11.78 0.60 45926.32 49.21 4.18 0.82 112143.15 41.71 3.42
As with the prices, each row of the sensitivity vectors corresponds
to the similarly indexed instrument in CRRInstSet
.
To view the per-dollar sensitivities, divide each dollar sensitivity
by the corresponding instrument price.
All = [Delta ./ Price, Gamma ./ Price, Vega ./ Price, Price]
All = 0.07 0.00 6.45 8.29 -0.12 0.01 26.78 2.50 0.06 0.00 5.53 12.13 -0.04 -0.00 -29.51 3.32 -0.05 -6041.77 11.60 7.60 -0.04 -9522.02 10.12 11.78 0.14 10987.98 11.77 4.18 0.24 32771.92 12.19 3.42
ITT Sensitivities Example
The calling syntax for the sensitivity function is:
[Delta, Gamma, Vega, Price] = ittsens(ITTTree, ITTInstSet,
Options)
Using the example data in deriv.mat
, calculate
the sensitivity of the instruments.
load deriv.mat
warning('off', 'fininst:itttree:Extrapolation'); [Delta, Gamma, Vega, Price] = ittsens(ITTTree, ITTInstSet);
You can conveniently examine the sensitivities and the prices by arranging them into a single matrix.
format bank
All = [Delta, Gamma, Vega, Price]
All = 0.24 0.03 19.35 1.65 -0.43 0.02 49.69 10.68 0.35 0.04 12.29 2.41 -0.07 0.00 6.73 3.23 0.63 142945.66 38.90 0.54 0.60 22703.21 68.92 6.18 0.32 -142945.66 18.48 3.21 0.67 -22703.21 17.75 6.61
As with the prices, each row of the sensitivity vectors corresponds
to the similarly indexed instrument in ITTInstSet
.
Note
In this example, the extrapolation warnings are turned off before calculating the sensitivities to avoid displaying many warnings on the Command Window as the sensitivities are calculated.
If the extrapolation warnings are turned on
warning('on', 'fininst:itttree:Extrapolation');
ittsens
is
rerun, the extrapolation warnings scroll as the command executes:[Delta, Gamma, Vega, Price] = ittsens(ITTTree, ITTInstSet)
Warning: The option set specified in StockOptSpec was too narrow for the generated tree. This made extrapolation necessary. Below is a list of the options that were outside of the range of those specified in StockOptSpec. Option Type: 'call' Maturity: 01-Jan-2007 Strike=67.2897 Option Type: 'put' Maturity: 01-Jan-2007 Strike=37.1528 Option Type: 'put' Maturity: 01-Jan-2008 Strike=27.6066 Option Type: 'put' Maturity: 31-Dec-2008 Strike=20.5132 Option Type: 'call' Maturity: 01-Jan-2010 Strike=164.0157 Option Type: 'put' Maturity: 01-Jan-2010 Strike=15.2424 > In itttree>InterpOptPrices (line 680) In itttree (line 285) In stocktreesens>stocktreevega (line 193) In stocktreesens (line 94) In ittsens (line 79) Delta = 0.24 -0.43 0.35 -0.07 0.63 0.60 0.32 0.67 Gamma = 0.03 0.02 0.04 0.00 142945.66 22703.21 -142945.66 -22703.21 Vega = 19.35 49.69 12.29 6.73 38.90 68.92 18.48 17.75 Price = 1.65 10.68 2.41 3.23 0.54 6.18 3.21 6.61
These warnings are a consequence of having to extrapolate to find the option price of the tree nodes. In this example, the set of inputs options was too narrow for the shift in the tree nodes introduced by the disturbance used to calculate the sensitivities. As a consequence extrapolation for some of the nodes was needed. Since the input data is quite close the extrapolated data, the error introduced by extrapolation is fairly low.
STT Sensitivities Example
The calling syntax for the sensitivity function is:
[Delta, Gamma, Vega, Price] = sttsens(STTTree, InstSet,
Name, Value)
Using the example data in deriv.mat
, calculate
the sensitivity of the instruments.
load deriv.mat
[Delta, Gamma, Vega, Price] = sttsens(STTTree, STTInstSet);
You can conveniently examine the sensitivities and the prices by arranging them into a single matrix.
format bank
All = [Delta, Gamma, Vega, Price]
All = 0.53 0.02 52.90 4.50 -0.09 0.00 42.44 3.06 0.47 0.03 25.98 3.80 -0.06 0.00 -9.53 1.71 0.23 -186495.25 70.38 11.73 0.33 -191186.43 92.92 12.91 0.57 186495.25 25.81 1.69 0.66 191186.43 37.88 2.62
See Also
crrtree
| eqptree
| lrtree
| stockspec
| crrtimespec
| eqptimespec
| lrtimespec
| itttree
| itttimespec
| treepath
| trintreepath
| asianbycrr
| barrierbycrr
| compoundbycrr
| crrprice
| crrsens
| lookbackbycrr
| optstockbycrr
| instasian
| instbarrier
| instcompound
| instlookback
| instoptstock
| asianbyeqp
| barrierbyeqp
| compoundbyeqp
| eqpprice
| eqpsens
| lookbackbyeqp
| optstockbyeqp
| optstockbylr
| optstocksensbylr
| asianbyitt
| barrierbyitt
| compoundbyitt
| ittprice
| ittsens
| lookbackbyitt
| optstockbyitt
| asianbystt
| barrierbystt
| compoundbystt
| sttprice
| sttsens
| lookbackbystt
| optstockbystt
Related Examples
- Understanding Equity Trees
- Pricing Equity Derivatives Using Trees
- Graphical Representation of Equity Derivative Trees
- Creating Instruments or Properties
- Graphical Representation of Equity Derivative Trees
- Pricing European Call Options Using Different Equity Models
- Pricing Asian Options