November Mythbusting: Bitcoin Seasonality vs. Real Edge

Title: November Mythbusting: Bitcoin Seasonality vs. Real Edge
Introduction — Moonvember or Mirage? Every November the same headline resurfaces: “November is Bitcoin’s best month.” That claim often rests on a simple arithmetic mean that’s easy to misread. CoinDesk (Nov. 1, 2025) shows the arithmetic mean since 2013 is inflated by a few outlier years; the historical median November return is more modest (roughly 8–10% across the sample). The headline mean alone is an invitation to overfit.
This post gives a compact, intermediate-to-advanced framework to separate descriptive seasonality from a tradable edge. I cover how to build a transparent backtest (walk‑forward validation, explicit costs, stress tests), which regime filters matter, and pragmatic sizing and invalidation rules if you choose to act on a seasonal tilt. A worksheet at the end lets you plug today’s numbers into a decision guide; sources and market context (ETF flows, funding, IV) are cited so you can update inputs for 2025–26.
Why Bitcoin seasonality needs a quant mindset A disciplined quant mindset avoids single-statistic answers. The arithmetic mean is sensitive to outliers; the median better represents a “typical” November. But both matter: use mean, median, interquartile range, and tail percentiles (5th/95th) to understand the full distribution rather than a headline average (CoinDesk, Nov. 1, 2025).
Operational checklist for seasonality testing:
- Inspect median, IQR, and tail percentiles. A strong mean with wide dispersion usually signals a noisy effect.
- Test regime dependence (bull, bear, range). If seasonality only works in bullish regimes, it’s not universally deployable.
- Require confirmation from contemporaneous price/trend or volume before scaling into the signal.
Glassnode’s on‑chain notes for Q4 highlight how ETF flows, leverage, and options positioning create regime sensitivity — exactly the variables you should include when testing seasonal rules (Glassnode, Oct. 2025).
How to backtest seasonality properly A credible backtest must mimic live decision-making. Implement this reproducible recipe:
- Dataset and frequency: use exchange‑aggregated monthly spot closes for a monthly seasonality test. If you want to capture carry effects explicitly, include a parallel total‑return series (spot returns plus realized funding/carry) and report both.
- Strategy rule (example): enter long at the start of November if prior conditions hold; exit at the end of November (or use a trend/carry overlay). Record monthly P&L.
- Costs: model transaction costs explicitly (exchange fees + slippage). For liquid BTC spot start with ~0.05% per side as a baseline, and always test with 2× friction to check fragility.
- Validation: use walk‑forward (rolling) validation—not a single in‑sample/out‑of‑sample split. For calendar effects, 12–18 month train windows with 1‑month out‑of‑sample steps reproduces a realistic retrain cadence and reduces look‑ahead bias. See modern crypto backtest best practices (Forvest, Oct. 27, 2025).
- Metrics: report median monthly return, win rate, return dispersion, maximum drawdown, worst month, Sharpe ratio, and time‑under‑water. Crucially, show the out‑of‑sample histogram of monthly returns—not just averages.
- Stress tests: vary funding rates, implied volatility, and macro-regime slices (e.g., ETF inflow → outflow weeks). If the seasonal edge vanishes when funding or IV moves modestly, it’s fragile.
Practical regime filters and stress scenarios Seasonality rarely outperforms without a compact set of filters. Add these minimal, testable filters:
- Trend filter: require price above the 200‑day MA or a positive 50/200 EMA slope. If seasonality only succeeds with a bullish long-term trend, encode that.
- Funding / carry filter: monitor the 7‑day average funding rate. Use banded thresholds (example bands below) to size or veto entries. High positive funding (longs pay) erodes carry for multi‑day holds.
- Implied‑volatility filter: extreme short-dated IV changes the return distribution—means can rise but tails widen. Use IV to adjust sizing or consider hedging.
Recommended example bands to tune in backtests (tunable, optimize in your walk‑forward):
- Permissive: funding < 0.03% per day
- Caution: funding 0.03–0.08% per day (scale size down; consider shorter holds)
- Decline/avoid: funding > 0.08% per day These bands should be validated in your dataset; Glassnode and trading desks have flagged funding/leverage spikes as Q4 fragility drivers (Glassnode, Oct. 2025).
Stress tests to run: double observed funding, increase short-dated IV by 10–20 vol points, and model spot ETF flows flipping from inflows to outflows. A robust seasonal strategy should degrade gracefully, not catastrophically.
Combining seasonality with trend or carry Treat seasonality as a timing tilt, not a standalone strategy. Two practical overlays:
- Trend‑following overlay: only activate seasonal entries when the trend filter is satisfied (e.g., price > 200‑day MA). This filters false positives in bear markets.
- Carry‑aware sizing: if funding is positive (longs pay), treat the signal as short‑term and scale position size down or offset costs with options/short-dated hedges. When funding is negative, you can accept a larger position for the same carry budget.
Backtests that combine seasonality with trend and carry typically show lower peak returns but materially smaller downside tails—often preferable for intermediate/advanced investors.
Worksheet: plug-in checklist to decide if November seasonality matters this year Populate with your provider data:
- Historical median Nov return: _____
- Historical mean Nov return: _____
- Current price vs 200‑day MA: above / below (value: _____)
- 7‑day avg funding rate (exchange-weighted): _____% (annualized: _____%)
- 30‑day implied vol (DVOL / Deribit): _____ vol
- Spot ETF 7‑day flow: inflow / outflow (USD): _____
Decision guide (example using tunable bands):
- If median > 0, price > 200d MA, funding < 0.03%/day, and DVOL < 60 ⇒ seasonality is 'permissible' (small allocation).
- If price < 200d MA or funding > 0.08%/day or DVOL > 70 ⇒ decline to trade or significantly reduce size.
- If funding between 0.03–0.08%/day or DVOL between 60–70 ⇒ consider reduced size, shorter duration, or hedging; validate with your walk‑forward results.
Position sizing and invalidation (practical examples):
- Risk per trade: 1% of portfolio (tailor to risk tolerance). Use a stop tied to the strictest technical invalidation—e.g., a daily close below the 200‑day MA—or a time stop (exit at month end).
- If funding costs exceed ~30% of your expected gross return, scale position down by 50% or hedge with short‑dated options.
Takeaways — respect history, avoid overfitting November can look strong on some metrics, but headline means can hide distributional risk. A pragmatic approach:
- Use medians and percentiles, not only the mean.
- Test with walk‑forward validation and explicit transaction costs.
- Layer trend and carry filters and validate them in-sample and out-of-sample.
- Stress-test across funding, IV, and ETF flow regimes because structural shifts (e.g., spot ETF dynamics) can materially change outcomes.
If you want, TokenVitals can run a transparent walk‑forward backtest of the seasonal rule above against our ETF/funding/IV panel and produce a downloadable spreadsheet so you can plug in today’s numbers. Tell us which exchange(s) and data sources you prefer (Deribit, CoinGlass, CoinMetrics, etc.), and we’ll prepare stitched out‑of‑sample equity curves and decision thresholds.
Sources
- CoinDesk, “Is November the New October? Here’s What Bitcoin Price Data Actually Shows” (Nov. 1, 2025).
- Glassnode Insights, Week On‑Chain (Oct. 2025).
- Forvest, “Backtest Optimization: Avoid Overfitting & Improve Robustness” (Oct. 27, 2025).
- Skforecast / time‑series backtesting docs (walk‑forward definitions and mechanics).
Next steps (author suggestion)
- Unify the funding/IV bands for your desk or strategy and optimize them in a walk‑forward run.
- Add a parallel total‑return series if you want to capture realized funding/carry effects.
- If you want TokenVitals to run the backtest and return a workbook with stress tests, provide preferred exchanges and data feeds and we’ll produce the file.