STRASMORE/EXPLORE 3,256 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,256 answered market questions

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

Volatility Targeting for Position Sizing
SPY realised volatility by month against a 10% targetseries · 2026-10-04 · 72×4Preview: a 16-point series, roughly flat. What the lookback window costs in daily turnover (SPY, 10% target, 2x cap)ranking · 2026-10-04 · 4×4Preview: 4 ranked values, largest first. One 10% risk budget, six names, six different weightsranking · 2026-10-04 · 6×4Preview: 6 ranked values, smallest first. Weekly realised volatility and the weight it implied, Nov 2019 to Apr 2020series · 2026-10-04 · 25×4Preview: a 16-point series, ending lower.
Survivorship Bias in Stock Data, Explained
Survivors-only average vs whole-cohort average, by starting yeartable · 2026-10-04 · 7×6 Symbols relisted under a new issuer after a long silenceranking · 2026-10-04 · 5×4Preview: 5 ranked values, smallest first. Symbols that printed a final daily bar, by yearranking · 2026-10-04 · 10×3Preview: 10 ranked values, smallest first. The January 2019 universe, grouped by what happened to each nameranking · 2026-10-04 · 9×4Preview: 9 ranked values, smallest first.
Free Stock Market Data API in Python
Trailing 20-session average volume, four household tickers, millions of sharesseries · 2026-10-04 · 4×4Preview: a 4-point series, ending lower. AAPL daily volume and its trailing 20-session average, millions of sharesseries · 2026-10-04 · 34×3Preview: a 16-point series, ending lower.
Event-Driven vs Vectorized Backtesting
Median shares per executed print, 2024ranking · 2026-10-04 · 5×2Preview: 5 ranked values, largest first. Distance from the signal close to the next session's open, 2024ranking · 2026-10-04 · 5×3Preview: 5 ranked values, largest first. How far SPY travels after the minute your signal fired (June 2024)ranking · 2026-10-04 · 5×3Preview: 5 ranked values, smallest first. One rule, two fill conventions: SPY equity curves through 2024series · 2026-10-04 · 12×4Preview: a 12-point series, ending higher.
Open-Source Trading Terminal for Python
Median quoted spread across six large caps, 10:00 to 10:30 ET on June 15 2026ranking · 2026-10-03 · 6×4Preview: 6 ranked values, smallest first. Apple in June 2026: full-day range against the widest single minuteseries · 2026-10-03 · 21×4Preview: a 16-point series, ending higher. Apple near-the-money implied volatility by days to expiry, June 15 2026ranking · 2026-10-03 · 5×3Preview: 5 ranked values, smallest first. Apple quoted spread by 30 minute ET bucket, June 15 2026 sessionseries · 2026-10-03 · 13×3Preview: a 13-point series, ending lower.
How to Backtest a Trading Strategy in Python
Three runs of backtest.py on the illustrative 60-bar fileranking · 2026-09-16 · 3×4Preview: 3 ranked values, smallest first.
How Implied Volatility Is Calculated
Where the Newton step misbehaves: AAPL vega by strike zone, June 30, 2026ranking · 2026-08-25 · 6×3Preview: 6 ranked values, largest first. At the money implied volatility and solver convergence, eight names, June 30, 2026ranking · 2026-08-25 · 8×4Preview: 8 ranked values, largest first. One solve per contract: AAPL implied volatility by strike zone, June 30, 2026ranking · 2026-08-25 · 6×3Preview: 6 ranked values, largest first. One AAPL contract, re-solved every session into its July 17, 2026 expiryseries · 2026-08-25 · 29×3Preview: a 16-point series, ending lower.
How to De-Vig Betting Odds Into Probabilities
Implied probability by quote format, illustrative quotesranking · 2026-08-11 · 5×2Preview: 5 ranked values, largest first. De-vig methods on one lopsided market, -750 against +475ranking · 2026-08-11 · 4×3Preview: 4 ranked values, largest first. Book sum and overround on four illustrative marketsranking · 2026-08-11 · 4×3Preview: 4 ranked values, smallest first.
Anchored VWAP Explained: Formula and Uses
How much the newest session can move an anchored VWAP (AAPL)ranking · 2026-08-07 · 13×2Preview: 13 ranked values, smallest first. Anchored at each name's own lowest close of the past twelve monthstable · 2026-08-07 · 5×5 Daily session VWAP against a VWAP anchored on one date (AAPL)series · 2026-08-07 · 62×4Preview: a 16-point series, ending higher. The same stock and the same last price, twelve different anchors (AAPL)ranking · 2026-08-07 · 12×3Preview: 12 ranked values, smallest first.
Reproducible Backtest in Python, No API Key
A 20/50 moving-average crossover on SPY, year by year, against holdingranking · 2026-08-06 · 9×4Preview: 9 ranked values, smallest first. The same 20/50 rule on five liquid names, 2021 through 2025ranking · 2026-08-06 · 5×4Preview: 5 ranked values, largest first. Same rule, prior-session signal against same-session signal, SPY by yearranking · 2026-08-06 · 9×4Preview: 9 ranked values, smallest first.
What Is Maximum Drawdown? Depth vs Recovery
Same fund, five lookback windows: SPY maximum drawdown by sample length to July 31, 2026ranking · 2026-08-05 · 5×3Preview: 5 ranked values, smallest first. Completed SPY drawdowns since 2016: depth, days falling, days climbing backtable · 2026-08-05 · 8×5 SPY underwater curve: month end close against its running peak, 2016 to 2026series · 2026-08-05 · 127×2Preview: a 16-point series, roughly flat. Maximum drawdown against annualized volatility: eight large caps, five years to July 31, 2026ranking · 2026-08-05 · 8×3Preview: 8 ranked values, largest first.
SPY realised volatility by month against a 10% target

