STRASMORE/EXPLORE 2,469 QUERIES

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.

as of series 55×4read in context →
spike_2020 — 55 rows by 4 columns, computed from US exchange, SIP and OPRA data.
weekweek_labelgain_pctpeak_gain_pct
2020-02-10Feb 10, 202000
2020-02-17Feb 17, 202010.210.2
2020-02-24Feb 24, 202068.768.7
2020-03-02Mar 2, 2020120.6120.6
2020-03-09Mar 9, 2020219.5250.3
2020-03-16Mar 16, 2020347.9410.4
2020-03-23Mar 23, 2020274.3410.4
2020-03-30Mar 30, 2020236.2410.4
2020-04-06Apr 6, 2020207.5410.4
2020-04-13Apr 13, 2020188.8410.4
2020-04-20Apr 20, 2020207.1410.4
2020-04-27Apr 27, 2020204.7410.4
2020-05-04May 4, 2020158.5410.4
2020-05-11May 11, 2020170.7410.4
2020-05-18May 18, 2020154.1410.4
2020-05-25May 25, 2020145410.4
2020-06-01Jun 1, 2020115.8410.4
2020-06-08Jun 8, 2020186.3410.4
2020-06-15Jun 15, 2020172.9410.4
2020-06-22Jun 22, 2020177.4410.4
2020-06-29Jun 29, 2020139.1410.4
2020-07-06Jul 6, 2020137.8410.4
2020-07-13Jul 13, 2020126.5410.4
2020-07-20Jul 20, 2020123.2410.4
2020-07-27Jul 27, 2020110.9410.4
2020-08-03Aug 3, 202096.2410.4
2020-08-10Aug 10, 202088.2410.4
2020-08-17Aug 17, 202082.2410.4
2020-08-24Aug 24, 202089.2410.4
2020-08-31Aug 31, 2020113.9410.4
2020-09-07Sep 7, 202088.8410.4
2020-09-14Sep 14, 202080.3410.4
2020-09-21Sep 21, 202088.9410.4
2020-09-28Sep 28, 202090.7410.4
2020-10-05Oct 5, 202064.9410.4
2020-10-12Oct 12, 202064.7410.4
2020-10-19Oct 19, 202064410.4
2020-10-26Oct 26, 202096.2410.4
2020-11-02Nov 2, 202051.8410.4
2020-11-09Nov 9, 202041.1410.4
2020-11-16Nov 16, 202037.6410.4
2020-11-23Nov 23, 202029.5410.4
2020-11-30Nov 30, 202026.6410.4
2020-12-07Dec 7, 202033.1410.4
2020-12-14Dec 14, 202026.3410.4
2020-12-21Dec 21, 202024.9410.4
2020-12-28Dec 28, 202024.2410.4
2021-01-04Jan 4, 202120.9410.4
2021-01-11Jan 11, 202126.6410.4
2021-01-18Jan 18, 202121.3410.4
2021-01-25Jan 25, 202155.9410.4
2021-02-01Feb 1, 202121.8410.4
2021-02-08Feb 8, 202116.4410.4
2021-02-15Feb 15, 202111.7410.4
2021-02-22Feb 22, 202118.6410.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
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for spike_2020, derived from the stored result.
ColumnTypeRangeNotes
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
⌘/Ctrl + Enter