family_april
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-20, from how-inverse-etfs-work.
| ticker | daily_target | month_ret_pct | naive_pct | gap_pp |
|---|---|---|---|---|
| SPY | +1x(指数連動) | -1.1 | -1.1 | 0 |
| SH | -1x | -0.1 | 1.1 | -1.2 |
| SDS | -2x | -2.5 | 2.3 | -4.8 |
| SPXU | -3x | -7.2 | 3.4 | -10.6 |
- Rows × columns
- 4 × 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 |
|---|---|---|---|
ticker |
text | 4 distinct values (SDS, SH, SPXU…) | |
daily_target |
text | 4 distinct values (+1x(指数連動), -1x, -2x…) | |
month_ret_pct |
number | -7.2 to -0.1 | percent |
naive_pct |
number | -1.1 to 3.4 | percent |
gap_pp |
number | -10.6 to 0 |
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
(
SELECT toFloat64(argMax(close, date)) / toFloat64(argMin(close, date))
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
AND date >= '2025-04-01'
AND date < '2025-05-01'
) AS spy_factor
SELECT
ticker,
multiIf(ticker = 'SH', '-1x',
ticker = 'SDS', '-2x',
ticker = 'SPXU', '-3x',
'+1x(指数連動)') AS daily_target,
round((toFloat64(argMax(close, date)) / toFloat64(argMin(close, date)) - 1) * 100, 1) AS month_ret_pct,
round(multiIf(ticker = 'SH', -1, ticker = 'SDS', -2, ticker = 'SPXU', -3, 1)
* (spy_factor - 1) * 100, 1) AS naive_pct,
round(month_ret_pct - naive_pct, 1) AS gap_pp
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('SPY', 'SH', 'SDS', 'SPXU')
AND date >= '2025-04-01'
AND date < '2025-05-01'
GROUP BY ticker
ORDER BY multiIf(ticker = 'SPY', 0, ticker = 'SH', 1, ticker = 'SDS', 2, 3)