Freqtrade Integration

Add regime awareness to your Freqtrade bot in 3 minutes. Your bot pauses in hostile regimes, trades in favorable ones.

Skip the copy-paste: grab the complete, runs-out-of-the-box RegimeFilterStrategy — cache, fail-mode switch, confidence gate, all wired. Free

⬇ Get the free strategy file

Easiest: the official Python package pip

Install the zero-dependency getregime client from PyPI — no boilerplate, drops straight into your Freqtrade environment:

# one dependency-free package — works on the free tier
pip install getregime
from getregime import RegimeClient

regime = RegimeClient(api_key="your_key").freqtrade_regime()

if regime.is_bull:       # only go long in a bull regime
    ...
# regime.regime / .confidence / .action / .is_bear / .is_chop

A complete, runnable strategy ships in the package — see the PyPI page (examples/freqtrade_strategy.py). Prefer raw requests? The manual setup is below.

Manual setup (no package)

1

Get your API key Free

Register at getregime.com. Free tier works for polling (delayed 15 min). Pro gives real-time data.

2

Add the regime filter to your strategy

Create regime_filter.py in your Freqtrade user_data folder:

# regime_filter.py — Regime Guard integration for Freqtrade
import requests
import time

class RegimeFilter:
    """Pauses your bot when market regime is hostile."""

    REGIME_URL = "https://getregime.com/api/v1/freqtrade/regime"
    _cache = None
    _cache_ts = 0
    CACHE_TTL = 300  # 5 min cache

    def get_regime(self):
        if time.time() - self._cache_ts < self.CACHE_TTL and self._cache:
            return self._cache
        try:
            r = requests.get(self.REGIME_URL, headers={
                "Authorization": f"Bearer {self.config.get('regime_api_key', '')}"
            }, timeout=5)
            self._cache = r.json()
            self._cache_ts = time.time()
            return self._cache
        except:
            return self._cache or {"action": "hold"}

    def confirm_trade_entry(self, pair, order_type, amount, rate, time_in_force, current_time, entry_tag, side, **kwargs):
        regime = self.get_regime()
        action = regime.get("action", "hold")

        # Block new entries in hostile regimes
        if action == "exit_or_hedge":
            return False  # Bear market — don't enter
        if action == "reduce_position":
            return True   # Chop — allow but consider half size

        return True  # Bull — full send
3

Mix into your strategy

Add RegimeFilter as a mixin to your strategy class:

from regime_filter import RegimeFilter

class MyStrategy(IStrategy, RegimeFilter):
    # Your existing strategy code stays the same.
    # RegimeFilter.confirm_trade_entry() automatically blocks
    # entries in bear markets and warns in chop.
    pass

API Response

GET /api/v1/freqtrade/regime returns:

{
  "regime": "bear",
  "confidence": 0.95,
  "action": "exit_or_hedge",
  "fear_greed": 11,
  "btc_price": 70515.00,
  "updated_at": "2026-03-24T12:00:00Z"
}
regime
bull, bear, or chop
confidence
0.0-1.0 (10 independent signals)
action
full_position, reduce_position, or exit_or_hedge
fear_greed
0-100 Fear & Greed Index
btc_price
Current BTC price

Pricing

Free tier works for testing (15-min delayed, 500 calls/day). Pro ($49/mo) gives real-time data + regime shift alerts. Poll every 5 minutes and you'll use ~288 calls/day.

Works With

This endpoint works with any bot framework that can make HTTP requests: Freqtrade, 3Commas (via webhook), Jesse, Hummingbot, or your custom Python/Node.js bot.

⬇ Free Strategy File Get Free API Key Get Pro — $49/mo Full API Docs