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

2,170 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-08-22 · 72×4Preview: a 16-point series, roughly flat. What the lookback window costs in daily turnover (SPY, 10% target, 2x cap)ranking · 2026-08-22 · 4×4Preview: 4 ranked values, largest first. One 10% risk budget, six names, six different weightsranking · 2026-08-22 · 6×4Preview: 6 ranked values, smallest first. Weekly realised volatility and the weight it implied, Nov 2019 to Apr 2020series · 2026-08-22 · 25×4Preview: a 16-point series, ending lower.
Paper Trading Before Real Money
One session shape: median quoted spread by half-hour bucket, Ford (F), recent completed sessionsseries · 2026-08-22 · 13×3Preview: a 13-point series, ending lower. Five years of sessions: share closing above the open, typical move, and the extremes (SPY, 2021-2025)table · 2026-08-22 · 5×6 What a real fill costs: median quoted spread in bps of the midpoint, regular hours, recent completed sessionsranking · 2026-08-22 · 6×4Preview: 6 ranked values, smallest first.
How Long a Losing Streak Is Normal
Chance of at least one losing streak of five, eight or ten in a 200 trade seriesranking · 2026-08-17 · 5×4Preview: 5 ranked values, smallest first. Chance of at least one five loss run at a 70 percent win rate, by series lengthranking · 2026-08-17 · 5×2Preview: 5 ranked values, smallest first. One named window against somewhere in a 200 trade series, at a 70 percent win rateranking · 2026-08-17 · 3×4Preview: 3 ranked values, largest first. How long the worst losing run of a 200 trade series usually is, at a 70 percent win rateranking · 2026-08-17 · 7×3Preview: 7 ranked values, largest first. Drawdown from an eight and a ten loss streak, by risk per traderanking · 2026-08-17 · 4×4Preview: 4 ranked values, smallest first.
The 3-5-7 Rule in Options, Examined
One-day move profile, seven household names, July 2025 to June 2026table · 2026-08-15 · 7×6 S&P 500 tracker (SPY): down sessions by calendar year, 2016 to mid-2026table · 2026-08-15 · 11×5 Worst five-session stretch and deepest in-window drawdown, July 2025 to June 2026ranking · 2026-08-15 · 7×4Preview: 7 ranked values, smallest first.
Kelly Criterion Position Sizing, Measured
Kelly inputs from daily closes, 2016 through 2025: win rate, average gain, average loss, and the fraction the formula returnstable · 2026-07-31 · 6×5 The same Kelly calculation on the S&P 500 tracker, year by year, 2016 through 2025table · 2026-07-31 · 10×5 One decade of S&P 500 daily returns compounded at eight fixed bet sizes: ending wealth and worst drawdownranking · 2026-07-31 · 8×3Preview: 8 ranked values, smallest first.
Protective Puts: Portfolio Insurance
The SPY $740 put's value over its final weeks (expired Jun 18 2026)series · 2026-07-16 · 11×2Preview: a 11-point series, roughly flat. 100 SPY shares alone vs. the same shares with one $740 put held against themseries · 2026-07-16 · 11×3Preview: a 11-point series, ending lower. The SPY $760 call you could sell to finance the put (early June 2026)series · 2026-07-16 · 5×2Preview: a 5-point series, ending lower.
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-08-01Aug 20208.310
2020-09-01Sep 202024.810
2020-10-01Oct 202020.510
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
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
$