Market Regime Oracle
Classifies BTC market into 5 regimes (Risk-On, Range-Bound, Risk-Off, Capitulation, Euphoria) with target exposure and posture, enabling risk management decisions.
README
<div align="center">
š Market Regime Oracle
A 5-signal ā 5-state BTC market-regime classifier with posture mapping, backtested vs buy-and-hold.
Fuses momentum, sentiment, volatility, funding & flow into one explainable regime ā and a documented risk posture per regime.
</div>
What It Does
Ask "What kind of BTC market is this, and how much risk should I take?"
The oracle answers with one of 5 regimes + a documented posture:
| Regime | Target Exposure | Posture |
|---|---|---|
š¢ RISK_ON |
100% | Uptrend ā full exposure |
š” RANGE_BOUND |
40% | Sideways ā light exposure |
šµ RISK_OFF |
20% | Downtrend ā defensive |
š“ CAPITULATION |
10% | Panic ā max defensive |
š£ EUPHORIA |
30% | Blow-off ā take profit |
Built as an MCP Strategy Skill for the CoinMarketCap Agent Hub (BNB AI Trading ā Track 2). Any MCP-compatible client (Claude Desktop, Cursor, CMC Agent Hub) calls get_market_regime to get a deterministic, no-look-ahead risk posture.
š Headline Result
In a down year for BTC (ā37%), the regime strategy did ā12.7% ā halving drawdown (ā24% vs ā51%) and halving volatility (19% vs 43%), outperforming buy-and-hold by ~25 points while still going long in uptrends.
| Metric | Regime Strategy | Buy & Hold |
|---|---|---|
| Total return | ā12.7% | ā37.4% |
| Max drawdown | ā24.2% | ā51.2% |
| Annualized volatility | 19.3% | 43.1% |
| Sharpe (rf 4%) | ā0.82 | ā0.97 |
| Sortino | ā1.01 | ā1.32 |
Data: CoinGecko BTC daily (2025-06-19 ā 2026-06-17, 364 days). Start $10,000. 10 bps/turnover cost.
š¼ļø Visual Results
Equity Curve ā Regime Strategy vs Buy & Hold
<img src="results/equity_curve.png" alt="Equity curve" width="760">
Drawdown ā Strategy Stays Shallower
<img src="results/drawdown.png" alt="Drawdown" width="760">
BTC Price with Regime Overlay
<img src="results/regime_overlay.png" alt="Regime overlay" width="760">
Regime Distribution & Target Exposure
<img src="results/regime_summary.png" alt="Regime summary" width="760">
šļø Architecture
CoinGecko (BTC OHLCV) alternative.me (Fear & Greed)
ā ā
āāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāā
ā¼
āāāāāāāāāāāāāāāāāāāāāāā
ā data/loader.py ā aligned daily features
āāāāāāāāāāā¬āāāāāāāāāāāā
ā¼
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā 5 independent signal modules ā each ā score in [-1, +1]
ā momentum(0.30) fear_greed(0.25) ā
ā funding(0.15) flows(0.15) vol(0.15) ā
āāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāā
ā¼ weighted fusion
composite score
ā¼ priority rules
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā 5-state regime classifier ā CAPITULATION > EUPHORIA >
ā (deterministic, no look-ahead) ā RISK_OFF > RISK_ON >
āāāāāāāāāāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāāāāā > RANGE_BOUND
ā¼
target exposure + action
āāāāāāāāāāāāāāāāā“āāāāāāāāāāāāāāāā
ā¼ ā¼
vectorized backtest MCP tool: get_market_regime
(no look-ahead, w/ costs) (stdio, Agent Hub skill)
š§© The 5 Signals
| Signal | Source | Weight |
|---|---|---|
| RSI / MACD momentum | CoinGecko price | 0.30 |
| Fear & Greed Index | alternative.me | 0.25 |
| Volatility regime | CoinGecko price | 0.15 |
| Funding rate proxy | derived from price | 0.15 |
| Exchange flow proxy | derived from volume | 0.15 |
Each signal outputs a normalized bullishness score in [-1, +1]. All 5 are independently unit-tested.
Transparency: Funding rate and exchange flows have no free public feed. We reconstruct them from price/volume data as clearly-labeled proxies. Drop in real feeds anytime ā the fusion layer is signal-agnostic.
š Quick Start
git clone https://github.com/aggreyeric/bnb-market-regime-oracle.git
cd bnb-market-regime-oracle
pip install -r requirements.txt
# Run full pipeline: fetch ā classify ā backtest ā charts
python main.py
# Run tests (offline, no network needed)
PYTHONPATH=src python -m pytest tests/
# Run as MCP server
PYTHONPATH=src python -m market_regime_oracle.mcp_server
# Live MCP demo (30 seconds)
./scripts/demo.sh
Docker
docker compose up --build run # full pipeline
docker compose up --build server # MCP server
š Project Layout
market_regime_oracle/
āāā src/market_regime_oracle/
ā āāā data/ # CoinGecko + alternative.me loaders
ā āāā signals/ # 5 signal modules (unit-tested)
ā āāā classifier/ # fusion ā regime mapping
ā āāā backtest/ # vectorized engine, no look-ahead
ā āāā viz/ # equity/drawdown/regime charts
ā āāā mcp_server.py # MCP stdio server
āāā tests/ # 24/24 passing
āāā results/ # CSVs, metrics.json, PNG charts
āāā scripts/demo.sh # live MCP round-trip
āāā Dockerfile
āāā docker-compose.yml
āāā README.md
š Data Sources
- CoinGecko v3 free API ā BTC daily close + volume
- alternative.me ā Fear & Greed Index
Both public, both free. No API keys required.
š License
MIT Ā© 2026
š¤ AI Assistants
ā See CLAUDE.md for AI coding assistant context.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.