Multivariate similarity search · 5,756 days scanned

Bitcoin Cycle Twin Finder

Which day in Bitcoin's history looks most like today? We compare the last 30 days of market state — returns, volatility, drawdown from 365d high, price vs 200-day MA, and volume — against every 30-day window since 2010. The closest matches get ranked. Then we show what actually happened in the 90 days after each one.

Updated at most every 30 minutes · Last computed reference date: 2026-04-20

BTC price

$74,467

Fear & Greed

29

Fear

Drawdown

-40.3%

from 365d high

Days since halving

730

Cycle phase

Late-cycle / distribution

Then vs Now · parallel history
1 / 10

Today's chart looks like 2018-07-29 (65.9% similarity)

Today — last 90 days

2026-01-19 2026-04-20

Now

$74,467

-19.6% (90d)

59718496108NOW90d agotoday
F&G 29
Drawdown -40.3%
90d return -19.6%

Twin — 2018-07-29

2018-04-29 2018-07-29 2018-08-29

Price then

$8,217

-12.7% (90d)

597184961082018-07-29+30d90d beforeanalog end+30d
F&G then 54
Drawdown then -57.5%
What happened next -13.7% (30d)

After 7 days

-14.3%

After 30 days

-13.7%

After 90 days

-21.3%

This is the #1 closest twin of the top-10. Browse the others with ◀ ▶.

Across all 10 analogs, the median 30-day forward return was -17.1% and the median 90-day return was -20.6%. Past analogs are not predictions.

Historical context · 5,757 daily closes since 2010

Where the top-10 historical twins sit on BTC's full timeline

$0.1$1$10$100$1k$10k$100k20112012201320142015201620172018201920202021202220232024202520261st halving2nd halving3rd halving4th halving#62014-06#82014-11#32015-03#102015-06#52018-04#12018-07#42022-04#72022-07#92022-10#22026-01TODAY
BTC price (log scale)
Historical twin (ranked #1–10)
Halving events
Today

All 10 analogs overlaid — forward 90 days

Each colored line is one historical analog's BTC trajectory in the 90 days after its match date, indexed to 100. The shaded green band is the p10–p90 envelope across all 10. The dashed emerald line is the median path.

34547393113132day 0-28d-21d-14d-7d0+7d+30d+60d+90d
Today (past 30d)
2018-07-29 forward
2026-01-15 forward
2015-03-13 forward
Median across top-10
p10–p90 envelope

Forward returns across analogs

What actually happened after dates that looked like today. n=10 analogs.

0%5%-40%+7d-2%+30d-17%+90d-21%
HorizonMedianP10P90σ% up
+7d-2.5%-9.7%+4.0%+5.8%30%
+30d-17.1%-21.5%-3.0%+10.2%10%
+90d-20.6%-39.9%-4.4%+18.6%10%

Walk-forward backtest · 58 anchors

How well has this system actually predicted the past?

For every one of 58 anchor dates on a 30-day grid from 2021-04-20 to 2025-12-25, we re-ran the Twin Finder using only data available on that date — then compared its median prediction to what BTC actually did. No lookahead, no cherry-picking.

Full backtest →

+7 day horizon

46.6%

directional accuracy
(coin flip = 50%)

Mean abs error
7.4%
MAE vs naive (0%)
+22%
Correlation
-0.15
Median actual
-0.8%
Median predicted
+1.9%

Outcomes

Both up (✓)
19/58
Both down (✓)
8/58
False bull
24/58
False bear
7/58

+30 day horizon

55.2%

directional accuracy
(coin flip = 50%)

Mean abs error
15.6%
MAE vs naive (0%)
+24%
Correlation
0.06
Median actual
-1.3%
Median predicted
+4.1%

Outcomes

Both up (✓)
23/58
Both down (✓)
9/58
False bull
22/58
False bear
4/58

+90 day horizon

70.7%

directional accuracy
(coin flip = 50%)

Mean abs error
30.3%
MAE vs naive (0%)
+19%
Correlation
0.24
Median actual
+1.2%
Median predicted
+9.4%

Outcomes

Both up (✓)
26/58
Both down (✓)
15/58
False bull
12/58
False bear
5/58

The metric to trust: MAE vs naive. Positive means the system is closer to reality than a naive "predict 0%" baseline. The Twin Finder is not a trading signal — it's a contextual reference. Similarity does not guarantee outcome.

All 10 historical twins

#End dateSimilarityBTC at dateF&GDrawdown+7d+30d+90d
12018-07-2965.9%$8,21754-57.5%-14.3%-13.7%-21.3%
22026-01-1564.9%$95,58461-23.4%-6.5%-28.0%-22.4%
32015-03-1360.5%$287.21-57.1%-8.9%-17.9%-20.0%
42022-04-0357.5%$46,41448-31.3%-9.2%-18.7%-58.6%
52018-04-2656.7%$9,28247-52.0%+5.0%-20.8%-12.0%
62014-06-0353.0%$669.43-45.9%-2.1%-4.7%-28.7%
72022-07-3050.6%$23,64642-65.0%-2.9%-14.2%-12.9%
82014-11-1848.0%$379.16-69.4%-0.7%-18.2%-37.8%
92022-10-3147.0%$20,49331-69.7%+0.5%-16.3%+15.9%
102015-06-2244.1%$247.46-61.7%+3.8%+11.7%-6.6%
Methodology — how the match is computed

For every day in BTC's history we precompute a feature vector with 10 signals: 1-day, 7-day, 30-day and 90-day returns; 30-day realized volatility (log returns, annualized); drawdown from 365-day high; price vs 200-day moving average; 30-day volume z-score; Fear & Greed (where available); and days since the last halving. That gives 5,757 daily vectors stored in BtcFeatureVector.

A "window" is the concatenation of the last 30 days of six trajectory features. Each feature column is z-score-normalized inside its own window, so the comparison measures shape, not absolute price level (BTC at $200 vs $100,000 still compares).

The reference window (last 30 days ending on 2026-04-20) is compared to every prior window via cosine similarity. The top-10 results are then deduplicated so no two picks are closer than 90 days apart — otherwise clustered periods would dominate. For each pick we look up BTC's actual price at +7d, +30d and +90d after the analog end-date.

Similarity is a distance metric, not a prediction. A 75% cosine score means the last 30 days of features are 75% aligned with some historical 30-day window — it does not mean BTC has a 75% chance of doing what it did next. Use this as context, not as a signal.

Want custom analog searches on demand?

Logged-in users can run the Twin Finder for any historical date, adjust window length, and get weekly alerts when today's analogs shift significantly.

Create a free account