decay_trace
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.
| session_date | day_label | index_rebased | soxl_rebased | soxs_rebased | pair_rebased |
|---|---|---|---|---|---|
| 2025-04-01 | 2025年4月1日 | 100.1 | 100 | 99.9 | 199.9 |
| 2025-04-02 | 2025年4月2日 | 100.7 | 101.9 | 97.8 | 199.8 |
| 2025-04-03 | 2025年4月3日 | 90.5 | 71.5 | 127 | 198.5 |
| 2025-04-04 | 2025年4月4日 | 83.8 | 54.7 | 157 | 211.8 |
| 2025-04-07 | 2025年4月7日 | 85.7 | 57.4 | 146.1 | 203.5 |
| 2025-04-08 | 2025年4月8日 | 82.3 | 51.7 | 162.2 | 213.9 |
| 2025-04-09 | 2025年4月9日 | 97.6 | 80.1 | 71.4 | 151.5 |
| 2025-04-10 | 2025年4月10日 | 89.6 | 60.4 | 87.8 | 148.2 |
| 2025-04-11 | 2025年4月11日 | 91.5 | 64.1 | 82.3 | 146.4 |
| 2025-04-14 | 2025年4月14日 | 92.2 | 65.6 | 80.8 | 146.5 |
| 2025-04-15 | 2025年4月15日 | 92.5 | 66.5 | 79.6 | 146.1 |
| 2025-04-16 | 2025年4月16日 | 89 | 58.6 | 89 | 147.6 |
| 2025-04-17 | 2025年4月17日 | 88.5 | 57.7 | 90.7 | 148.3 |
| 2025-04-21 | 2025年4月21日 | 87 | 54.6 | 95.4 | 150 |
| 2025-04-22 | 2025年4月22日 | 88.7 | 57.6 | 90 | 147.6 |
| 2025-04-23 | 2025年4月23日 | 92 | 64.5 | 79.7 | 144.2 |
| 2025-04-24 | 2025年4月24日 | 97.3 | 75.2 | 65.8 | 141.1 |
| 2025-04-25 | 2025年4月25日 | 98.2 | 77.4 | 64.1 | 141.5 |
| 2025-04-28 | 2025年4月28日 | 98 | 77.1 | 64.6 | 141.6 |
| 2025-04-29 | 2025年4月29日 | 97 | 74.4 | 66.6 | 141 |
| 2025-04-30 | 2025年4月30日 | 97.7 | 76.2 | 65.1 | 141.3 |
- Rows × columns
- 21 × 6
- 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 |
|---|---|---|---|
session_date |
date | 2025-04-01 to 2025-04-30 | |
day_label |
text | 21 distinct values (2025年4月10日, 2025年4月11日, 2025年4月14日…) | |
index_rebased |
number | 82.3 to 100.7 | |
soxl_rebased |
number | 51.7 to 101.9 | |
soxs_rebased |
number | 64.1 to 162.2 | |
pair_rebased |
number | 141 to 213.9 |
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
),
picked AS
(
SELECT argMin(m, soxl + soxs) AS pm
FROM monthly
WHERE abs(soxx) < 0.025
),
by_day AS
(
SELECT
date,
anyIf(r, ticker = 'SOXX') AS r_index,
anyIf(r, ticker = 'SOXL') AS r_soxl,
anyIf(r, ticker = 'SOXS') AS r_soxs
FROM rets
WHERE toStartOfMonth(date) IN (SELECT pm FROM picked)
GROUP BY date
)
SELECT
toString(date) AS session_date,
concat(toString(toYear(date)), '年', toString(toMonth(date)), '月', toString(toDayOfMonth(date)), '日') AS day_label,
round(100 * exp(sum(log(1 + r_index)) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)), 1) AS index_rebased,
round(100 * exp(sum(log(1 + r_soxl)) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)), 1) AS soxl_rebased,
round(100 * exp(sum(log(1 + r_soxs)) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)), 1) AS soxs_rebased,
round(100 * exp(sum(log(1 + r_soxl)) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW))
+ 100 * exp(sum(log(1 + r_soxs)) OVER (ORDER BY date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)), 1) AS pair_rebased
FROM by_day
ORDER BY date
このデータをAIアシスタントで使う
このページのデータで、すぐにクエリできる状態で開きます。無料、アカウント不要。