{"slug":"what-is-vxx-etn","qid":"vxx_yearly","label":"vxx_yearly","post_title":"what-is-vxx-etn","post_url":"/blog/lang/pcm/what-is-vxx-etn#q-vxx_yearly","columns":["year","change_pct","sessions"],"rows":[{"year":"2019","change_pct":-66.8,"sessions":188},{"year":"2020","change_pct":15.7,"sessions":253},{"year":"2021","change_pct":-93.7,"sessions":252},{"year":"2022","change_pct":-21.1,"sessions":251},{"year":"2023","change_pct":-93.1,"sessions":250},{"year":"2024","change_pct":-81.6,"sessions":252},{"year":"2025","change_pct":-43.5,"sessions":250},{"year":"2026","change_pct":-32.9,"sessions":181}],"shape":"ranking","sql":"WITH splits AS\n(\n    SELECT\n        groupArray(execution_date) AS split_dates,\n        groupArray(price_factor)   AS price_factors\n    FROM\n    (\n        SELECT\n            execution_date,\n            toFloat64(any(split_from)) / toFloat64(any(split_to)) AS price_factor\n        FROM global_markets.stocks_splits\n        WHERE ticker = 'VXX'\n        GROUP BY execution_date\n    )\n),\ndaily AS\n(\n    SELECT\n        a.date AS date,\n        toFloat64(a.close) * arrayProduct(arrayMap((d, f) -> if(d > a.date, f, 1.0), s.split_dates, s.price_factors)) AS adj_close\n    FROM global_markets.stocks_daily_aggs AS a\n    CROSS JOIN splits AS s\n    WHERE a.ticker = 'VXX'\n      AND a.date >= toDate('2019-01-01')\n)\nSELECT\n    toString(toYear(date))                                                  AS year,\n    round(100 * (argMax(adj_close, date) / argMin(adj_close, date) - 1), 1) AS change_pct,\n    count()                                                                 AS sessions\nFROM daily\nGROUP BY year\nORDER BY year","computed_at":"2026-09-22T14:58:02.402558+00:00","elapsed":0.003702399}