MACROHUB Charts
← all ideas

A 5% Slice of Bitcoin

Macro

From January 2015, hold 95% SPY and 5% Bitcoin (BTC-USD), rebalanced back to 95/5 on the first trading day of each month. Monthly rebalancing keeps the sleeve from quietly becoming the whole portfolio. Benchmark is 100% SPY.

$10,000 became
$56,036
beat S&P · $45,089
$10k became
$56,036
CAGR
15.9%
Max drawdown
-60.4%
vs S&P 500
+24%

See this in the terminal — live earnings bands, fair value and rates.

Start free trial
Read the story

Five percent in Bitcoin, trimmed back every month. The tiny sleeve changed everything.

The rule. From January 2015, hold 95% SPY and 5% Bitcoin (BTC-USD), rebalanced back to 95/5 on the first trading day of each month. Monthly rebalancing keeps the sleeve from quietly becoming the whole portfolio. Benchmark is 100% SPY.

What actually happened.

  • $10,000 became $56,036. The same $10,000 in S&P 500 (SPY) became $45,089. This strategy beat the benchmark by $10,947.
  • Compounded at 15.9% a year vs 13.8% for the benchmark.
  • Best year: 2017 (+180%). Worst year: 2022 (-48%). This is not a smooth ride.

The catch. At its worst, this strategy fell -60% from a prior peak — deeper than the benchmark's -34%. Would you have held through that? Most people don't. That's the whole game.

The takeaway. It worked here — but "it worked in the past" is the most expensive sentence in investing. The edge is real only if it survives costs, taxes, and the drawdown above. Show your work, then decide.

Holding right now (2026-09-01): BTC-USD, SPY.

Drawdown from prior peak

Calendar-year returns

Line 151617181920212223242526
95/5 (SPY/Bitcoin) -21% +47% +180% -22% +7% +70% +12% -48% +98% +13% -13% +7%
S&P 500 (SPY) +1% +12% +22% -5% +31% +18% +29% -18% +26% +25% +18% +13%

Holding now · 2026-09-01

SPY 95% BTC-USD 5%

The monthly rebalance is doing enormous work here: it repeatedly trims Bitcoin's gains into stocks. Buying and holding 5% instead would give a wildly different - and far more volatile - answer. How we test

Rebalance: monthly (first trading day), back to 95/5 · Window: 2015-01-01 → 2026-09-02 · Last run Sep 2, 2026 · JSON