Volatility Targeting for Position Sizing
SPY realised volatility by month against a 10% targetseries ·
2026-10-04 · 72×4
What the lookback window costs in daily turnover (SPY, 10% target, 2x cap)ranking ·
2026-10-04 · 4×4
One 10% risk budget, six names, six different weightsranking ·
2026-10-04 · 6×4
Weekly realised volatility and the weight it implied, Nov 2019 to Apr 2020series ·
2026-10-04 · 25×4
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×4
Symbols that printed a final daily bar, by yearranking ·
2026-10-04 · 10×3
The January 2019 universe, grouped by what happened to each nameranking ·
2026-10-04 · 9×4
Free Stock Market Data API in Python
Trailing 20-session average volume, four household tickers, millions of sharesseries ·
2026-10-04 · 4×4
AAPL daily volume and its trailing 20-session average, millions of sharesseries ·
2026-10-04 · 34×3
Event-Driven vs Vectorized Backtesting
Median shares per executed print, 2024ranking ·
2026-10-04 · 5×2
Distance from the signal close to the next session's open, 2024ranking ·
2026-10-04 · 5×3
How far SPY travels after the minute your signal fired (June 2024)ranking ·
2026-10-04 · 5×3
One rule, two fill conventions: SPY equity curves through 2024series ·
2026-10-04 · 12×4
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×4
Apple in June 2026: full-day range against the widest single minuteseries ·
2026-10-03 · 21×4
Apple near-the-money implied volatility by days to expiry, June 15 2026ranking ·
2026-10-03 · 5×3
Apple quoted spread by 30 minute ET bucket, June 15 2026 sessionseries ·
2026-10-03 · 13×3
How to Backtest a Trading Strategy in Python
Three runs of backtest.py on the illustrative 60-bar fileranking ·
2026-09-16 · 3×4
How Implied Volatility Is Calculated
Where the Newton step misbehaves: AAPL vega by strike zone, June 30, 2026ranking ·
2026-08-25 · 6×3
At the money implied volatility and solver convergence, eight names, June 30, 2026ranking ·
2026-08-25 · 8×4
One solve per contract: AAPL implied volatility by strike zone, June 30, 2026ranking ·
2026-08-25 · 6×3
One AAPL contract, re-solved every session into its July 17, 2026 expiryseries ·
2026-08-25 · 29×3
How to De-Vig Betting Odds Into Probabilities
Implied probability by quote format, illustrative quotesranking ·
2026-08-11 · 5×2
De-vig methods on one lopsided market, -750 against +475ranking ·
2026-08-11 · 4×3
Book sum and overround on four illustrative marketsranking ·
2026-08-11 · 4×3
Anchored VWAP Explained: Formula and Uses
How much the newest session can move an anchored VWAP (AAPL)ranking ·
2026-08-07 · 13×2
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×4
The same stock and the same last price, twelve different anchors (AAPL)ranking ·
2026-08-07 · 12×3
Reproducible Backtest in Python, No API Key
A 20/50 moving-average crossover on SPY, year by year, against holdingranking ·
2026-08-06 · 9×4
The same 20/50 rule on five liquid names, 2021 through 2025ranking ·
2026-08-06 · 5×4
Same rule, prior-session signal against same-session signal, SPY by yearranking ·
2026-08-06 · 9×4
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×3
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×2
Maximum drawdown against annualized volatility: eight large caps, five years to July 31, 2026ranking ·
2026-08-05 · 8×3
SPY realised volatility by month against a 10% target
SPY realised volatility by month against a 10% target
| month | month_label | realised_vol_pct | target_vol_pct |
|---|---|---|---|
| 2020-10-01 | Oct 2020 | 20.8 | 10 |
| 2020-11-01 | Nov 2020 | 16.2 | 10 |
| 2020-12-01 | Dec 2020 | 9.1 | 10 |
| 2021-01-01 | Jan 2021 | 16.8 | 10 |
| 2021-02-01 | Feb 2021 | 14.4 | 10 |
| 2021-03-01 | Mar 2021 | 16.4 | 10 |
| 2021-04-01 | Apr 2021 | 10.5 | 10 |
| 2021-05-01 | May 2021 | 14.1 | 10 |
| 2021-06-01 | Jun 2021 | 9.3 | 10 |
| 2021-07-01 | Jul 2021 | 11.4 | 10 |
| 2021-08-01 | Aug 2021 | 8.3 | 10 |
| 2021-09-01 | Sep 2021 | 13.1 | 10 |
| 2021-10-01 | Oct 2021 | 10.9 | 10 |
| 2021-11-01 | Nov 2021 | 12.9 | 10 |
| 2021-12-01 | Dec 2021 | 17.2 | 10 |
| 2022-01-01 | Jan 2022 | 18.7 | 10 |
| 2022-02-01 | Feb 2022 | 22.5 | 10 |
| 2022-03-01 | Mar 2022 | 23.2 | 10 |
| 2022-04-01 | Apr 2022 | 25.1 | 10 |
| 2022-05-01 | May 2022 | 31.4 | 10 |
| 2022-06-01 | Jun 2022 | 29.7 | 10 |
| 2022-07-01 | Jul 2022 | 19.1 | 10 |
| 2022-08-01 | Aug 2022 | 19.4 | 10 |
| 2022-09-01 | Sep 2022 | 24.2 | 10 |
| 2022-10-01 | Oct 2022 | 27.8 | 10 |
| 2022-11-01 | Nov 2022 | 27.6 | 10 |
| 2022-12-01 | Dec 2022 | 18.4 | 10 |
| 2023-01-01 | Jan 2023 | 16.5 | 10 |
| 2023-02-01 | Feb 2023 | 15.6 | 10 |
| 2023-03-01 | Mar 2023 | 18.5 | 10 |
| 2023-04-01 | Apr 2023 | 12 | 10 |
| 2023-05-01 | May 2023 | 12.8 | 10 |
| 2023-06-01 | Jun 2023 | 10.8 | 10 |
| 2023-07-01 | Jul 2023 | 8 | 10 |
| 2023-08-01 | Aug 2023 | 12.3 | 10 |
| 2023-09-01 | Sep 2023 | 11.4 | 10 |
| 2023-10-01 | Oct 2023 | 14 | 10 |
| 2023-11-01 | Nov 2023 | 11.1 | 10 |
| 2023-12-01 | Dec 2023 | 9.8 | 10 |
| 2024-01-01 | Jan 2024 | 11.2 | 10 |
| 2024-02-01 | Feb 2024 | 12.1 | 10 |
| 2024-03-01 | Mar 2024 | 10.1 | 10 |
| 2024-04-01 | Apr 2024 | 13.2 | 10 |
| 2024-05-01 | May 2024 | 9.5 | 10 |
| 2024-06-01 | Jun 2024 | 6.7 | 10 |
| 2024-07-01 | Jul 2024 | 14.4 | 10 |
| 2024-08-01 | Aug 2024 | 19.2 | 10 |
| 2024-09-01 | Sep 2024 | 13.8 | 10 |
| 2024-10-01 | Oct 2024 | 11.2 | 10 |
| 2024-11-01 | Nov 2024 | 11.8 | 10 |
| 2024-12-01 | Dec 2024 | 14.1 | 10 |
| 2025-01-01 | Jan 2025 | 13.9 | 10 |
| 2025-02-01 | Feb 2025 | 13.2 | 10 |
| 2025-03-01 | Mar 2025 | 20.7 | 10 |
| 2025-04-01 | Apr 2025 | 51.9 | 10 |
| 2025-05-01 | May 2025 | 16.8 | 10 |
| 2025-06-01 | Jun 2025 | 10.2 | 10 |
| 2025-07-01 | Jul 2025 | 6.6 | 10 |
| 2025-08-01 | Aug 2025 | 12 | 10 |
| 2025-09-01 | Sep 2025 | 7.1 | 10 |
| 2025-10-01 | Oct 2025 | 13.8 | 10 |
| 2025-11-01 | Nov 2025 | 15.4 | 10 |
| 2025-12-01 | Dec 2025 | 8.4 | 10 |
| 2026-01-01 | Jan 2026 | 10.3 | 10 |
| 2026-02-01 | Feb 2026 | 13.4 | 10 |
| 2026-03-01 | Mar 2026 | 18.2 | 10 |
| 2026-04-01 | Apr 2026 | 11.6 | 10 |
| 2026-05-01 | May 2026 | 9.7 | 10 |
| 2026-06-01 | Jun 2026 | 17.7 | 10 |
| 2026-07-01 | Jul 2026 | 12.1 | 10 |
| 2026-08-01 | Aug 2026 | 10.3 | 10 |
| 2026-09-01 | Sep 2026 | 10.8 | 10 |
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
More from this analysisVolatility Targeting for Position Sizing
Weekly realised volatility and the weight it implied, Nov 2019 to Apr 2020
series 25×4
→
One 10% risk budget, six names, six different weights
ranking 6×4
→
What the lookback window costs in daily turnover (SPY, 10% target, 2x cap)
ranking 4×4
→
SPY underwater curve: month end close against its running peak, 2016 to 2026
series 127×2
→
See all 3,256 queries →