Volatility Cone

Volatility cones are a tool that may be useful in your attempt to do something about predicting the future volatility of an asset. "Historical" volatility is a backward-looking statistical parameter. You simply define a previous period of time and study the fluctuations in price of the asset under consideration. When we enter the options arena, we want to be able to compare current levels of implied volatility with recent historical volatility in an effort to assess the relative value of the option under consideration. Volatility cones are an effective tool to help us with this assessment.

A volatility cone is an analytical tool designed to help determine if the current levels of historical or implied volatilities for a given underlying or its options are likely to persist in the future. As such, volatility cones are intended to help the user assess the likely volatility that an underlying will go on to display over a certain period of future time. Those who employ volatility cones are applying the principle of "reversion to the mean." Unusually high levels of volatility are expected to return (revert) to their average (mean) levels, and low volatility readings are expected to rise to more "normal values.

The following table and chart show a real example using some close prices. The cone can then be compared with the implied volatility of real options. The example on this page is calculated in real time.

Closes
43.44
44.5
45
44.31
42.94
43.06
42.31
42.19
41.63
41
41.63
42.31
41.88
41.63
40.63
41.25
41.81
41.88
41.31
41.25
41.81
42.06
42.44
43.25
42.88
44.44
45.31
45.94
45.06
45.63
45.31
45.56
46.88
46.25
46.44
46
46.44
46.44
45.63
45.25
45.63
45.88
45.81
45.94
45
44.81
46
46.75
44.63
44.75
41.63
40
43.13
41
41.25
42.94
43.06
44.31
43.63
42.38
42.25
40.88
40.13
38.38
37.44
39.75
40.44
39.88
41.31
42.38
40.06
39.19
38.31
39.38
39.38
40.69
39.63
37.13
39.25
38.75
39.38
38.38
36.69
35.88
35.94
34.81
36
37.44
37
34.25
35
34.25
36.63
37.31
38.06
39.5
37.5
37.94
36.25
34.5
34.75
36.13
37.94
38.75
39.06
38.81
39.25
38.38
37.69
38.69
39.44
39.69
40
39.75
40
39.38
40.56
41.31
41.44
41.06
41
41.5
41.63
42.63
43.25
44.38
43.75
43.56
44.06
44.5
45
46.19
46.19
45.5
46.06
45.06
44.44
44.13
44.75
45.44
45.38
45.44
45.38
46.31
47.25
47.19
46.75
47.94
47.5
47.25
47.56
47.63
46.69
47.13
47
47.5
47.69
49
51.31
53
51.94
51.56
52.31
52.94
53.44
52.63
52.94
53.31
54.13
52.63
50.94
50
49.44
51.19
49.75
51
50.81
51
52.56
52.38
51.75
53.06
53
52.56
52.75
52.81
51.44
52.25
53
54.44
56.38
56.63
55
55
55.88
55
54.75
54.75
56.75
59.63
59.63
57.88
55.88
55.38
52.75
52.5
55
52.75
52.38
55
54.88
57.13
57
57.88
58.25
58.25
59.5
60.38
60.75
61.88
63
62.25
61.88
63
63.13
64.5
63.25
64.63
65.38
65.88
62.75
64.13
64.63
56.13
53.25
55.75
56.88
55.75
55.63
55.25
53.63
53.5
54
51.63
49.38
49.25
47.38
50.63
49.13
53.25
52.25
51.38
49.38
50.75
51.5
50
47.25
46.25
47.13
45.13
46.13
44.13
45
46.13
47.63
46.38
44.63
44.63
45.25
42.5
39.63
36
36.63
37.75
37.5
39.38
38.75
38.25
39.63
40.13
37
35.5
34.25
32.13
33.75
33.38
30.5
33
40
39
39.5
41.75
44.38
42.25
43
40.38
40
42
42.88
46
43.5
42.13
44
45.88
45.5
47.25
45.5
45.25
44.63
44.88
46.38
46.13
46.88
48.63
49.25
51.25
52
51.5
52.75
53
54.63
56.63
58
56.5
55.13
54.38
53.25
55.75
57.75
56.38
59.38
49.75
46.38
45.63
46
46.63
47.5
43.63
44.75
46.38
48.88
48.88
48.25
48.25
50.38
52.5
54
52.88
51.63
50.63
47.25
47.88
47.75
49.5
49.38
47.38
47.5
46.13
46
46.63
48.13
52.5
52.75
55.75
54.38
55
55.88
54.5
53.88
52.5
50.25
50.88
51.88
52
52.25
51.5
51.5
53
55.75
55.63
55.63
54.25
54.25
52.63
53.75
52.75
52.75
53.13
51.25
51.25
49.38
51.25
51.88
51.13
51.13
49.38
47.13
48.63
46.5
47.5
43.88
47
49
49.5
49.25
50
50.63
52.75
53.38
53.25
53.5
52.38
53.75
54.38
52
52.5
53.13
51.5
53
51.88
53
55.25
57.25
57
56.75
55.38
57.75
58.13
56.63
57.25
56.13
56.13
56.5
57.88
57.38
56.63
57.25
59.5
60.13
59.25
58.63
58.25
57.63
57.38
58
57.88
58.88
61.13
61.75
64.38
63.88
65.13
65
66.25
66.88
65.63
66.5
68.75
70.75
69.38
68.38
69
69.25
70.13
68.13
68.5
70.38
71.88
71.25
65.5
63.5
63.63
64.5
63.25
61.63
62.75
61.25
62.38
61.75
60.5
58.88
64.13
66.88
66.25
66.25
65.38
66.88
65.75
64.63
63.75
62
63.13
64.13
61.5
62.38
64
64.25
64.63
65.13
65.75
65
67.63
69.38
69.63
69.13
69.88
70.38
67.75
66.5
67.5
66.13
67.63
68
68
66.63
65.5
65.75
64.13
64.5
63
61.88
63.13
64.75
65.5
64.63
65.5
64.63
66.5
66.13
64.13
63.5
64
65.13
65.13
66
66.25
68.63
69.25
68.63
67.5
67.75
65.63
64.5
66.13
66.5
67.25
77.38
77.63
79.75
81.88
82.38
85.5
85.88
86
84.75
88.63
88.13
91.5
90
92.5
95
93
94.63
96.25
97.5
104.5
101.88
100
99.63
99
102.5
105.5
106.38
103.13
107.38
110.75
117.25
124.13
122.38
137.25
127.5
123.5
126.25
130.5
124.25
123.25
124.13
123.38
124
126.25
128.25
127.5
128.5
133
136.75
138.75
138.25
128.75
128
130
130.5
131.25
133.25
138.25
145
137.5
140.25
142.25
141.5
146.25
144.5
147.25
144.25
157.25
155.5
165.5
177.75
180
181.75
187.75
186.25
189
192
198
189.5
180.5
185.75
186.25
195
195.5
192
193.75
197.25
207.25
210
209.75
214.5
223
228.5
228.75
228.5
217.5
214.5
215.75
212
212.5
199.75
192.25
201.25
212.75
208
211.25
212.25
216.5
215.5
206.25
204
193.5
189.75
184.25
175.75
173
188.75
196
197
185.5
178.25
170.5
164.75
170.25
176
184.75
176.75
175
182.5
192
199.25
206.25
196
199
200
190
188
177
175
180.5
175
191
190.5
193
178.5
166.5
176
164
173.5
166.5
170
181.5
182.5
198.5
193
197
195.5
198.5
198.5
191.5
192.5
186
184.5
179
194.5
190
182.5
178.5
174
180.5
166.5
174.5
183.5
185
179.5
181
193
192
187
192
199.5
203
209.5
201
195.5
205
182.5
184.5
180.5
182
172
172
179
178
173
161.5
162
168.5
173
177
174.5
172
176.5
174.5
180
183
The Volatility Cone chart showing Maximum series, Minimum series, Average series, Last Observed series.
C# Code Sample
// The number of days for which we wish to create the cone for
int[] wNumValues = new int[9] { 10, 20, 30, 45, 60, 75, 90, 105, 120 };

