Running a trading bot on someone else’s cloud platform means your API keys, strategies, and trading data live on infrastructure you don’t control. Self-hosting your algorithmic trading stack gives you full custody of everything — from your exchange API credentials to your backtest results and live trade logs.
In this guide, we compare three of the most popular open-source algorithmic trading frameworks: Freqtrade, Jesse, and Hummingbot. Each takes a different approach to automated trading, and the right choice depends on whether you want a ready-to-trade bot, a backtesting-first research framework, or a market-making engine.
Why Self-Host Your Trading Bot?
Using a hosted trading service introduces several risks and limitations:
- API key exposure: Cloud platforms store your exchange credentials. A breach compromises your funds.
- Strategy leakage: Proprietary strategies live on servers owned by third parties.
- Rate limits and latency: Shared infrastructure adds network hops between your bot and the exchange.
- Vendor lock-in: Strategies and configurations are often tied to a specific platform’s format.
- Cost: Hosted services charge monthly fees or take a percentage of profits.
Self-hosting eliminates these concerns. Your bot runs on your own hardware or VPS, communicates directly with exchange APIs, and stores all data locally. You can run 24/7 with minimal cost — a $5/month VPS is sufficient for most single-exchange bots.
Freqtrade vs Jesse vs Hummingbot at a Glance
| Feature | Freqtrade | Jesse | Hummingbot |
|---|---|---|---|
| GitHub Stars | 49,426 | 7,795 | 18,363 |
| Last Updated | April 2026 | April 2026 | April 2026 |
| Primary Language | Python | Python (backend) + JS (UI) | Python (core) + TypeScript (gateway) |
| Trading Focus | Spot trading with technical strategies | Research-driven backtesting + live trading | Market making + arbitrage |
| Backtesting Engine | Built-in with detailed metrics | Built-in with candle-based backtesting | Limited — focused on live execution |
| Web UI | FreqUI (built-in dashboard) | Jesse Trading (commercial UI available) | Hummingbot Gateway + Dashboard |
| Exchange Support | 20+ exchanges via CCXT | Binance, Bybit, dYdX, Bitget, more | 30+ connectors including CEX and DEX |
| Docker Support | Official image with docker-compose | Dockerfile (compose must be written manually) | Official image with docker-compose |
| Strategy Format | Python class with indicator methods | Python class with should_long/should_cancel | YAML controller configs + Python scripts |
| Risk Management | Stop-loss, ROI, trailing stop, custom | Stop-loss, take-profit, trailing stop | Inventory skew, order spread controls |
| Paper Trading | Yes (dry-run mode) | Yes (paper trading mode) | Yes (paper trading mode) |
| License | GPLv3 | LGPL-3.0 | Apache 2.0 |
Freqtrade — The Ready-to-Trade Bot
Freqtrade is the most widely used open-source crypto trading bot, with nearly 50,000 GitHub stars. It ships with a complete out-of-the-box experience: backtesting, hyperparameter optimization (hyperopt), dry-run paper trading, and live trading — all accessible via a built-in REST API and web UI.
Key Features
- Strategy optimization: Hyperopt uses machine learning (scikit-optimize) to find optimal strategy parameters against historical data.
- FreqUI: A modern web dashboard for monitoring trades, performance charts, and strategy analysis.
- Telegram integration: Control your bot, get trade notifications, and monitor performance via Telegram.
- Custom indicators: Full access to the TA-Lib and pandas-ta libraries for building custom technical indicators.
- Dry-run mode: Test strategies with real-time market data without risking real funds.
Docker Compose Setup
Freqtrade provides an official docker-compose.yml that makes deployment straightforward:
| |
Configuration lives in user_data/config.json. A minimal setup:
| |
Start the bot with docker compose up -d and access FreqUI at http://localhost:8080.
Strategy Example
A basic Freqtrade strategy inherits from IStrategy and defines entry/exit conditions:
| |
Jesse — The Research-First Framework
Jesse takes a different philosophy: it is designed primarily as a research and backtesting framework. Its backtesting engine is exceptionally thorough, providing candle-by-candle simulation that closely mirrors live trading conditions. Once a strategy is validated through backtesting, Jesse can execute it live on supported exchanges.
Key Features
- Candle-based backtesting: Simulates every candle individually for realistic results, including slippage and fee modeling.
- Walk-forward optimization: Built-in support for walk-forward analysis to avoid overfitting.
- Import candles: Download and store historical candle data for any supported exchange.
- Portfolio-level backtesting: Test strategies across multiple trading pairs simultaneously.
- Plugin system: Extend functionality with custom routes, exchanges, and indicators.
Docker Setup
Jesse provides a Dockerfile but no official docker-compose file. Here is a production-ready compose configuration:
| |
You can also use the pre-built image:
| |
Configuration is managed through .env files and route definitions in routes.py:
| |
Strategy Example
Jesse strategies define clear entry and exit logic:
| |
Hummingbot — The Market-Making Engine
Hummingbot is purpose-built for market making and arbitrage strategies. Unlike Freqtrade and Jesse, which focus on directional trading based on technical indicators, Hummingbot provides liquidity by placing simultaneous buy and sell orders around a reference price.
Key Features
- Market making: Automated bid-ask spread management with inventory skew to balance positions.
- Arbitrage: Cross-exchange and triangular arbitrage strategies.
- 30+ connectors: Supports centralized exchanges (Binance, Coinbase, KuCoin), DEXs (Uniswap, PancakeSwap), and derivatives (dYdX, GMX).
- Gateway API: A TypeScript-based gateway provides unified REST/WebSocket access to all connectors.
- Scripting: Python scripts for custom logic and controllers for composable strategy building.
Docker Compose Setup
Hummingbot’s official docker-compose.yml includes both the bot and the Gateway service:
| |
Pure Market Making Configuration
Hummingbot uses YAML-based strategy configs. A basic pure market making setup:
| |
This config places 3 bid and 3 ask levels with a 1% spread around the mid-price, each order sized at 50 USDT, targeting a 50/50 base/quote inventory balance.
Comparison: Which Bot Is Right for You?
| Criteria | Choose Freqtrade if… | Choose Jesse if… | Choose Hummingbot if… |
|---|---|---|---|
| Experience Level | Beginner to intermediate | Intermediate to advanced | Intermediate to advanced |
| Primary Goal | Automated directional trading | Strategy research + validation | Market making + liquidity provision |
| Backtesting | Good with hyperopt optimization | Excellent candle-by-candle detail | Limited, live-focused |
| Exchange Support | 20+ via CCXT | Major CEXs + some DEXs | 30+ CEX, DEX, and derivatives |
| UI Experience | Built-in FreqUI dashboard | Commercial UI available | Gateway + community dashboards |
| Community | Largest (Discord, docs, tutorials) | Smaller, research-focused | Active market-making community |
| Strategy Complexity | Python classes with indicators | Python classes with research tools | YAML configs + Python scripts |
| Best For | Running proven strategies live | Developing and testing new strategies | Providing liquidity and earning spread |
Deployment Architecture
For a production self-hosted trading setup, consider this architecture:
| |
Key deployment considerations:
- Network latency: Choose a VPS geographically close to your exchange’s API servers.
- Persistence: Mount Docker volumes for configs, logs, and trade databases.
- Monitoring: Use tools like Gatus or Prometheus to monitor bot health and API connectivity.
- Security: Store API keys in Docker secrets or environment files with restricted permissions. Never commit them to version control.
Risk Management Best Practices
No trading bot is foolproof. Always implement these safeguards:
- Start with paper trading: Run in dry-run mode for at least 2 weeks before going live.
- Set strict stop-losses: Never risk more than 1-2% of your portfolio on a single trade.
- Use API key restrictions: Create exchange API keys with trading-only permissions — no withdrawal access.
- Monitor regularly: Set up alerts for unusual behavior, connection failures, or unexpected drawdowns.
- Version control your strategies: Keep all strategy code in Git so you can audit changes and roll back if needed.
- Backup your data: Regularly back up trade databases, configuration files, and strategy files. Consider using a dedicated backup solution for your trading data.
For those interested in personal finance tracking alongside trading activity, tools like Firefly III can help consolidate and analyze your overall financial picture.
FAQ
Is algorithmic trading legal?
Yes, algorithmic trading is legal in most jurisdictions for personal use. However, regulations vary by country and exchange. Always check local laws and your exchange’s terms of service. Some exchanges require explicit permission for API-based automated trading.
How much money do I need to start?
Most bots allow you to start with as little as $50-100 in trading capital. However, meaningful returns require larger positions to overcome exchange fees and minimum order sizes. A recommended starting point is $500-1000 for a single trading pair.
Can I run multiple trading bots on the same server?
Yes. Each bot can run in its own Docker container with separate configurations. A typical $5-10/month VPS can comfortably run 2-3 trading bots simultaneously, provided they are not running CPU-intensive backtests at the same time.
How do I keep my trading strategies private?
Self-hosting ensures your strategies never leave your server. Store strategy files on encrypted volumes, use SSH for remote access, and never push strategy code to public repositories. All three tools support local-only operation with no telemetry.
What happens if my bot loses connection to the exchange?
All three bots handle reconnection automatically. Freqtrade and Jesse will resume trading once connectivity is restored. Hummingbot cancels open orders during disconnections to prevent stale orders. Always set up monitoring alerts to detect and investigate connection failures promptly.
Which bot has the best backtesting?
Jesse has the most thorough backtesting engine with candle-by-candle simulation and walk-forward optimization. Freqtrade offers strong backtesting with hyperopt for parameter optimization. Hummingbot’s backtesting is more limited — it is primarily designed for live market making rather than historical analysis.
Do I need programming experience?
Freqtrade and Jesse require Python knowledge to write custom strategies, though both provide template strategies to start from. Hummingbot can be configured with YAML alone for basic market making, but Python is needed for custom scripts and advanced strategies.