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
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.
Register at getregime.com. Free tier works for polling (delayed 15 min). Pro gives real-time data.
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
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
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"
}
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.
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.