Hummingbot 2026: The Open-Source Crypto Trading Bot Running 50+ Exchange Connectors — Setup & Strategy Guide

A hands-on guide to deploying Hummingbot v2, the open-source crypto trading bot with 50+ exchange connectors. Covers Docker setup, custom strategies, backtesting, DEX gateway, and production hardening.

  • ⭐ 10500
  • Apache-2.0
  • Updated 2026-05-19

{{< resource-info >}}

Introduction: Why Most Trading Bots Fail #

Every crypto trader has been there — you spot an arbitrage opportunity between Binance and Coinbase, but by the time you manually transfer funds and execute both legs, the spread has evaporated. Or worse: you pay for a “proprietary” black-box bot, only to discover it is a rebranded open-source project with a 20x markup and zero support.

Here is the reality check. According to a 2025 survey of 2,400 quantitative crypto traders, 73% abandoned at least one commercial trading bot within six months, citing opaque pricing and lack of strategy customization as the top two reasons. The remaining 27%? Most of them moved to open-source alternatives.

Enter Hummingbot — the Apache-2.0 licensed algorithmic trading framework that powers over 10,500 GitHub stars and connects to 50+ exchanges including Binance, Coinbase, Kraken, and decentralized protocols through a unified gateway. In this guide, you will go from zero to a running market-making bot in under five minutes, then scale to production-grade strategies.

Affiliate Note: This guide uses exchange affiliate links. Register on Binance or OKX to support the project at no extra cost. For AI-enhanced trading, check Minara.

What Is Hummingbot? #

Hummingbot is an open-source framework for building and running automated crypto trading strategies. Originally launched in 2019 by CoinAlpha, it has evolved into a community-maintained powerhouse that supports:

  • Centralized exchanges (CEX): Binance, Coinbase, Kraken, KuCoin, Gate.io, Bybit, and 40+ more
  • Decentralized exchanges (DEX): Uniswap, PancakeSwap, TraderJoe, and others via Hummingbot Gateway
  • Strategy types: Market making, arbitrage, cross-exchange market making, perpetual futures, and custom scripts
  • Deployment modes: Docker containers, source installation, and cloud VPS

The latest v2.0 release (March 2026) introduces a modular architecture with pluggable connectors, unified portfolio management, and improved backtesting capabilities.

How Hummingbot Works: Architecture Overview #

Hummingbot’s architecture follows a clean separation of concerns:

┌─────────────────────────────────────────────────────┐
│                   Strategy Layer                     │
│  (Pure Market Making / Arbitrage / Custom Scripts)  │
├─────────────────────────────────────────────────────┤
│                   Connector Layer                    │
│  (Binance / Coinbase / Kraken / Gateway / ...)     │
├─────────────────────────────────────────────────────┤
│                   Core Engine                        │
│  (Order Management / Portfolio / Event Loop)       │
├─────────────────────────────────────────────────────┤
│                   Infrastructure                     │
│  (Docker / Config / Logs / SQLite Database)        │
└─────────────────────────────────────────────────────┘

The core loop works as follows:

  1. The Strategy defines order parameters (spread, inventory skew, refresh time)
  2. The Connector normalizes exchange-specific APIs into a unified interface
  3. The Engine manages order lifecycle, tracks fills, and handles errors
  4. The Database persists trades, balances, and strategy state

Hummingbot Gateway deserves special mention. It is a separate Node.js service that bridges Hummingbot to EVM-compatible DEXes. When you trade on Uniswap, Hummingbot sends commands to Gateway, which constructs and submits blockchain transactions via your wallet (e.g., MetaMask).

Installation & Setup: 5-Minute Quick Start #

Prerequisites #

  • Docker Engine 24.0+ or Docker Desktop
  • A funded exchange account (Binance recommended for beginners)
  • API key with trading permissions

Step 1: Pull and Run Hummingbot #

# Create a directory for Hummingbot files
mkdir -p hummingbot_files/hummingbot_conf
mkdir -p hummingbot_files/hummingbot_logs
mkdir -p hummingbot_files/hummingbot_data

# Pull the latest Docker image
docker pull hummingbot/hummingbot:latest

# Run Hummingbot in interactive mode
docker run -it --name hummingbot \
  --mount "type=bind,source=$(pwd)/hummingbot_files/hummingbot_conf,destination=/conf" \
  --mount "type=bind,source=$(pwd)/hummingbot_files/hummingbot_logs,destination=/logs" \
  --mount "type=bind,source=$(pwd)/hummingbot_files/hummingbot_data,destination=/data" \
  hummingbot/hummingbot:latest

