Documentation Index
Fetch the complete documentation index at: https://mintlify.com/hummingbot/hummingbot/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Thecreate command guides you through creating a new strategy configuration. It supports three types of configurations:
- Classic Strategies - Built-in strategies like Pure Market Making, Cross-Exchange Market Making
- Script Strategies - Custom Python scripts (V2 architecture)
- Controllers - Modular trading logic components (V2 architecture)
Basic Usage
Create Classic Strategy
- Prompts you to select a strategy type
- Asks for strategy-specific parameters
- Validates your configuration
- Saves to a YAML file
Create Script Strategy (V2)
Name of the script file (without .py extension) located in
scripts/- Load the configuration class from your script
- Prompt for required parameters defined in the script’s config
- Save configuration to
conf/scripts/directory
Create Controller (V2)
Name of the controller in the controllers directory
Configuration Workflow
Select Strategy Type
Choose from available strategies:
- pure_market_making
- cross_exchange_market_making
- amm_arb
- avellaneda_market_making
- And more…
Strategy-Specific Parameters
Pure Market Making
Required:exchange- The exchange connectormarket- Trading pair (e.g., BTC-USDT)bid_spread- Percentage below mid price for buy ordersask_spread- Percentage above mid price for sell ordersorder_amount- Size of each order
order_levels- Number of orders per sideorder_level_spread- Spacing between levelsinventory_skew_enabled- Auto-balance inventoryfilled_order_delay- Delay before placing new order
Cross-Exchange Market Making
Required:maker_market- Exchange to place orderstaker_market- Exchange to hedge onmaker_market_trading_pair- Trading pair on makertaker_market_trading_pair- Trading pair on takerorder_amount- Order sizemin_profitability- Minimum profit percentage
AMM Arbitrage
Required:connector_1- First exchange (typically DEX)market_1- Trading pair on first exchangeconnector_2- Second exchange (typically CEX)market_2- Trading pair on second exchangeorder_amount- Size to arbitragemin_profitability- Minimum profit to execute
Special Configuration Features
Asset Ratio Maintenance
When configuringinventory_target_base_pct, Hummingbot can automatically calculate your current ratio:
Inventory Price Tracking
Set your asset acquisition cost for accurate P&L calculations:File Naming
Configuration files are saved to:- Classic strategies:
conf/strategies/[filename].yml - Scripts:
conf/scripts/[filename].yml - Controllers:
conf/controllers/[filename].yml
- Use descriptive names:
btc_mm_tight_spread.yml - Include key parameters:
eth_usdt_1pct_spread.yml - Date-based:
strategy_2024_03_02.yml
If a file with the same name exists, Hummingbot will prompt you to choose a different name.
Implementation Details
The create command is implemented in/hummingbot/client/command/create_command.py:51 and provides:
- Three creation modes: Classic, Script, and Controller
- Interactive prompting with validation
- Default value suggestions based on strategy type
- YAML configuration export with field ordering
- Post-creation validation via status checks
- Automatic connector initialization when needed
V2 Architecture (Scripts & Controllers)
The V2 architecture uses a different configuration approach:Script Strategies
Structure:Controllers
Structure:Common Use Cases
Market Making Setup
Arbitrage Bot
Custom Strategy
Multiple Configs
Create variations for testing:Troubleshooting
Missing Strategy Module
If you see “Invalid strategy” error:- Verify the strategy name is correct
- Check if the strategy is installed
- For scripts, ensure the file exists in
scripts/directory
Configuration Validation Errors
If validation fails during creation:- Check exchange connectivity (
connectcommand) - Verify trading pair exists on the exchange
- Ensure numeric values are in valid ranges
- Confirm you have sufficient balance
Timeout During Status Check
If status check times out:- Check internet connection
- Verify exchanges are online
- Increase timeout:
Script/Controller Not Found
For V2 configurations:- Ensure script exists:
scripts/[name].py - Verify controller exists in controllers directory
- Check that config class is properly defined
- Restart Hummingbot to reload modules