graph LR
CLI_Interface["CLI Interface"]
Application_Configuration["Application Configuration"]
Configuration_Management_Utilities["Configuration Management Utilities"]
Security_Secrets_Management["Security & Secrets Management"]
Strategy_Configuration["Strategy Configuration"]
CLI_Interface -- "Provides input to" --> Client_Commands
CLI_Interface -- "Receives output from" --> Core_Engine
CLI_Interface -- "Utilizes" --> Application_Configuration
CLI_Interface -- "Utilizes" --> Configuration_Management_Utilities
Application_Configuration -- "Provides configuration to" --> Core_Engine
Application_Configuration -- "Provides configuration to" --> Exchange_Connectors
Application_Configuration -- "Receives updates from" --> CLI_Interface
Application_Configuration -- "Utilizes" --> Configuration_Management_Utilities
Configuration_Management_Utilities -- "Manages" --> Application_Configuration
Configuration_Management_Utilities -- "Manages" --> Strategy_Configuration
Configuration_Management_Utilities -- "Utilizes" --> Security_Secrets_Management
Configuration_Management_Utilities -- "Interacts with" --> Persistence_Layer
Security_Secrets_Management -- "Provides secure access to" --> Application_Configuration
Security_Secrets_Management -- "Provides secure access to" --> Exchange_Connectors
Security_Secrets_Management -- "Utilizes" --> Persistence_Layer
Strategy_Configuration -- "Provides configuration to" --> Trading_Strategies
Strategy_Configuration -- "Receives updates from" --> CLI_Interface
Strategy_Configuration -- "Utilizes" --> Configuration_Management_Utilities
The User Interface & Configuration (UIC) subsystem in Hummingbot serves as the primary point of interaction for users and the central hub for managing all application and strategy configurations. It is designed to provide a robust, intuitive, and secure environment for controlling and monitoring the bot's operations.
This component provides the interactive command-line interface (CLI) through which users interact with Hummingbot. It is responsible for displaying real-time status updates, logs, and market data, as well as processing user commands and inputs. It ensures a responsive and user-friendly environment for bot control and monitoring.
Related Classes/Methods:
hummingbot.client.ui.hummingbot_cli.HummingbotCLI(51:276)hummingbot.client.ui.completer(1:1)hummingbot.client.ui.parser(1:1)hummingbot.client.ui.layout(1:1)hummingbot.client.ui.style(1:1)hummingbot.client.ui.custom_widgets(1:1)
This component defines and manages the global, client-specific, and connector-specific settings for the entire Hummingbot application. It uses structured data maps to store various parameters, ensuring consistent behavior across different modules.
Related Classes/Methods:
hummingbot.client.config.client_config_map.ClientConfigMap(684:932)hummingbot.client.config.global_config_map(1:1)hummingbot.client.config.config_data_types(1:1)hummingbot.client.config.fee_overrides_config_map(1:1)hummingbot.client.config.gateway_ssl_config_map(1:1)
This component provides a set of helper functions and adapters responsible for the lifecycle management of configurations. This includes loading configurations from storage, saving changes, validating inputs against defined schemas, and migrating configurations between different software versions to maintain compatibility.
Related Classes/Methods:
hummingbot.client.config.config_helpers.ClientConfigAdapter(57:334)hummingbot.client.config.config_helpers.ReadOnlyClientConfigAdapter(337:346)hummingbot.client.config.config_validators(1:1)hummingbot.client.config.conf_migration(1:1)hummingbot.client.config.config_methods(1:1)hummingbot.client.config.config_var(1:1)
This component is dedicated to the secure handling of sensitive user data, primarily API keys and other credentials. It provides mechanisms for encrypting, storing, and retrieving these secrets, protecting them from unauthorized access.
Related Classes/Methods:
hummingbot.client.config.security.BaseSecretsManager(1:1)hummingbot.client.config.config_crypt(1:1)
This component specifically manages the parameters and settings for individual trading strategies. It allows users to define and customize how each strategy operates, including market pairs, order sizes, and specific algorithmic parameters.
Related Classes/Methods: