PluginBench
Skill
Review
Audit score 70

crypto-regime-analyzer

tradermonty/claude-trading-skills

Quantify crypto market regime health (0-100 risk-on score) using free public data—no API key required.

What is crypto-regime-analyzer?

Analyzes crypto market conditions across 6 components (BTC trend, alt breadth, dominance, funding rates, drawdown, momentum) to generate a composite 0-100 score and posture recommendation. Use this before making crypto allocation decisions or when asked about market regime, alt season, or funding rate health.

  • Scores crypto market regime on a 0-100 scale (100 = risk-on) using CoinGecko and Binance public data
  • Evaluates 6 weighted components: BTC trend structure, alt breadth participation, BTC dominance direction, perpetual funding crowding, drawdown position, and momentum thrust
  • Generates machine-readable JSON and one-page markdown report with per-component breakdowns and confidence flags
  • Operates in live mode (fetches fresh data with caching) or offline mode (snapshot-based analysis)
  • Gracefully handles missing data by redistributing component weights proportionally
  • Provides zone classification (RISK_ON 80-100, NEUTRAL 40-79, RISK_OFF 0-39) with posture guidance

How to install crypto-regime-analyzer

npx skills add https://github.com/tradermonty/claude-trading-skills --skill crypto-regime-analyzer
Prerequisites
  • Python 3.9 or later with requests library (live mode only; offline mode uses stdlib only)
  • Internet access to api.coingecko.com and fapi.binance.com for live data fetching
  • No API keys required
Claude Code
Cursor
Windsurf
Cline

How to use crypto-regime-analyzer

  1. 1.Run the analysis script in live mode: `python3 skills/crypto-regime-analyzer/scripts/crypto_regime_analyzer.py --output-dir reports/<date>` (first run ~2-4 min due to rate limits; cached re-runs are instant)
  2. 2.Review the one-line console summary and the generated crypto_regime.md report for zone, posture, and per-component signals
  3. 3.Check the crypto_regime.json machine-readable output for component-level detail and data_available flags
  4. 4.Interpret the score using the zone bands: 80-100 (risk-on), 40-79 (neutral), 0-39 (risk-off)
  5. 5.Use the posture recommendation and component signals as context for downstream allocation or screening decisions (not as standalone trade signals)

Use cases

Good for
  • Daily crypto regime check: run before reviewing individual coin opportunities to establish market context
  • Alt season assessment: determine whether broad altcoin participation is healthy or concentrated
  • Funding rate health check: identify when perpetual leverage is overheated or capitulating
  • Exposure posture decision: use regime score as one input to crypto sleeve sizing before screening coins
  • Workflow integration: feed JSON output into downstream exposure-coach or portfolio-review processes
Who it's for
  • Crypto traders and portfolio managers evaluating market-wide conditions before position decisions
  • Quantitative analysts building multi-asset regime workflows that include crypto
  • Risk managers assessing crypto market stress and leverage crowding
  • Agents and workflows that need regime context before coin-level screening

crypto-regime-analyzer FAQ

Do I need API keys to use this skill?

No. The skill uses CoinGecko's free public API and Binance's public futures endpoint; no authentication required.

How long does the analysis take?

First run of the day takes ~2-4 minutes due to free-tier rate-limit throttling. Same-day re-runs hit the cache and complete instantly.

What does the 0-100 score mean?

100 = maximum risk-on conditions (broad participation, healthy trend, sane leverage). 0 = critical risk-off. The score is descriptive of market regime, not a buy/sell signal.

What if some data sources are unavailable?

Missing components have their weight redistributed proportionally. The script reports data_available: false for any skipped components and continues gracefully.

Can I use this offline?

Yes. Pass a snapshot JSON file with `--input-json snapshot.json` to analyze without network access. See the methodology reference for the snapshot schema.

Full instructions (SKILL.md)

Source of truth, from tradermonty/claude-trading-skills.


name: crypto-regime-analyzer description: Quantifies crypto market regime health using free, keyless public data (CoinGecko + Binance funding). Generates a 0-100 composite score across 6 components (100 = risk-on) with a posture recommendation. No API key required. Use when user asks about crypto market conditions, whether it's alt season, BTC dominance, crypto risk-on vs risk-off, funding rates, or whether crypto exposure should be increased or reduced.

Crypto Regime Analyzer Skill

Purpose

Quantify the crypto market regime using a data-driven 6-component scoring system (0-100). This is the crypto analog of market-breadth-analyzer + exposure-coach: it answers "what posture does the crypto market currently support?" before any coin-level analysis happens.

Score direction: 100 = Maximum risk-on health (broad participation, healthy trend, sane leverage), 0 = Critical risk-off.

No API key required — uses CoinGecko's free public API and Binance's public futures endpoint.

When to Use This Skill

  • User asks "Is crypto risk-on or risk-off right now?" or "How healthy is the crypto market?"
  • User asks "Is it alt season?" or about BTC dominance direction
  • User asks whether funding rates are overheated
  • User wants an exposure posture for a crypto sleeve before screening individual coins
  • User wants a daily crypto regime check alongside the equity market-regime-daily workflow

