Market Regime
What kind of market you are trading in. Seven forces — trend, volatility, cycle, sentiment, leverage stress, ETF liquidity, rotation — each voting with its own reasoning and its own threshold for changing the call.
What it does
Deterministic market-regime classification across seven axes: trend (Mayer Multiple bands vs the 200-day SMA), volatility (30d realized, percentile vs own history), cycle (a ~30-indicator top checklist incl. MVRV Z-Score, NUPL, Pi Cycle, AHR999), sentiment (Fear & Greed level, trajectory and percentile), leverage stress (derivatives-risk-index percentile), liquidity (7d spot-ETF net flows vs prior 7d), and rotation (Altcoin Season index, BTC dominance, ETH/BTC 30d). Each axis reports its state, the numbers behind it, and a +1/0/-1 vote; the overall posture is the disclosed sum-of-votes rule, with one exception — while 30d realized volatility sits at or below its 5th percentile the tape is compressed, trend structure stops being tradeable, and the Trend axis's vote is withheld (its reading is still reported). Compression is flagged structurally, and adds an informational, never-voting asymmetry lean naming which side is more exposed. Includes explicit 'would change the call' thresholds to watch. Rule-based and deterministic — same inputs, same read. Useful as a first call: most other signals (funding, sentiment, flows) read differently depending on this regime.
Parameters
None — call it with empty arguments.
Call it
One API key works for MCP, REST and WebSocket; each call uses one unit. Agents without an account can pay per call with x402.
curl "https://mcp.f1ow.com/v1/research/regime" \
-H "Authorization: Bearer $F1OW_API_KEY"{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "research_regime",
"arguments": {}
}
}const res = await fetch("https://mcp.f1ow.com/v1/research/regime", {
headers: { Authorization: `Bearer ${process.env.F1OW_API_KEY}` },
});
const data = await res.json(); // the tool's result as JSON, typed in the OpenAPI spec
console.log(data);import os, requests
res = requests.get(
"https://mcp.f1ow.com/v1/research/regime",
headers={"Authorization": f"Bearer {os.environ['F1OW_API_KEY']}"},
)
data = res.json() # the tool's result as JSON, typed in the OpenAPI spec
print(data)// wss://mcp.f1ow.com/v1/ws — subprotocol "jsonrpc-2.0", Authorization: Bearer <key>
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "research_regime",
"arguments": {}
}
}
// Or push a fresh result whenever it changes (minimum interval 15 s)
{
"jsonrpc": "2.0",
"id": 2,
"method": "subscriptions/subscribe",
"params": {
"name": "research_regime",
"arguments": {},
"intervalSeconds": 60
}
}# No account: the first call answers 402 with a PAYMENT-REQUIRED challenge;
# an x402 client pays it in USDC on Base and retries.
curl "https://mcp.f1ow.com/x402/v1/research/regime"Sample response
A real response captured 2026-11-13. JSON is what REST and WebSocket return, and the structuredContent of an MCP call (trimmed for length), with generatedAt for freshness. Text is the report an MCP client hands to a model.
=== Market Regime — 2026-11-13 08:05 UTC ===
Posture: NEUTRAL (vote score +0 across 6 axes)
Rule: posture = sum of axis votes (+1 supportive / 0 neutral / -1 against): >= +3 RISK-ON, +1..+2 CAUTIOUS RISK-ON, 0 NEUTRAL, -1..-2 DEFENSIVE, <= -3 RISK-OFF. Exception: while 30d realized volatility sits at or below its 5th percentile the tape is compressed and the Trend axis contributes 0 whatever its state — its reading is still reported, only its claim on the posture is withdrawn. The Asymmetry line, when present, never votes.
Trend BEAR/NEUTRAL Mayer 0.94 | 46th pct | 2d in band | 200d SMA $73069
Volatility NORMAL 30d realized 38% ann. | 42th pct vs own history
Cycle NO TOP SIGNALS 0/30 top indicators hit | MVRV-Z 0.67 | NUPL 24.5% | AHR999 0.39 (DCA band <0.45)
Sentiment EXTREME FEAR F&G 21, falling vs 30d mean 44 | 14th pct vs full history
Liquidity OUTFLOWS ETF net flows 7d $-1411M (prior 7d $-717M)
Rotation MIXED Altseason 47/100 | BTC dominance 59.6% | ETH/BTC -4.9% 30d
Would change the call:
- BTC daily close above ~$73069 (its 200d SMA, Mayer > 1.0) flips Trend bullish
- 5+/30 checklist indicators hit -> euphoria (now 0)
- F&G >= 75 -> extreme greed / crowding flag (now 21)
- 7d ETF net flows turning positive -> improving (now $-1411M)
Inputs: 6/7 axes computed
Implied vol (Deribit options; informational, no vote):
BTC DVOL 39.2 (38th pct 1y, -0.8 vs prior day) | ATM IV 7d 38.9 / 30d 37.9 (term FLAT) | 30d realized 36.0 → premium +2.0 pts | 25Δ RR 30d -4.1 (PUTS OVER CALLS)
ETH DVOL 55.6 (46th pct 1y, -0.5 vs prior day) | ATM IV 7d 52.3 / 30d 52.7 (term FLAT) | 30d realized 49.2 → premium +3.5 pts | 25Δ RR 30d -4.9 (PUTS OVER CALLS)
Options regime (modeled, dealers long calls / short puts; informational, no vote):
BTC options regime: NEGATIVE MODELED GAMMA | flip $76832.51 (+12.0%)
ETH options regime: NEGATIVE MODELED GAMMA | flip $2117.59 (+9.5%){
"axes": [
{
"detail": "Mayer 0.94 | 46th pct | 2d in band | 200d SMA $73069",
"name": "Trend",
"state": "BEAR/NEUTRAL",
"vote": -1
},
{
"detail": "30d realized 38% ann. | 42th pct vs own history",
"name": "Volatility",
"state": "NORMAL",
"vote": 0
},
{
"detail": "0/30 top indicators hit | MVRV-Z 0.67 | NUPL 24.5% | AHR999 0.39 (DCA band <0.45)",
"name": "Cycle",
"state": "NO TOP SIGNALS",
"vote": 1
},
{
"detail": "F&G 21, falling vs 30d mean 44 | 14th pct vs full history",
"name": "Sentiment",
"state": "EXTREME FEAR",
"vote": 1
},
{
"detail": "ETF net flows 7d $-1411M (prior 7d $-717M)",
"name": "Liquidity",
"state": "OUTFLOWS",
"vote": -1
},
{
"detail": "Altseason 47/100 | BTC dominance 59.6% | ETH/BTC -4.9% 30d",
"name": "Rotation",
"state": "MIXED",
"vote": 0
}
],
"axesComputed": 6,
"axesTotal": 7,
"compressed": false,
"posture": "NEUTRAL (vote score +0 across 6 axes)",
"postureRule": "posture = sum of axis votes (+1 supportive / 0 neutral / -1 against): >= +3 RISK-ON, +1..+2 CAUTIOUS RISK-ON, 0 NEUTRAL, -1..-2 DEFENSIVE, <= -3 RISK-OFF. Exception: while 30d realized volatility sits at or below its 5th percentile the tape is compressed and the Trend axis contributes 0 whatever its state — its reading is still reported, only its claim on the posture is withdrawn. The Asymmetry li…",
"volatilityPercentile": 42.2972972972973,
"wouldChange": [
"BTC daily close above ~$73069 (its 200d SMA, Mayer > 1.0) flips Trend bullish",
"5+/30 checklist indicators hit -> euphoria (now 0)",
"F&G >= 75 -> extreme greed / crowding flag (now 21)",
"7d ETF net flows turning positive -> improving (now $-1411M)"
],
"options": {
"btc": {
"atmIv": {
"d30": 37.9250638590136,
"d7": 38.9431753506621,
"d90": 39.2867546169742,
"source": "calculated"
},
"changes": [],
"dvol": {
"at": "2026-11-13T00:00:00Z",
"changeVsPriorDay": -0.840000000000003,
"days": 367,
"percentile": 38.0108991825613,
"source": "reported",
"value": 39.23
},
"expiries": [
{
"atmIv": 37.3112471223181,
"butterfly25": 0.731392513546965,
"days": 1.99615429398148,
"expiry": "2026-11-15T08:00:00Z",
"forwardUsd": 68622.4,
"riskReversal25": -6.85588547243289
},
{
"atmIv": 36.0167155269591,
"butterfly25": 0.905839276842123,
"days": 2.99615429398148,
"expiry": "2026-11-16T08:00:00Z",
"forwardUsd": 68627.07,
"riskReversal25": -5.47453702828677
},
{
"atmIv": 38.5788987608621,
"butterfly25": 0.458165640004495,
"days": 3.99615429398148,
"expiry": "2026-11-17T08:00:00Z",
"forwardUsd": 68634.6425,
"riskReversal25": -4.86940292993656
},
{
"atmIv": 38.9446513215503,
"butterfly25": 0.656100437715786,
"days": 6.99615429398148,
"expiry": "2026-11-20T08:00:00Z",
"forwardUsd": 68670.3,
"riskReversal25": -5.30908746486656
},
{
"atmIv": 37.5770034274295,
"butterfly25": 0.437361134222506,
"days": 13.9961542939815,
"expiry": "2026-11-27T08:00:00Z",
"forwardUsd": 68764.16,
"riskReversal25": -5.19406395577422
},
{
"atmIv": 37.2297708474289,
"butterfly25": 0.664317130408243,
"days": 20.9961542939815,
"expiry": "2026-12-04T08:00:00Z",
"forwardUsd": 68826.94,
"riskReversal25": -4.20658631115766
},
"… 5 more"
],
"impliedMovePct": [
{
"days": 1,
"extrapolated": true,
"pct": 1.95295993254966
},
{
"days": 7,
"extrapolated": false,
"pct": 5.39304380590935
},
{
"days": 30,
"extrapolated": false,
"pct": 10.8727778786336
}
],
"indexPriceUsd": 68625.86,
"meta": {
"ageSeconds": 33,
"observedAt": "2026-11-13T08:05:16Z",
"provider": "Deribit",
"underlying": "BTC"
},
"notes": [],
"realized30d": 35.9570037879743,
"riskReversal25At30d": -4.13282585233276,
"skewState": "PUTS OVER CALLS",
"spotVolCorrelation90d": 0.176970695802054,
"termSlope7dMinus30d": 1.01811149164851,
"termState": "FLAT",
"volPremium": 1.96806007103923
},
"eth": {
"atmIv": {
"d30": 52.7173001866854,
"d7": 52.2866564802324,
"d90": 53.435695505224,
"source": "calculated"
},
"changes": [],
"dvol": {
"at": "2026-11-13T00:00:00Z",
"changeVsPriorDay": -0.469999999999999,
"days": 367,
"percentile": 45.5040871934605,
"source": "reported",
"value": 55.59
},
"expiries": [
{
"atmIv": 50.9143658402151,
"butterfly25": 2.70358457921742,
"days": 1.99615429398148,
"expiry": "2026-11-15T08:00:00Z",
"forwardUsd": 1933.93,
"riskReversal25": -10.5235379490087
},
{
"atmIv": 49.1492740034777,
"butterfly25": 2.78368691655798,
"days": 2.99615429398148,
"expiry": "2026-11-16T08:00:00Z",
"forwardUsd": 1934.24,
"riskReversal25": -8.54151812033916
},
{
"atmIv": 51.9307036114637,
"butterfly25": 2.12864838929615,
"days": 3.99615429398148,
"expiry": "2026-11-17T08:00:00Z",
"forwardUsd": 1934.4,
"riskReversal25": -6.95085974135543
},
{
"atmIv": 52.2871995806904,
"butterfly25": 2.242518885231,
"days": 6.99615429398148,
"expiry": "2026-11-20T08:00:00Z",
"forwardUsd": 1935.39,
"riskReversal25": -7.04852830527137
},
{
"atmIv": 51.7904274928138,
"butterfly25": 1.64938829602769,
"days": 13.9961542939815,
"expiry": "2026-11-27T08:00:00Z",
"forwardUsd": 1936.91,
"riskReversal25": -6.11687103522829
},
{
"atmIv": 52.0120351604716,
"butterfly25": 1.61857190991675,
"days": 20.9961542939815,
"expiry": "2026-12-04T08:00:00Z",
"forwardUsd": 1938.44,
"riskReversal25": -5.2072832417525
},
"… 5 more"
],
"impliedMovePct": [
{
"days": 1,
"extrapolated": true,
"pct": 2.66497970842786
},
{
"days": 7,
"extrapolated": false,
"pct": 7.24091516224122
},
{
"days": 30,
"extrapolated": false,
"pct": 15.1135802281543
}
],
"indexPriceUsd": 1934.47,
"meta": {
"ageSeconds": 33,
"observedAt": "2026-11-13T08:05:16Z",
"provider": "Deribit",
"underlying": "ETH"
},
"notes": [],
"realized30d": 49.1906745017028,
"riskReversal25At30d": -4.87054899735999,
"skewState": "PUTS OVER CALLS",
"spotVolCorrelation90d": 0.131794804261301,
"termSlope7dMinus30d": -0.430643706452983,
"termState": "FLAT",
"volPremium": 3.52662568498258
},
"impliedBidWhileCompressed": false,
"informational": true,
"gamma": {
"btc": {
"flips": [
76832.5074174907
],
"gammaState": "NEGATIVE MODELED GAMMA",
"grossUsdPer1Pct": 329834819.687822,
"largestGammaStrikes": [
70000,
72000,
80000
],
"observed": false,
"regime": [
"NEGATIVE MODELED GAMMA"
],
"scenario": "calls_long_puts_short",
"signedUsdPer1Pct": -176374379.632186,
"spotUsd": 68625.86
},
"eth": {
"flips": [
2117.59300503454
],
"gammaState": "NEGATIVE MODELED GAMMA",
"grossUsdPer1Pct": 34559682.1322987,
"largestGammaStrikes": [
1900,
1800,
2200
],
"observed": false,
"regime": [
"NEGATIVE MODELED GAMMA"
],
"scenario": "calls_long_puts_short",
"signedUsdPer1Pct": -13365053.0517942,
"spotUsd": 1934.47
}
}
},
"generatedAt": "2026-11-13T08:05:50.0786749+00:00"
}Related tools
research_positioningWho is on the other side of your trade. Up to eight reads on one coin — who is crowded, who is fragile, who is trapped — plus the price levels the whole board is watching.
research_opportunitiesA liquidity-qualified major and mid-cap universe screened on crowding, stress, leverage, compression, trend, location and entry quality. Ranked candidates with disclosed setup rules and entry, stop and target geometry — not a forecast or a proven edge.
research_trade_planCheck your entry, stop and target against ATR, perp levels, liquidation distance, fees, slippage and funding. Add account size and risk for sizing, or a placement time to replay a trade from public candles. An interactive ticket in MCP Apps hosts; no orders placed or plans stored.
research_token_viewOne coin, fully assembled. Market data, technicals, on-chain, cited narrative synthesis, catalysts, social, ETF flows and prediction odds — the entire dossier from a single call.
Call Market Regime from your agent
Sign in, get an API key and make your first call in under a minute. No card required.
For agents: this page as Markdown · all docs