graph LR
Logging_Monitoring["Logging & Monitoring"]
User_Notification_Service["User Notification Service"]
Account_Balance_Management["Account & Balance Management"]
Strategy_Backtesting_Engine["Strategy Backtesting Engine"]
Logging_Monitoring -- "provides logging services to" --> Core_Engine
Logging_Monitoring -- "provides logging services to" --> Client_User_Interface
Logging_Monitoring -- "provides logging services to" --> Exchange_Connectors
Logging_Monitoring -- "provides logging services to" --> Trading_Strategies_V2
Logging_Monitoring -- "provides logging services to" --> Data_Feeds
Logging_Monitoring -- "provides logging services to" --> Account_Balance_Management
Logging_Monitoring -- "provides logging services to" --> User_Notification_Service
Logging_Monitoring -- "provides logging services to" --> Strategy_Backtesting_Engine
User_Notification_Service -- "uses" --> Core_Engine
HummingbotApplication -- "sends notifications to" --> User_Notification_Service
User_Notification_Service -- "uses" --> Logging_Monitoring
Account_Balance_Management -- "uses" --> Exchange_Connectors
Account_Balance_Management -- "uses" --> Configuration_Management
Account_Balance_Management -- "uses" --> Data_Feeds
Account_Balance_Management -- "provides balance information to" --> Client_Commands
Account_Balance_Management -- "uses" --> Logging_Monitoring
Strategy_Backtesting_Engine -- "uses" --> Trading_Strategies_V2
Strategy_Backtesting_Engine -- "uses" --> Data_Feeds
Strategy_Backtesting_Engine -- "uses" --> Configuration_Management
Client_Commands -- "uses" --> Strategy_Backtesting_Engine
Strategy_Backtesting_Engine -- "uses" --> Logging_Monitoring
The Performance & Reporting (PR) subsystem, as initially described, is a broad area encompassing several critical functionalities within the Hummingbot project. Based on the project's architectural patterns (Event-Driven, Modular/Plugin, Layered) and the provided related classes, it can be effectively broken down into four distinct and fundamental components: Logging & Monitoring, User Notification Service, Account & Balance Management, and Strategy Backtesting Engine. These components are essential for the operation, user interaction, and strategic development within an algorithmic trading platform.
This component is responsible for capturing, formatting, and dispatching various types of logs, including operational messages, errors, and performance data. It provides a structured logging mechanism and can send logs to a remote server for centralized monitoring and analysis. It also handles application-specific warnings. This component is fundamental for debugging, auditing, and understanding the real-time behavior and health of the trading bot.
Related Classes/Methods:
hummingbot.logger.logger(1:1)hummingbot.logger.log_server_client(1:1)hummingbot.logger.application_warning(1:1)hummingbot.logger.struct_logger(1:1)
This component is dedicated to sending real-time notifications to users about important bot events, such as trade executions, errors, or status updates. It abstracts the underlying communication mechanism, allowing for different notification channels (e.g., MQTT). This ensures users are promptly informed about critical events without needing to constantly monitor the bot's console.
Related Classes/Methods:
This component is responsible for securely connecting to various cryptocurrency exchanges, retrieving, and consolidating user asset balances. It provides a unified view of the user's portfolio across different trading venues, which is essential for accurate risk management and strategy execution.
Related Classes/Methods:
This component provides a robust framework for simulating trading strategies against historical market data. It allows users to test and optimize their strategies without risking real capital, offering detailed performance metrics and insights. This is crucial for strategy development, validation, and risk assessment before live deployment.
Related Classes/Methods:
hummingbot.strategy_v2.backtesting.backtesting_engine_base(1:1)hummingbot.strategy_v2.backtesting.backtesting_data_provider(1:1)hummingbot.strategy_v2.backtesting.executor_simulator_base(1:1)hummingbot.strategy_v2.backtesting.executors_simulator.dca_executor_simulator(1:1)hummingbot.strategy_v2.backtesting.executors_simulator.position_executor_simulator(1:1)