Overview
Paper trading mode creates a simulated trading environment that:- Uses real-time market data from exchanges
- Executes simulated orders that don’t hit actual exchange APIs
- Maintains a virtual balance you can configure
- Mimics real trading behavior including order fills and market dynamics
Paper trading is sometimes called “simulation mode” or “backtesting” - though Hummingbot’s paper trading runs in real-time, not on historical data.
Configuration
Enable Paper Trading
Paper trading settings are configured inconf/conf_client.yml:
Paper Trade Config
List of exchanges available for paper trading. These don’t require API keys.
Virtual starting balances for different assets. Set these based on your testing needs.
Supported Paper Trade Exchanges
By default, these exchanges are available for paper trading:Binance
Spot trading simulation
KuCoin
Spot trading simulation
Kraken
Spot trading simulation
Gate.io
Spot trading simulation
Setting Virtual Balances
You can customize your virtual balances to match your testing scenario:- Conservative
- Moderate
- Aggressive
The balances are stored as JSON and must use valid syntax. Use the format:
{"SYMBOL": amount, "SYMBOL2": amount}Using Paper Trading
Starting a Paper Trade Strategy
When creating a strategy, select a paper trade exchange:_paper_trade suffix on the exchange name.
Connecting to Paper Trade Exchanges
Paper trade exchanges don’t require API keys:How Paper Trading Works
Order Simulation
Paper trading simulates order execution based on real market conditions:Order Placement
Order Placement
When you place an order in paper trading:
- The order is stored in Hummingbot’s internal database
- Real market data is fetched from the exchange
- No actual API call is made to the exchange
Order Fills
Order Fills
Orders are filled when:
- Market price crosses your limit order price
- Sufficient volume exists at that price level
- Order book depth indicates the order would fill
Balance Updates
Balance Updates
When an order fills:
- Virtual balances are updated accordingly
- Trading fees are deducted (using exchange’s default fee structure)
- P&L is calculated based on execution prices
Market Data
Paper trading uses real-time market data:- Live order book snapshots
- Current market prices
- Actual trading volumes
- Real spread and liquidity conditions
Implementation Details
Paper Trade Connector
From the source code (hummingbot/client/settings.py):
Configuration Validation
Fromclient_config_map.py:
Advantages of Paper Trading
Risk-Free Testing
Test strategies without risking real capital
Real Market Data
Practice with live market conditions and prices
No API Keys Needed
Start testing immediately without exchange accounts
Unlimited Funds
Configure any virtual balance amount for testing
Strategy Validation
Verify strategy logic before live deployment
Parameter Tuning
Experiment with different settings risk-free
Limitations
Best Practices
Switching Between Paper and Live Trading
From Paper to Live Trading
From Live to Paper Trading
Simply create a new strategy using the_paper_trade exchange variant.
Monitoring Paper Trading Performance
Use Hummingbot’s standard commands to monitor paper trading:Configuring Paper Trade Balances Programmatically
You can update paper trade balances via the config file:Troubleshooting
Paper trade exchange not available
Paper trade exchange not available
Ensure the exchange is listed in
paper_trade_exchanges in conf/conf_client.ymlOrders not filling
Orders not filling
Check that:
- Market data is being received (check logs)
- Your order prices are within the market spread
- Sufficient time has passed for price movement
Balance not updating
Balance not updating
Verify:
- Orders are actually filling (check
history) - No configuration errors in
conf_client.yml - Restart Hummingbot to reload config
Related Resources
Global Settings
Configure paper trading in global settings
Config Files
Understanding configuration file structure
Strategies
Explore strategies to test in paper trading
Getting Started
Complete beginner’s guide