STRASMORE/EXPLORE 2,173 QUERIES 22Y EQUITIES · 12Y OPTIONS

2,173 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

Bootstrapping Backtest Confidence Bands
Variance ratio by block length: does SPY variance scale like independent draws?ranking · 2026-08-14 · 7×3Preview: 7 ranked values, largest first. One position, one year at a time: SPY annualized Sharpe by calendar yeartable · 2026-08-14 · 14×5 Measured Sharpe dispersion across non-overlapping SPY windows, 2006 to 2025table · 2026-08-14 · 5×6 Lag-one autocorrelation: signed returns against absolute returns, 2016 to 2025ranking · 2026-08-14 · 6×4Preview: 6 ranked values, largest first.
Pairs Trading and Cointegration Explained
Weekly z score of the KO/PEP spread, hedge ratio fitted on 2023 onlyseries · 2026-08-13 · 105×2Preview: a 16-point series, ending higher. Where the KO/PEP spread sat twenty sessions later, by starting z score (2019-2025)ranking · 2026-08-13 · 6×4Preview: 6 ranked values, smallest first. Daily-return correlation vs price-level correlation, five familiar pairs (2024-2025)ranking · 2026-08-13 · 5×3Preview: 5 ranked values, largest first. Hedge ratio refitted each calendar year, two sector pairsranking · 2026-08-13 · 7×3Preview: 7 ranked values, smallest first.
Variance ratio by block length: does SPY variance scale like independent draws?

Variance ratio by block length: does SPY variance scale like independent draws?

most recentas of ranking 7×3read in context →
Variance ratio by block length: does SPY variance scale like independent draws? — 7 rows by 3 columns, computed from US exchange, SIP and OPRA data.
block_lengthblock_countvariance_ratio
2 sessions25150.844
3 sessions16760.918
5 sessions10050.809
10 sessions5020.848
21 sessions2380.646
42 sessions1180.632
63 sessions780.584
the exact SQL behind every number
WITH daily AS
(
    SELECT
        date,
        toFloat64(close) / nullIf(lagInFrame(toFloat64(close), 1)
            OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW), 0) - 1 AS ret
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2005-12-01'
      AND date <  '2026-01-01'
),
indexed AS
(
    SELECT
        ret,
        row_number() OVER (ORDER BY date) AS i
    FROM daily
    WHERE date >= '2006-01-01'
      AND ret IS NOT NULL
),
base AS
(
    SELECT varSamp(ret) AS var_1d FROM indexed
),
blocks AS
(
    SELECT
        k,
        intDiv(i, k)  AS blk,
        count()       AS n,
        sum(ret)      AS block_ret
    FROM indexed
    CROSS JOIN (SELECT arrayJoin([2, 3, 5, 10, 21, 42, 63]) AS k) AS ks
    GROUP BY k, blk
    HAVING n = k
)
SELECT
    concat(toString(k), ' sessions')                          AS block_length,
    count()                                                   AS block_count,
    round(varSamp(block_ret) / (k * any(var_1d)), 3)          AS variance_ratio
FROM blocks
CROSS JOIN base
GROUP BY k
ORDER BY k
$