vix_pt: Computes point estimates of model-based volatility indexes

Description Usage Arguments Value Author(s) References See Also Examples

Description

This function implements the point estimation of the four model-based volatility indexes described in Grover and Thomas (2012). They are: Vega weighted VIX (VVIX), Spread Weighted VIX (SVIX), Traded Volume Weighted VIX (TVVIX), and Elasticity weighted VIX (EVVIX).

Usage

1
 vix_pt(iv_near, iv_next)

Arguments

iv_near

A list of objects returned by ‘weighted_iv’ for the near month maturity.

iv_next

A list of objects returned by ‘weighted_iv’ for the next month maturity.

Value

vix

Returns a numeric value/vector of the volatility index/indexes computed.

Author(s)

Akhil S. Behl akhilsbehl@gmail.com;
Rohini Grover grover.rohini@gmail.com

References

Grover, R. and Thomas, S. (2012). “Liquidity Considerations in Estimating Implied Volatility”, Journal of Futures Market, 32, 714 - 741.

See Also

prep_maturity, weighted_iv, vix_ci, prep_vxo, vxo

Examples

 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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
  # Example 1: Compute Vega VIX using SPX options

  data(vix_spx)

  # Preparing data for near and next month spx options without filtering
  # options with zero traded volume.
  spx_near <- prep_maturity(maturity=vix_spx$opt_near$maturity[[1]],
                            riskfree=vix_spx$opt_near$riskfree[[1]],
                            carry=vix_spx$opt_near$riskfree[[1]],
                            type=vix_spx$opt_near$type,
                            strike=vix_spx$opt_near$strike,
                            underlying=vix_spx$opt_near$underlying,
                            schemes="vega",
                            bid=vix_spx$opt_near$bid,
                            ask=vix_spx$opt_near$ask,
                            tv_filter=FALSE)

  spx_next <- prep_maturity(maturity=vix_spx$opt_next$maturity[[1]],
                            riskfree=vix_spx$opt_next$riskfree[[1]],
                            carry=vix_spx$opt_next$riskfree[[1]],
                            type=vix_spx$opt_next$type,
                            strike=vix_spx$opt_next$strike,
                            underlying=vix_spx$opt_next$underlying,
                            schemes="vega",
                            bid=vix_spx$opt_next$bid,
                            ask=vix_spx$opt_next$ask,
                            tv_filter=FALSE)

  # Weighted average implied volatility for near and next maturity                           
  spx_near_iv <- weighted_iv(prepped=spx_near)
  spx_next_iv <- weighted_iv(prepped=spx_next)
  
  # Point estimate of Vega VIX
  spx_vvix <- vix_pt(iv_near=spx_near_iv, 
                      iv_next=spx_next_iv)
  spx_vvix

  # Example 2: Compute Spread, Elasticity, and Vega VIX using NIFTY options 
  
  data(vix_nifty)

  # Preparing data for near and next month nifty options and filtering options
  # with zero traded volume.
  nifty_near <- prep_maturity(maturity=vix_nifty$opt_near$maturity[[1]],
                              riskfree=vix_nifty$opt_near$riskfree[[1]],
                              carry=vix_nifty$opt_near$riskfree[[1]],
                              type=vix_nifty$opt_near$type,
                              strike=vix_nifty$opt_near$strike,
                              underlying=vix_nifty$opt_near$underlying,
                              schemes=c("spread", "elasticity", "vega"),
                              bid=vix_nifty$opt_near$bid,
                              ask=vix_nifty$opt_near$ask,
                              traded_vol=vix_nifty$opt_near$traded_vol,
                              tv_filter=TRUE)

  nifty_next <- prep_maturity(maturity=vix_nifty$opt_next$maturity[[1]],
                              riskfree=vix_nifty$opt_next$riskfree[[1]],
                              carry=vix_nifty$opt_next$riskfree[[1]],
                              type=vix_nifty$opt_next$type,
                              strike=vix_nifty$opt_next$strike,
                              underlying=vix_nifty$opt_next$underlying,
                              schemes=c("spread", "elasticity", "vega"),
                              bid=vix_nifty$opt_next$bid,
                              ask=vix_nifty$opt_next$ask,
                              traded_vol=vix_nifty$opt_next$traded_vol,
                              tv_filter=TRUE)

  # Weighted average implied volatilities
  nifty_near_iv <- weighted_iv(prepped=nifty_near)
  nifty_next_iv <- weighted_iv(prepped=nifty_next)
 
  # Point estimates of VIXs
  nifty_vixes <- vix_pt(iv_near=nifty_near_iv, 
                        iv_next=nifty_next_iv)
  nifty_vixes

igidrfrg/ifrogs documentation built on July 20, 2020, 2:02 p.m.