After the container starts, you will see the Hummingbot CLI:

    ╔═╗┬ ┬┌┬┐┌┬┐┌┬┐┌─┐┌─┐┌┐┌
    ╠╣ │ │ │  │ │ │ │ │├┤ │││
    ╚  └─┘ ┴  ┴ ┴ ┴ └─┘└─┘┘└┘
    Version: 2.0.0
    
    Enter "config" to configure a strategy
    Enter "start" to start the current strategy
    
    >>>

Step 2: Connect Your Exchange #

# Inside Hummingbot CLI
>>> connect binance

# Enter your API key
Enter your Binance API key >>> YOUR_API_KEY

# Enter your API secret
Enter your Binance API secret >>> YOUR_API_SECRET

# Verify the connection
>>> balance
Updating balances, please wait...

 binance:
     asset    amount
     USDT     1,234.56
     BTC      0.0234
     ETH      1.5678

Step 3: Configure Pure Market Making Strategy #

# Create a new strategy configuration
>>> create

# Select strategy
What is your market making strategy? (pure_market_making/cross_exchange_market_making/arbitrage) >>> pure_market_making

# Select trading pair
Enter the token trading pair you would like to trade on binance (e.g., BTC-USDT) >>> BTC-USDT

# Set bid/ask spread (0.5%)
What is the bid spread? (Enter 0.01 for 1%) >>> 0.005
What is the ask spread? (Enter 0.01 for 1%) >>> 0.005

# Set order refresh time
How often do you want to cancel and replace orders (in seconds)? >>> 30

# Set order amount
What is the amount of BTC per order? >>> 0.001

Step 4: Start Trading #

# Confirm configuration
>>> config

# Start the strategy
>>> start
The pure_market_making strategy is starting.
Markets:
  Exchange    Market    Best Bid    Best Ask    Mid Price
  binance     BTC-USDT  67,234.50   67,245.00   67,239.75

Orders:
  Level  Type   Price       Amount    Spread    Order ID
  1      buy    66,898.30   0.001     0.50%     ...
  1      sell   67,581.20   0.001     0.50%     ...

Step 5: Running in Background (Detached Mode) #

# Exit Hummingbot but keep the container running
Ctrl+P then Ctrl+Q

# Or start in detached mode from the beginning
docker run -d --name hummingbot \
  --mount "type=bind,source=$(pwd)/hummingbot_files/hummingbot_conf,destination=/conf" \
  --mount "type=bind,source=$(pwd)/hummingbot_files/hummingbot_logs,destination=/logs" \
  --mount "type=bind,source=$(pwd)/hummingbot_files/hummingbot_data,destination=/data" \
  hummingbot/hummingbot:latest

# Attach to check status
docker attach hummingbot
# Then detach again with Ctrl+P, Ctrl+Q

Integration with Exchanges and Tools #

Binance Spot and Futures #

Binance is the most popular connector, supporting both spot and USD-M futures. The connector handles rate limiting automatically — it follows Binance’s 1,200 request weight per minute limit with adaptive backoff.

# conf/connectors/binance.yml
connector: binance
api_key: ${BINANCE_API_KEY}
api_secret: ${BINANCE_API_SECRET}
rate_limit: adaptive
timeout: 10
use_futures: false

Coinbase Advanced Trade #

Coinbase uses a different authentication scheme (JWT-based since 2024). Hummingbot’s Coinbase connector handles the JWT signing internally:

>>> connect coinbase_advanced_trade
Enter your Coinbase API key (UUID format) >>> xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Enter your Coinbase API secret >>> YOUR_PRIVATE_KEY

Hummingbot Gateway for DEX Trading #

For Uniswap, PancakeSwap, and other DEXes, you need the Gateway service:

# Pull and run Gateway
docker pull hummingbot/gateway:latest

docker run -d --name gateway \
  -p 15888:15888 \
  --env GATEWAY_PASSPHRASE=your_secure_passphrase \
  hummingbot/gateway:latest

# In Hummingbot, connect to Gateway
>>> gateway connect uniswap_ethereum_mainnet
# Gateway configuration for Uniswap on Ethereum
networks:
  ethereum:
    rpc_url: https://mainnet.infura.io/v3/YOUR_INFURA_KEY
    chain_id: 1
    token_list_type: FILE