What This Skill Does NOT Do

  • No coin picks, no buy/sell signals, no price targets
  • No execution or portfolio changes — regime description only
  • Human decision gates remain central, consistent with the project vision

Prerequisites

  • Python 3.9+ with requests (live mode only; offline mode is stdlib-only)
  • Internet access to api.coingecko.com and fapi.binance.com (live mode)
  • No API keys required

Component Model

#ComponentWeightQuestion it answers
1BTC Trend Structure25%Is the reserve asset's primary trend intact? (price vs 50/200DMA stack, 200DMA slope)
2Alt Breadth Participation20%How broadly are alts participating? (% of top-N above 200DMA, 50DMA confirmation)
3BTC Dominance Regime15%Where is capital rotating? (dominance direction interpreted jointly with BTC trend)
4Perpetual Funding Regime15%How crowded is leverage? (avg funding across majors; contrarian at extremes)
5Drawdown & Volatility Position15%Where are we in the cycle? (drawdown from 1y high, realized vol percentile)
6Momentum Thrust / Washout10%Short-horizon confirmation (% of universe positive over 30d)

Missing components have their weight proportionally redistributed (same convention as market-breadth-analyzer). Full scoring logic: references/crypto_regime_methodology.md.

Regime Zones

ScoreZonePosture
80-100RISK_ONBroad risk-on conditions observed; review risk limits before decisions
40-79NEUTRALMixed conditions observed; no strong regime conclusion
0-39RISK_OFFDefensive market conditions observed; review existing risk controls

These are heuristic descriptive bands, not validated allocation rules. See references/VALIDATION.md for the current evidence boundary and the artifacts required before making quantitative performance claims.


Execution Workflow

Phase 1: Run the Analysis Script

Live mode (fetches CoinGecko + Binance; first run of the day takes ~2-4 minutes at the default --top-n 20 due to free-tier rate-limit throttling; same-day re-runs hit the cache and are instant):

mkdir -p reports/<routine-or-date>
python3 skills/crypto-regime-analyzer/scripts/crypto_regime_analyzer.py \
  --output-dir reports/<routine-or-date>

Offline mode (no network; snapshot schema in the methodology reference):

python3 skills/crypto-regime-analyzer/scripts/crypto_regime_analyzer.py \
  --input-json snapshot.json \
  --output-dir reports/<routine-or-date>

Options: --top-n <int> universe size (default 20), --cache-dir <path> fetch cache location (default .crypto_regime_cache), --quiet.

Phase 2: Interpret the Output

The script writes crypto_regime.json (machine-readable, for chaining into other skills) and crypto_regime.md (one-page report), and prints a one-line summary:

CRYPTO REGIME: NEUTRAL (score 68.4/100) — Mixed conditions observed; no strong regime conclusion

When presenting results, lead with the zone and posture, then explain the 1-2 components most responsible for the score using their signal strings. Flag any components reporting data_available: false and what that means for confidence.

Phase 3 (optional): Feed Downstream

The JSON composite can slot into an exposure-coach-style posture summary as one descriptive crypto-market input. It must not independently authorize, block, size, or execute a trade.

Output

The script writes two artifacts to --output-dir and prints a one-line summary for workflow chaining:

  • crypto_regime.json — full machine-readable analysis: metadata, per-component results (score, signal, data_available, component-specific fields), and the composite block (score, zone, guidance, effective_weights).
  • crypto_regime.md — one-page report: composite score with zone bar, posture line, per-component table (weight / score / signal), and confidence notes.
  • Console: CRYPTO REGIME: <ZONE> (score <N>/100) — <posture> plus warnings for any skipped components.

Resources

  • references/VALIDATION.md — validation status, evidence boundary, and reproduction requirements.
  • references/crypto_regime_methodology.md — full scoring rationale, every threshold table, the offline snapshot JSON schema, and the live data-source endpoint list.
  • scripts/crypto_regime_analyzer.py — CLI orchestrator (entry point).
  • scripts/data_client.py — CoinGecko/Binance fetchers, per-day cache, dominance history accumulator, offline loader.
  • scripts/calculators/ — one module per component; pure functions, fully unit-tested.
  • scripts/scorer.py — weighted composite with proportional weight redistribution.
  • scripts/tests/ — tests covering every component, the scorer, sparse-data fail-closed behavior, and end-to-end bull/bear/degraded snapshots.

Known Limitations

  • Dominance history accumulates locally. CoinGecko's free tier only exposes current dominance, so the client stores one observation per run-day in the cache dir. The dominance component reports data_available: false until 31 daily observations exist (weight is redistributed until then). Seed it faster via --input-json.
  • Funding is best-effort. If Binance's endpoint is unreachable (geo-restrictions, outage), the component is skipped gracefully.
  • Universe is top-N by market cap with stablecoins and wrapped/staked assets excluded; it is not a fixed index, so composition drifts with the market.
  • Thresholds are heuristic and documented in the methodology reference; they are conservative defaults, not backtested optima.

Disclaimer

Educational and process-improvement use only. This skill describes market conditions; it does not provide financial advice, signals, or buy/sell instructions. All decisions remain the user's responsibility.