- Change in the TimeSynchronizer logic to estimate timestamps giving more value to resent samples than older samples.
- Refactor in ExchangePyBase to include in the abstract class the common logic about order HTTP status update loop. By default it always tries now to not only get updates for the orders, but also check if there have been any order fills (trades) impacting them. All subclasses of ExchangePyBase have been updated to implement the required logic to get the order fills and order updates.
- Added logic in ClientOrderTracker to keep track of all the orders that are marked as failed because they have not been found in the exchange or there were errors retrieving updates from the exchange for them more times than the specified limit. These orders are called "lost orders".
- Added new loop task in ExchangePyBase class to regularly try to cancel all lost orders. The loop also tries to get updates for the orders (to find out when they are no longer alive in the server) and also requests order fill updates for them. This is a fall back functionality to avoid leaving stale orders alive in the exchange.
PR: https://github.com/hummingbot/hummingbot/pull/5518