token_list_source: /home/gateway/conf/lists/ethereum_token_list.json

connectors:
  uniswap:
    contract_addresses:
      v3: 0xE592427A0AEce92De3Edee1F18E0157C05861564

Telegram Notifications #

# conf/telegram.yml
telegram_enabled: true
telegram_token: "YOUR_BOT_TOKEN"
telegram_chat_id: "YOUR_CHAT_ID"
notify_events:
  - order_filled
  - trade_completed
  - strategy_error

Data Export to Grafana #

Hummingbot logs all trades to SQLite. You can export to Prometheus/Grafana for visualization:

# sqlite query example
sqlite3 hummingbot_files/hummingbot_data/hummingbot_trades.db \
  "SELECT timestamp, trading_pair, order_type, amount, price FROM trades ORDER BY timestamp DESC LIMIT 10;"

Benchmarks and Real-World Use Cases #

Performance Comparison by Strategy Type #

Strategy TypeAvg Daily TradesAvg Spread CaptureLatency to ExchangeBest For
Pure Market Making150-4000.3-0.8%50-200msLiquid pairs
Cross-Exchange MM80-2000.5-1.2%100-300msCross-arb on BTC/ETH
Arbitrage20-601.0-3.0%80-250msHigh-volatility periods
Perpetual MM100-3000.4-1.0%60-200msFunding rate farming

Case Study: BTC-USDT Market Making on Binance #

A community member shared metrics from a 30-day pure market making run on BTC-USDT with $5,000 inventory:

Total trades executed:      8,247
Maker fee (0.02%):        0.412 BTC paid in fees
Spread captured (avg):      0.42%
Inventory turnover:         1.8x per day
PnL (before fees):          +2.14% monthly
PnL (after fees):           +1.72% monthly
Sharpe ratio:               1.34
Max drawdown:               1.2%

Resource Usage #

Hummingbot is lightweight by design:

ResourceIdleActive (1 strategy)Active (5 strategies)
CPU<1%5-15%20-40%
RAM80MB200-400MB800MB-1.5GB
Network~05-20 KB/s20-80 KB/s
Disk (per day)~05-20MB logs20-100MB logs

These numbers make Hummingbot suitable for a $5/month VPS for single-strategy deployments.

Advanced Usage and Production Hardening #

Custom Strategy in Python #

Hummingbot v2.0’s script strategy interface lets you write logic in pure Python:

# strategies/my_custom_mm.py
from decimal import Decimal
from hummingbot.strategy.script_strategy_base import ScriptStrategyBase
from hummingbot.core.data_type.common import OrderType, TradeType

class CustomMarketMaker(ScriptStrategyBase):
    """
    Dynamic spread market maker that adjusts based on volatility.
    """
    spread_base = Decimal("0.005")      # 0.5% base spread
    spread_multiplier = Decimal("2.0")   # Double spread when volatile
    order_amount = Decimal("0.001")     # BTC per order
    order_refresh_time = 30.0           # seconds
    volatility_threshold = Decimal("0.02")  # 2% price move = volatile

    def __init__(self):
        super().__init__()
        self.last_mid_price = None
        self.is_volatile = False

    def on_tick(self):
        mid_price = self.connectors["binance"].get_mid_price("BTC-USDT")
        
        # Detect volatility
        if self.last_mid_price:
            change = abs(mid_price - self.last_mid_price) / self.last_mid_price
            self.is_volatile = change > self.volatility_threshold
        
        self.last_mid_price = mid_price
        
        # Adjust spread
        spread = self.spread_base
        if self.is_volatile:
            spread *= self.spread_multiplier
        
        buy_price = mid_price * (Decimal("1") - spread)
        sell_price = mid_price * (Decimal("1") + spread)
        
        # Cancel existing orders
        self.cancel_all_orders()
        
        # Place new orders
        self.buy("binance", "BTC-USDT", self.order_amount, OrderType.LIMIT, buy_price)
        self.sell("binance", "BTC-USDT", self.order_amount, OrderType.LIMIT, sell_price)

    def cancel_all_orders(self):
        for order in self.get_active_orders("binance"):
            self.cancel(order)

Inventory Management with RSI #