SPY realised volatility by month against a 10% target

most recentas of series 72×4read in context →
SPY realised volatility by month against a 10% target — 72 rows by 4 columns, computed from US exchange, SIP and OPRA data.
monthmonth_labelrealised_vol_pcttarget_vol_pct
2020-10-01Oct 202020.810
2020-11-01Nov 202016.210
2020-12-01Dec 20209.110
2021-01-01Jan 202116.810
2021-02-01Feb 202114.410
2021-03-01Mar 202116.410
2021-04-01Apr 202110.510
2021-05-01May 202114.110
2021-06-01Jun 20219.310
2021-07-01Jul 202111.410
2021-08-01Aug 20218.310
2021-09-01Sep 202113.110
2021-10-01Oct 202110.910
2021-11-01Nov 202112.910
2021-12-01Dec 202117.210
2022-01-01Jan 202218.710
2022-02-01Feb 202222.510
2022-03-01Mar 202223.210
2022-04-01Apr 202225.110
2022-05-01May 202231.410
2022-06-01Jun 202229.710
2022-07-01Jul 202219.110
2022-08-01Aug 202219.410
2022-09-01Sep 202224.210
2022-10-01Oct 202227.810
2022-11-01Nov 202227.610
2022-12-01Dec 202218.410
2023-01-01Jan 202316.510
2023-02-01Feb 202315.610
2023-03-01Mar 202318.510
2023-04-01Apr 20231210
2023-05-01May 202312.810
2023-06-01Jun 202310.810
2023-07-01Jul 2023810
2023-08-01Aug 202312.310
2023-09-01Sep 202311.410
2023-10-01Oct 20231410
2023-11-01Nov 202311.110
2023-12-01Dec 20239.810
2024-01-01Jan 202411.210
2024-02-01Feb 202412.110
2024-03-01Mar 202410.110
2024-04-01Apr 202413.210
2024-05-01May 20249.510
2024-06-01Jun 20246.710
2024-07-01Jul 202414.410
2024-08-01Aug 202419.210
2024-09-01Sep 202413.810
2024-10-01Oct 202411.210
2024-11-01Nov 202411.810
2024-12-01Dec 202414.110
2025-01-01Jan 202513.910
2025-02-01Feb 202513.210
2025-03-01Mar 202520.710
2025-04-01Apr 202551.910
2025-05-01May 202516.810
2025-06-01Jun 202510.210
2025-07-01Jul 20256.610
2025-08-01Aug 20251210
2025-09-01Sep 20257.110
2025-10-01Oct 202513.810
2025-11-01Nov 202515.410
2025-12-01Dec 20258.410
2026-01-01Jan 202610.310
2026-02-01Feb 202613.410
2026-03-01Mar 202618.210
2026-04-01Apr 202611.610
2026-05-01May 20269.710
2026-06-01Jun 202617.710
2026-07-01Jul 202612.110
2026-08-01Aug 202610.310
2026-09-01Sep 202610.810
the exact SQL behind every number
WITH
    px AS
    (
        SELECT
            date                  AS d,
            toFloat64(any(close)) AS c
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= toStartOfMonth(subtractYears(today(), 6))
          AND date <  toStartOfMonth(today())
        GROUP BY d
    ),
    px_sorted AS
    (
        SELECT arraySort(p -> p.1, groupArray((d, c))) AS pts
        FROM px
    ),
    rets AS
    (
        SELECT arrayJoin(arrayFilter(x -> abs(x.2) < 0.4,
                   arrayMap((a, b) -> (b.1, log(b.2 / a.2)),
                            arraySlice(pts, 1, length(pts) - 1),
                            arraySlice(pts, 2)))) AS r
        FROM px_sorted
    )
SELECT
    toStartOfMonth(tupleElement(r, 1))                          AS month,
    formatDateTime(toStartOfMonth(tupleElement(r, 1)), '%b %Y') AS month_label,
    round(stddevSamp(tupleElement(r, 2)) * sqrt(252) * 100, 1)  AS realised_vol_pct,
    10                                                          AS target_vol_pct
FROM rets
GROUP BY month, month_label
ORDER BY month
$