// create a datatable to simplify display
System.Data.DataTable oDT = new System.Data.DataTable("tblVolCone");
oDT.Columns.Add("NumDays", typeof(double));
oDT.Columns.Add("VolMax", typeof(double));
oDT.Columns.Add("VolMin", typeof(double));
oDT.Columns.Add("VolAve", typeof(double));
oDT.Columns.Add("VolLast", typeof(double));

// calculates the cone values for each period
for (int i = 0; i < wNumValues.Length; i++)
{
    List<double> wVolValues;

    // The volatility cone is returned as a statistical object from which we can easily get the Min, Max, Average, Median values
    QuantExpress.Maths.Statistics.DescriptiveStatistics oStat =
        QuantExpress.Finance.DerivPricing.Historical.HistoricalVolatility.VolatilityCone(m_PriceForCone,
            wNumValues[i], null, out wVolValues);

    // insert the volatility cone data into the datatable for display
    System.Data.DataRow oDRow = oDT.NewRow();
    oDRow["NumDays"] = wNumValues[i];
    oDRow["VolMax"] = oStat.Max * 100.0;
    oDRow["VolMin"] = oStat.Min * 100.0;
    oDRow["VolAve"] = oStat.Average() * 100.0;
    oDRow["VolLast"] = wVolValues[wVolValues.Count - 1] * 100.0;
    oDT.Rows.Add(oDRow);
}