What Is a Crypto Market Regime — and Why One Signal Isn't Enough

A strategy that prints during a bull breakout gets shredded in chop. An oversold RSI is a buy in accumulation and a knife-catch in a liquidation cascade. The signal is identical; what changed is the regime — the market state the signal fires into.

Most bots fail because they apply one playbook to every condition. The fix is to detect the regime first, then pick the strategy that fits it. That is exactly what the regime taxonomy at cryptodataapi.com/regimes is built for.

We break the market into 14 regimes, each its own API endpoint, and most carry a single 0–100 composite score plus a labelled band. One call per regime tells an AI agent where it is — bull or bear, compressed or expanding, calm or black-swan — before it risks a dollar.

The 14 Crypto Market Regimes at a Glance

The 14 regimes span five tiers: the slow directional backdrop (1, 2, 6), the faster market-state regimes (3, 4, 8, 9, 13), the universal structural overlay (14), the flow regimes (7, 10), and the exogenous shock regimes (5, 11, 12).

#RegimeTimescaleWhat it measuresDeep dive
1Macro TrendMonthsStructural posture (HH/HL vs LH/LL), aggregate funding, BTC dominanceMacro & cycle
2BTC CycleWeeks–monthsHalving supply shocks, miner flows, dominance rotationsMacro & cycle
3Meme / SpeculativeHours–daysSpeculative perp lifecycle: ignition → euphoric → bleedingMeme regime
4Derivatives-NativeMinutes–daysFunding extremes, OI imbalance, liquidation cascadesDerivatives & carry
5Event / CatalystHours–weeksDated catalysts: token unlocks, macro prints, depegsEvent regime
6Macro CorrelationDays–weeksCrypto as high-beta tech: equities, DXY, gold, yieldsMacro & cycle
7On-Chain IntelligenceDays–weeksExchange flows, stablecoin dry powder, whale accumulation, minersOn-chain & flow
8Carry / BasisDays–weeksPerp-vs-spot basis term structure; crowding via high basisDerivatives & carry
9Liquidity / DepthReal-time–daysBook depth, spreads, OI/price divergence, fragilityLiquidity regime
10Institutional FlowWeeks–monthsETF / 401(k) inflows as a structural floorOn-chain & flow
11Security / Black SwanHours–daysHacks, exploits, self-custody flight, depeg cascadesSecurity regime
12Geopolitical / PolicyHours–weeksRegulatory + geopolitical pressure, signed policy tiltPolicy regime
13VolatilityDays–weeksRealized vol (3 estimators), percentile rank, vol-targetingVolatility regime
14Technical / StructuralHours–daysSMA crosses, Bollinger squeeze, range, RSI — the universal overlayTechnical regime

How the 0–100 Regime Scores Work

Most regimes expose a /score endpoint that collapses the regime into a single 0–100 composite, a labelled band, and the weighted sub-scores that built it. The composite is deliberately transparent — you can see which input is driving stress.

The shock regimes share a five-step band vocabulary — dormant, quiet, elevated, heavy, critical — while the continuous regimes use sentiment words like calm, normal, stressed (volatility) or healthy / fragile (liquidity).

Each composite is a fixed weighted blend. A few examples, straight from the services:

RegimeScore fieldComposite formula
Security / Black Swansecurity_stress_score0.45·hack + 0.30·flow + 0.25·depeg
Geopolitical / Policypolicy_risk_score0.40·gdelt + 0.35·cross_asset + 0.25·rate
Event / Catalystevent_risk_score0.40·unlock + 0.25·macro + 0.35·depeg
Volatility / Liquidity / Memecomposite_scoreRegime-mix + percentile blend (see each post)

Heads-up for parsing: the score key is not uniform. Volatility, liquidity and meme use composite_score; the shock regimes use a named field (security_stress_score, policy_risk_score, event_risk_score). Map them once and you have a clean regime vector.

How Do I Pull Every Regime Score in One Workflow?

Each composite is a plain GET. Start with one:

curl -H "X-API-Key: cdk_live_yourkey" \
  "https://cryptodataapi.com/api/v1/volatility/regime/score"

Then fan out across the scored regimes to build a single regime vector your agent can condition on. The helper below normalises the differing score keys into one shape:

import httpx

HDR = {"X-API-Key": "cdk_live_yourkey"}
BASE = "https://cryptodataapi.com/api/v1"

SCORES = {
    "volatility": "/volatility/regime/score",
    "liquidity":  "/liquidity/regime/score",
    "meme":       "/meme/regime/score",
    "security":   "/security/regime/score",
    "policy":     "/policy/regime/score",
    "event":      "/event/regime/score",
}
# score lives under different keys depending on the regime
SCORE_KEYS = ("composite_score", "security_stress_score",
              "policy_risk_score", "event_risk_score")

def pick(d):
    for k in SCORE_KEYS:
        if k in d: return d[k]
    return None

regime = {}
for name, path in SCORES.items():
    d = httpx.get(BASE + path, headers=HDR).json()
    regime[name] = {"score": pick(d),
                    "band": d.get("sentiment") or d.get("band")}

print(regime)
# {'volatility': {'score': 31.0, 'band': 'calm'},
#  'security':   {'score': 12.0, 'band': 'quiet'}, ...}

Six reads and your agent has a full risk picture. Cache it — every /score sits behind a TTL cache, so polling on a schedule is essentially free.

Live Signals vs Backfilled History for Backtesting

Not every regime is backfillable, and that distinction matters when you build a backtest.

Rule of thumb: backtest on the composite scores, then layer the live sidecars in production for the real-time edge.

Combining Regimes: Gate, Size, Time, Veto

The regimes are designed to stack, not compete. A clean four-layer pattern:

Concretely: a long bias from the cycle regime, taken only while volatility is compressed and the book is healthy, timed by a technical squeeze break — and cancelled the moment the event or security score crosses heavy. No single endpoint gives you that; the stack does.

Where to Start: A Guide to All 14 Regimes

Each regime has a focused deep dive with response shapes, query filters, and agent wiring:

When to reach for the framework: any time your bot trades the same way in every market. Wire the regime vector in first, condition your existing strategies on it, and you stop fighting the tape. Browse the live dashboard at cryptodataapi.com/regimes.

New — pair it with probabilities. This framework classifies structural conditions on a slow clock. The new quant HMM engine adds a short-horizon probabilistic layer on top: six market regimes scored every hour with calibrated confidence, plus transition odds and prediction heads and a Monte Carlo of tomorrow. Use the baskets for posture and the regime probabilities for timing — see how the two systems compare and combine.