Decoding Freqtrade: A Guide to Key Configuration Parameters in config.json
For quantitative traders and crypto investors, setting up Freqtrade correctly is essential for successful algorithmic trading in Python. A well-optimized config.json ensures:
Accurate trade execution
Better risk management
Let’s break down the provided config.json file with explanations for each parameter:
- max_open_trades: 3
- Explanation: Limits the maximum number of open trades to 3. The bot won’t open more than this number of concurrent trades.
- stake_currency: “USDT”
- Explanation: Sets the currency used for trading as USDT (Tether). All profits and losses will be calculated in terms of USDT.
- stake_amount: “unlimited”
- Explanation: Allows for an unlimited amount to be used as stake currency for trading. This means the entire available balance in USDT can be used for trading.
- tradable_balance_ratio: 0.99
- Explanation: This parameter sets the ratio of the tradable balance to use for trading. In this case, 99% of the tradable balance will be used for trading.
- fiat_display_currency: “USD”
- Explanation: Sets the display currency for showing values in the bot’s interface. Prices, profits, and losses will be displayed in terms of USD.
- dry_run: true
- Explanation: Enables “dry-run” mode, simulating trades without actually executing them. Useful for testing strategies without risking real funds.
- dry_run_wallet: 1000
- Explanation: Specifies the initial balance of the simulated wallet in dry-run mode. In this case, it starts with a balance of 1000 USDT.
- cancel_open_orders_on_exit: false
- Explanation: If set to true, it would cancel any open orders when the bot is stopped. Here, it’s set to false, meaning open orders are not canceled on bot exit.
- trading_mode: “spot”
- Explanation: Specifies the trading mode as “spot.” It indicates that the bot is trading in the traditional spot market rather than a margin or futures market.
- margin_mode: “”
- Explanation: This parameter is empty, indicating that the bot is not set to operate in margin trading mode.
- unfilledtimeout:
- Explanation: Specifies the timeout for unfilled orders.
- entry: 10 minutes – If an entry order is not filled within 10 minutes, it will be canceled.
- exit: 10 minutes – If an exit order is not filled within 10 minutes, it will be canceled.
- exit_timeout_count: 0 – The number of times to tolerate unfilled exit orders.
- Explanation: Specifies the timeout for unfilled orders.
- entry_pricing:
- Explanation: Configures parameters related to entry pricing.
- price_side: “same” – Entry order price will be on the same side as the last trade.
- use_order_book: true – Utilizes the order book data for pricing.
- order_book_top: 1 – Considers the top order from the order book.
- price_last_balance: 0.0 – Overrides the last trade’s closing price with a fixed value if set.
- Explanation: Configures parameters related to entry pricing.
- exit_pricing:
- Explanation: Configures parameters related to exit pricing, similar to entry pricing.
- exchange:
- Explanation: Contains details about the exchange the bot will trade on.
- name: “bybit” – Specifies the exchange as Bybit.
- key, secret: API key and secret for authentication (empty in this example for security).
- pair_whitelist, pair_blacklist: Lists of trading pairs to include or exclude.
- Explanation: Contains details about the exchange the bot will trade on.
- pairlists:
- Explanation: Configures a pairlist for dynamic pair selection.
- method: “StaticPairList” – Uses a static list of pairs.
- number_assets: 20 – Specifies the number of assets to include.
- sort_key: “quoteVolume” – Sorts the pairs based on quote volume.
- min_value: 0 – Filters out pairs with a quote volume less than 0.
- refresh_period: 1800 – Refreshes the pairlist every 1800 seconds (30 minutes).
- Explanation: Configures a pairlist for dynamic pair selection.
- telegram:
- Explanation: Configures Telegram integration for notifications.
- enabled: false – Telegram integration is disabled.
- token, chat_id: API token and chat ID for Telegram (empty for security).
- Explanation: Configures Telegram integration for notifications.
- api_server:
- Explanation: Configures an API server for external communication.
- enabled: false – API server is disabled.
- listen_ip_address, listen_port: IP address and port for the API server.
- enable_openapi: false – OpenAPI (Swagger) documentation is disabled.
- jwt_secret_key: JWT secret key for authentication (empty for security).
- ws_token: WebSocket token for authentication.
- CORS_origins: List of allowed CORS origins.
- username, password: Optional username and password for basic authentication.
- Explanation: Configures an API server for external communication.
- bot_name: “freqtrade”
- Explanation: Sets the name of the bot to “freqtrade.”
- initial_state: “running”
- Explanation: Specifies the initial state of the bot as “running.”
- heartbeat_interval: 5
- Explanation: Sets the interval (in seconds) at which the bot sends a heartbeat signal.
- force_entry_enable: false
- Explanation: If set to true, allows forcing an entry even if the conditions are not met.
- internals:
- Explanation: Configures internal parameters.
- process_throttle_secs: 5 – Throttles internal processes to run at most every 5 seconds.
- Explanation: Configures internal parameters.
- These explanations should help beginners understand the purpose of each parameter in the provided
config.jsonfile for Freqtrade. Always refer to the official documentation for the latest and most accurate information.
