Skip to content
6 min read Bitcoin

The Death of the 4-Year Cycle? Why Macro Liquidity Matters More Than the Halving

Has the 4-year Bitcoin cycle broken? Discover why Global M2 liquidity and structural ETF demand now overpower the mechanical halving supply shock.

Has the 4-year Bitcoin cycle broken? Discover why Global M2 liquidity and structural ETF demand now overpower the mechanical halving supply shock.

TL;DR

The signal rule

Formula:

Macro Dominance = Global M2 YoY Acceleration + Sustained Institutional Inflows

Thresholds and window:

Examples:

SQL / Code snippet

Tracking the macro liquidity engine: Global M2 YoY vs Bitcoin YoY (BigQuery). This version aggregates to weekly data so LAG(52) is consistent.

-- Weekly (Sunday) aggregation + YoY change (52 weeks)
WITH price_daily AS (
  SELECT
    DATE(datetime) AS day,
    c AS price
  FROM `tech-web3-analytics-prod.abstraction_price.btc_usd_index-price_day`
  WHERE DATE(datetime) >= '2012-01-01'
),
m2_daily AS (
  SELECT
    DATE(event_timestamp) AS day,
    AVG(value) AS m2_value
  FROM `poc_stage.tradfi_fred_dataset`
  WHERE type = 'm2' AND DATE(event_timestamp) >= '2012-01-01'
  GROUP BY 1
),
price_weekly AS (
  SELECT
    DATE_TRUNC(day, WEEK(SUNDAY)) AS week,
    AVG(price) AS price
  FROM price_daily
  GROUP BY 1
),
m2_weekly AS (
  SELECT
    DATE_TRUNC(day, WEEK(SUNDAY)) AS week,
    AVG(m2_value) AS m2_value
  FROM m2_daily
  GROUP BY 1
)
SELECT
  w.week,
  100 * SAFE_DIVIDE(p.price - LAG(p.price, 52) OVER (ORDER BY w.week),
                    LAG(p.price, 52) OVER (ORDER BY w.week)) AS btc_yoy,
  100 * SAFE_DIVIDE(m.m2_value - LAG(m.m2_value, 52) OVER (ORDER BY w.week),
                    LAG(m.m2_value, 52) OVER (ORDER BY w.week)) AS m2_yoy
FROM (SELECT week FROM m2_weekly UNION DISTINCT SELECT week FROM price_weekly) w
LEFT JOIN price_weekly p USING (week)
LEFT JOIN m2_weekly m USING (week)
ORDER BY 1 DESC;

Key definitions

How to interpret this metric

Historical examples (what worked, what didn’t)

How to use it in practice

Common pitfalls

Halving supply shock vs macro liquidity

FAQ

Minimal conclusion

Axel Adler Jr