spike_2020
Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-09-22, from what-is-vxx-etn.
| week | week_label | gain_pct | peak_gain_pct |
|---|---|---|---|
| 2020-02-10 | Feb 10, 2020 | 0 | 0 |
| 2020-02-17 | Feb 17, 2020 | 10.2 | 10.2 |
| 2020-02-24 | Feb 24, 2020 | 68.7 | 68.7 |
| 2020-03-02 | Mar 2, 2020 | 120.6 | 120.6 |
| 2020-03-09 | Mar 9, 2020 | 219.5 | 250.3 |
| 2020-03-16 | Mar 16, 2020 | 347.9 | 410.4 |
| 2020-03-23 | Mar 23, 2020 | 274.3 | 410.4 |
| 2020-03-30 | Mar 30, 2020 | 236.2 | 410.4 |
| 2020-04-06 | Apr 6, 2020 | 207.5 | 410.4 |
| 2020-04-13 | Apr 13, 2020 | 188.8 | 410.4 |
| 2020-04-20 | Apr 20, 2020 | 207.1 | 410.4 |
| 2020-04-27 | Apr 27, 2020 | 204.7 | 410.4 |
| 2020-05-04 | May 4, 2020 | 158.5 | 410.4 |
| 2020-05-11 | May 11, 2020 | 170.7 | 410.4 |
| 2020-05-18 | May 18, 2020 | 154.1 | 410.4 |
| 2020-05-25 | May 25, 2020 | 145 | 410.4 |
| 2020-06-01 | Jun 1, 2020 | 115.8 | 410.4 |
| 2020-06-08 | Jun 8, 2020 | 186.3 | 410.4 |
| 2020-06-15 | Jun 15, 2020 | 172.9 | 410.4 |
| 2020-06-22 | Jun 22, 2020 | 177.4 | 410.4 |
| 2020-06-29 | Jun 29, 2020 | 139.1 | 410.4 |
| 2020-07-06 | Jul 6, 2020 | 137.8 | 410.4 |
| 2020-07-13 | Jul 13, 2020 | 126.5 | 410.4 |
| 2020-07-20 | Jul 20, 2020 | 123.2 | 410.4 |
| 2020-07-27 | Jul 27, 2020 | 110.9 | 410.4 |
| 2020-08-03 | Aug 3, 2020 | 96.2 | 410.4 |
| 2020-08-10 | Aug 10, 2020 | 88.2 | 410.4 |
| 2020-08-17 | Aug 17, 2020 | 82.2 | 410.4 |
| 2020-08-24 | Aug 24, 2020 | 89.2 | 410.4 |
| 2020-08-31 | Aug 31, 2020 | 113.9 | 410.4 |
| 2020-09-07 | Sep 7, 2020 | 88.8 | 410.4 |
| 2020-09-14 | Sep 14, 2020 | 80.3 | 410.4 |
| 2020-09-21 | Sep 21, 2020 | 88.9 | 410.4 |
| 2020-09-28 | Sep 28, 2020 | 90.7 | 410.4 |
| 2020-10-05 | Oct 5, 2020 | 64.9 | 410.4 |
| 2020-10-12 | Oct 12, 2020 | 64.7 | 410.4 |
| 2020-10-19 | Oct 19, 2020 | 64 | 410.4 |
| 2020-10-26 | Oct 26, 2020 | 96.2 | 410.4 |
| 2020-11-02 | Nov 2, 2020 | 51.8 | 410.4 |
| 2020-11-09 | Nov 9, 2020 | 41.1 | 410.4 |
| 2020-11-16 | Nov 16, 2020 | 37.6 | 410.4 |
| 2020-11-23 | Nov 23, 2020 | 29.5 | 410.4 |
| 2020-11-30 | Nov 30, 2020 | 26.6 | 410.4 |
| 2020-12-07 | Dec 7, 2020 | 33.1 | 410.4 |
| 2020-12-14 | Dec 14, 2020 | 26.3 | 410.4 |
| 2020-12-21 | Dec 21, 2020 | 24.9 | 410.4 |
| 2020-12-28 | Dec 28, 2020 | 24.2 | 410.4 |
| 2021-01-04 | Jan 4, 2021 | 20.9 | 410.4 |
| 2021-01-11 | Jan 11, 2021 | 26.6 | 410.4 |
| 2021-01-18 | Jan 18, 2021 | 21.3 | 410.4 |
| 2021-01-25 | Jan 25, 2021 | 55.9 | 410.4 |
| 2021-02-01 | Feb 1, 2021 | 21.8 | 410.4 |
| 2021-02-08 | Feb 8, 2021 | 16.4 | 410.4 |
| 2021-02-15 | Feb 15, 2021 | 11.7 | 410.4 |
| 2021-02-22 | Feb 22, 2021 | 18.6 | 410.4 |
- Rows × columns
- 55 × 4
- Period covered
- to
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
week |
date | 2020-02-10 to 2021-02-22 | |
week_label |
text | 55 distinct values (Apr 13, 2020, Apr 20, 2020, Apr 27, 2020…) | |
gain_pct |
number | 0 to 347.9 | percent |
peak_gain_pct |
number | 0 to 410.4 | percent |
Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
WITH splits AS
(
SELECT
groupArray(execution_date) AS split_dates,
groupArray(price_factor) AS price_factors
FROM
(
SELECT
execution_date,
toFloat64(any(split_from)) / toFloat64(any(split_to)) AS price_factor
FROM global_markets.stocks_splits
WHERE ticker = 'VXX'
GROUP BY execution_date
)
),
daily AS
(
SELECT
a.date AS date,
toFloat64(a.close) * arrayProduct(arrayMap((d, f) -> if(d > a.date, f, 1.0), s.split_dates, s.price_factors)) AS adj_close
FROM global_markets.stocks_daily_aggs AS a
CROSS JOIN splits AS s
WHERE a.ticker = 'VXX'
AND a.date >= toDate('2020-02-14')
AND a.date < toDate('2021-03-01')
),
weekly AS
(
SELECT
toMonday(date) AS week_start,
argMax(adj_close, date) AS week_close,
max(adj_close) AS week_high
FROM daily
GROUP BY week_start
)
SELECT
toString(week_start) AS week,
formatDateTime(week_start, '%b %e, %Y') AS week_label,
round(100 * (week_close / first_value(week_close) OVER (ORDER BY week_start) - 1), 1) AS gain_pct,
round(100 * (max(week_high) OVER (ORDER BY week_start) / first_value(week_close) OVER (ORDER BY week_start) - 1), 1) AS peak_gain_pct
FROM weekly
ORDER BY week_start