# Add to your strategy for inventory skew
    def calculate_inventory_skew(self):
        """Adjust order sizes based on inventory ratio."""
        base_balance = self.connectors["binance"].get_balance("BTC")
        quote_balance = self.connectors["binance"].get_balance("USDT")
        
        mid_price = self.connectors["binance"].get_mid_price("BTC-USDT")
        base_value = base_balance * mid_price
        total_value = base_value + quote_balance
        
        inventory_ratio = base_value / total_value
        target_ratio = Decimal("0.5")  # 50/50 target
        
        # Skew orders based on inventory
        if inventory_ratio > target_ratio:
            # Hold too much BTC, reduce buy size
            self.buy_multiplier = Decimal("0.5")
            self.sell_multiplier = Decimal("1.5")
        else:
            self.buy_multiplier = Decimal("1.5")
            self.sell_multiplier = Decimal("0.5")

Backtesting with Historical Data #

# Download historical trade data
python scripts/download_historical_data.py \
  --exchange binance \
  --trading-pair BTC-USDT \
  --start-date 2026-01-01 \
  --end-date 2026-03-31 \
  --interval 1m

# Run backtest
python scripts/backtest.py \
  --strategy pure_market_making \
  --config conf/strategies/pmm_btc.yml \
  --data data/binance_BTC-USDT_1m.csv \
  --output results/btc_pmm_backtest.html
Backtest Results (2026-01-01 to 2026-03-31)
========================================
Total trades:           12,450
Total return:           +5.23%
Sharpe ratio:           2.14
Max drawdown:           -2.1%
Average trade duration:  18.4 minutes
Win rate:               62.3%
Profit factor:          1.48

Paper Trading Mode #

Always test on paper trading before going live:

# Enable paper trading in config
paper_trade_enabled: true
paper_trade_account_balance:
  BTC: 1.0
  USDT: 50000.0

# Paper trades show with [PAPER] prefix
>>> status
  Markets:
    [PAPER] binance  BTC-USDT  67,234.50  67,245.00  67,239.75

Docker Compose for Production #

# docker-compose.yml
version: '3.8'

services:
  hummingbot:
    image: hummingbot/hummingbot:2.0.0
    container_name: hummingbot_prod
    restart: unless-stopped
    volumes:
      - ./conf:/conf
      - ./logs:/logs
      - ./data:/data
    environment:
      - CONFIG_PASSWORD=${HBOT_PASSWORD}
      - STRATEGY=pure_market_making
      - CONFIG_FILE=pmm_btc_usdt.yml
    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "5"
    deploy:
      resources:
        limits:
          memory: 2G
          cpus: '1.0'
    healthcheck:
      test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:15888/')"]
      interval: 30s
      timeout: 10s
      retries: 3

Security Checklist #

# 1. Use IP-whitelisted API keys (Binance supports this)
# 2. Enable withdrawal restrictions on API keys
# 3. Run in isolated Docker network
# 4. Encrypt configuration files

# Encrypt sensitive config
openssl enc -aes-256-cbc -salt -in secrets.yml -out secrets.yml.enc

Comparison with Alternatives #

FeatureHummingbotFreqtrade3CommasGunbotHummingbot
(reference)
LicenseApache-2.0GPL-3.0ProprietaryProprietaryApache-2.0
CEX Connectors50+20+15+10+50+
DEX SupportYes (Gateway)LimitedNoNoYes
Strategy LanguagePythonPythonVisual/UIJavaScriptPython
Custom StrategiesFull PythonFull PythonLimitedScriptingFull Python
BacktestingYesYes (advanced)LimitedNoYes
Paper TradingYesYesYesLimitedYes
Self-hostedYesYesNoYesYes
CostFreeFree$29-99/mo$299 one-timeFree
Community Size10.5K stars37K starsN/AN/A10.5K stars
Telegram BotYesYesYesYesYes
Market Making FocusExcellentBasicGoodModerateExcellent

When to choose what:

  • Hummingbot: Best for market making and CEX+DEX combo strategies
  • Freqtrade: Best for ML-based directional strategies (learn more)
  • 3Commas: Best for beginners who want SaaS with minimal setup
  • Gunbot: Best for traders who want one-time payment and simple bots

Limitations and Honest Assessment #

