flat_months
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-16, from soxl-and-soxs-volatility-decay.
| label | index_pct | soxl_pct | soxs_pct | pair_pct |
|---|---|---|---|---|
| 2022年2月 | -1.1 | -8 | -5.3 | -13.3 |
| 2022年3月 | -0.2 | -5.4 | -10.7 | -16.1 |
| 2022年10月 | 2.4 | 0.7 | -16 | -15.4 |
| 2023年2月 | 1.5 | 0.9 | -8.8 | -8 |
| 2024年1月 | 1.7 | 2.2 | -8.1 | -5.8 |
| 2024年3月 | 0.5 | 8.6 | -15.5 | -6.9 |
| 2024年8月 | -1.8 | -12.6 | -5.7 | -18.3 |
| 2024年9月 | -0.2 | -5.4 | -8.2 | -13.7 |
| 2024年11月 | -1.3 | -6.7 | 2.5 | -4.3 |
| 2024年12月 | 0 | -2.7 | -5 | -7.7 |
| 2025年1月 | 1.2 | -1.1 | -8.3 | -9.3 |
| 2025年4月 | -2.3 | -23.8 | -34.9 | -58.7 |
| 2025年7月 | 0.6 | -0.5 | -2.2 | -2.7 |
| 2025年8月 | 2.2 | 4.2 | -7.5 | -3.3 |
| 2025年12月 | 1.5 | 1.9 | -8.7 | -6.9 |
| 2026年2月 | 1.7 | 1.6 | -9.1 | -7.6 |
| 2026年8月 | 1.2 | -1.7 | -9.7 | -11.4 |
- Rows × columns
- 17 × 5
- 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 |
|---|---|---|---|
label |
text | 17 distinct values (2022年10月, 2022年2月, 2022年3月…) | |
index_pct |
number | -2.3 to 2.4 | percent |
soxl_pct |
number | -23.8 to 8.6 | percent |
soxs_pct |
number | -34.9 to 2.5 | percent |
pair_pct |
number | -58.7 to -2.7 | 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
daily AS
(
SELECT
ticker,
date,
anyLast(toFloat64(close)) AS c
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SOXX', 'SOXL', 'SOXS')
AND date >= '2021-12-15'
AND date < '2026-09-01'
GROUP BY ticker, date
),
lagged AS
(
SELECT
ticker,
date,
c,
lagInFrame(c, 1) OVER (PARTITION BY ticker ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AS prev_c
FROM daily
),
rets AS
(
SELECT
ticker,
date,
c / prev_c - 1 AS r
FROM lagged
WHERE prev_c > 0
AND abs(c / prev_c - 1) < 0.75
AND date >= '2022-01-01'
AND (ticker, date) NOT IN
(
SELECT ticker, toDate(execution_date)
FROM global_markets.stocks_splits
WHERE ticker IN ('SOXX', 'SOXL', 'SOXS')
)
),
monthly AS
(
SELECT
toStartOfMonth(date) AS m,
exp(sumIf(log(1 + r), ticker = 'SOXX')) - 1 AS soxx,
exp(sumIf(log(1 + r), ticker = 'SOXL')) - 1 AS soxl,
exp(sumIf(log(1 + r), ticker = 'SOXS')) - 1 AS soxs
FROM rets
GROUP BY m
HAVING countIf(ticker = 'SOXX') >= 15
AND countIf(ticker = 'SOXL') >= 15
AND countIf(ticker = 'SOXS') >= 15
)
SELECT
concat(toString(toYear(m)), '年', toString(toMonth(m)), '月') AS label,
round(soxx * 100, 1) AS index_pct,
round(soxl * 100, 1) AS soxl_pct,
round(soxs * 100, 1) AS soxs_pct,
round((soxl + soxs) * 100, 1) AS pair_pct
FROM monthly
WHERE abs(soxx) < 0.025
ORDER BY m
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.