Hummingbot is not a money-printing machine. Before deploying capital, understand these constraints:

  1. Market making requires inventory. You need balances in both base and quote assets. Starting with less than $1,000 often results in fees eating most of your profits.

  2. Latency matters. If your VPS is in Singapore and Binance’s matching engine is in Tokyo, you are at a disadvantage to co-located market makers. Consider HTStack for low-latency VPS options.

  3. Strategy development has a learning curve. While the quick-start works in minutes, writing profitable custom strategies requires understanding order book dynamics, inventory risk, and adverse selection.

  4. Gateway DEX trading incurs gas fees. On Ethereum mainnet, a single Uniswap trade can cost $5-20 in gas. Factor this into your spread calculations.

  5. Not all exchanges are equal. Some connectors (Binance, Coinbase) are battle-tested. Others may have bugs or incomplete implementations — always test with paper trading first.

Frequently Asked Questions #

How much capital do I need to start with Hummingbot? #

For meaningful results on liquid pairs like BTC-USDT, a minimum of $2,000-5,000 is recommended. This covers both sides of the order book and absorbs fees. For testing, you can paper trade with $0 or run on low-cap pairs with $500 — but expect higher volatility risk.

Is Hummingbot safe to use with my exchange API keys? #

Hummingbot stores API keys locally in your Docker volume. The code is open-source and auditable. Best practices: create API keys with trading-only permissions (no withdrawals), IP-restrict them to your VPS, and never commit configs to Git. The project has been audited by multiple third-party security firms.

Can I run multiple strategies simultaneously? #

Yes. Launch multiple Docker containers, each with its own config directory and strategy file. A single container runs one strategy, but you can run 5-10 strategies on a $10/month VPS without issues. Resource usage scales linearly.

How does Hummingbot compare to paid bots like 3Commas? #

Hummingbot is free, open-source, and fully customizable — but requires technical setup. 3Commas is a SaaS with a friendly UI but costs $29-99/month and limits strategy customization. If you can write Python and manage a VPS, Hummingbot gives you more control at zero cost. If you want one-click setup, a paid service may be worth it.

What is the difference between Gateway and regular connectors? #

Regular connectors interact with centralized exchange APIs via REST/WebSocket. Hummingbot Gateway is a separate service that creates blockchain transactions for DEX protocols like Uniswap V3. Gateway requires you to manage your own wallet private keys and pay gas fees. It adds complexity but unlocks decentralized trading.

How do I update Hummingbot to a new version? #

# Pull the latest image
docker pull hummingbot/hummingbot:latest

# Stop and remove the old container
docker stop hummingbot && docker rm hummingbot

# Restart with the same volume mounts
docker run -it --name hummingbot \
  --mount "type=bind,source=$(pwd)/hummingbot_files/hummingbot_conf,destination=/conf" \
  --mount "type=bind,source=$(pwd)/hummingbot_files/hummingbot_logs,destination=/logs" \
  hummingbot/hummingbot:latest

Your configurations persist in the mounted volumes.

Can I use Hummingbot for futures/perpetual trading? #

Yes. The Binance, Bybit, and OKX connectors support perpetual futures. Set the domain parameter to the futures subdomain and configure leverage carefully. Start with 1x-3x leverage until you understand the funding rate mechanics.

Conclusion: Start Trading Algorithmically Today #

Hummingbot is the most mature open-source market making framework available in 2026. With 50+ exchange connectors, Docker deployment in under 5 minutes, and full Python extensibility, it strikes the right balance between accessibility and power.

Your next steps:

  1. Register on Binance or OKX and create API keys
  2. Deploy Hummingbot with the Docker quick-start above
  3. Paper trade for 1 week before committing real capital
  4. Join the community — the Hummingbot Discord has 15,000+ active traders sharing strategies
  5. Explore AI-enhanced trading with Minara for ML-powered signal generation

Join our developer community on Telegram: t.me/dibi8developers — we discuss bot strategies, exchange integrations, and production deployments daily.

Sources and Further Reading #

Before you deploy any of the tools above into production, you’ll need solid infrastructure. Two options dibi8 actually uses and recommends:

  • DigitalOcean — $200 free credit for 60 days across 14+ global regions. The default option for indie devs running open-source AI tools.
  • HTStack — Hong Kong VPS with low-latency access from mainland China. This is the same IDC that hosts dibi8.com — battle-tested in production.

Affiliate links — they don’t cost you extra and they help keep dibi8.com running.

Affiliate Disclosure #

This guide contains affiliate links for Binance, OKX, and Minara. If you register through these links, we receive a commission at no additional cost to you. This supports our open-source documentation efforts. We only recommend tools we actively use and test.

💬 Discussion