Skip to content
All library documents

Hummingbot 1.0.0: Connector Refactoring and Avellaneda Scheduling

Article Hummingbot docs

Summary

These release notes describe Hummingbot version 1.0.0, with changes to exchange connectivity and Avellaneda market making. Binance spot and perpetual connectors were refactored in pure Python, moved away from a third-party Binance library, adopted shared WebSocket connections and API throttling, and added order tracking and exchange-informed trading-pair mapping. The notes position these connectors as examples for developers building integrations.

The Avellaneda strategy gained an infinite-horizon option suited to continuously operating crypto markets, alongside daily trading windows and fixed end dates. The release also records connector and interface changes, removal of binary installer support, documentation updates, and assorted bug fixes. It explains available operating schedules but provides no strategy performance data or evidence that the changes improve trading returns. The notes are primarily a software release record, so their trading relevance is limited to implementation details for market making and exchange connectivity.

Key ideas

  • The Binance spot and perpetual connectors were refactored around shared connections, throttling, and order tracking.
  • The Avellaneda strategy can run continuously, during daily time windows, or until a specified end date.
  • The release documents connector and developer changes alongside bug fixes and discontinued binary installation support.
  • The notes describe software capabilities but provide no evidence about market-making performance.

Tags

Full text
# Release Notes - Version 1.0.0


# Release Notes - Version 1.0.0

*Released on January 27, 2022*

- **Install via Docker**: [Linux](../installation/hummingbot-client.md) | [Windows](../installation/hummingbot-client.md) | [macOS](../installation/hummingbot-client.md) | [Raspberry Pi](../installation/hummingbot-client.md)

We are very excited to ship the first official Hummingbot release (v1.0.0) today!

This release contains significant improvements to the `avellaneda` strategies, major updates of Binance and Binance Perpetual connectors, discontinue of the Binary build, and improved documentation for both Avellaneda and Perpetual market making strategies as well as developer documentation for perpetual connectors.

## Binance and Binance Perpetual Improvement

We have refactored [`binance`](../exchanges/binance/index.md) and [`binance_perpetual`](../exchanges/binance/index.md) with the best practices of a Hummingbot connector. Going forward, these connecotrs will be the standard for `spot` and `perpetual` type exchange connectors, respectively. Community developers who want to integrate an exchange into Hummingbot should use these two connectors as references.

Updates to these connectors include:

- Refactored from Cython to pure Python code
- Removed dependency from python-binance library and implemented all interactions by directly consuming the official API
- Adapted all REST API interactions to use the recently developed web assistant
- Changed implementation of data source classes to use only one WebSocket connection and use only one shared connection in all places wherever possible
- All consumptions of the API are regulated by the user of the API throttler for both REST and WebSocket API
- Used the newly developed orders tracker to manage inflight orders
- Stopped using ad-hoc logic to translate from exchange token-pair notation and vice versa. Connectors now keep track of the mapping base on the information provided by the exchange and the tokens composing each pair
- Added docstrings for the “interface” methods that users of the class will use

Some exclusive parameters for Binance have also been removed, following the major update to the Binance connector. These commands are no longer available: `pnl`, `open_orders`, `trades`, and `binance_markets`.

Changes can be seen here for [Binance](https://github.com/hummingbot/hummingbot/pull/5009) and [Binance Perpetual](https://github.com/hummingbot/hummingbot/pull/5008).

## Discontinued Binary Support

We previously announced in the version 0.46 release notes about discontinuing binary installers. In this release, we have removed and cleaned up the codebase anything related to supporting binary installation, however, users can continue to use the older version of binaries available until version 0.46. that can be downloaded from the installation page.

New users who want to test and try out Hummingbot can launch an instance of Test Drive.

## Improved Avellaneda Market Making (Part 2)

We are making improvements to the initial implementation of the Avellaneda-Stoikov strategy. In this release, we added improvements specifically to the infinite time horizon, making more sense for crypto markets since they run 24/7. The original strategy was invented for stock markets which are only active during certain trading hours.

Users can now set an infinite time horizon. Additionally, users can specify the strategy to run from time to time every day, or from one date to another date, making the strategy more flexible. For example, users can schedule the strategy to run only during a mining campaign or schedule it to only run during hours when the user is awake to keep an eye on it.

Three different use cases are possible in the current implementation:

- A: The trader wants to run the bot 24/7, creating orders as long as the bot is running  (infinite_time)
- B: The trader wants to run the bot only during a defined time during the day    (daily_trading_time)
- C: The trader wants to run the bot 24 hours, but until a certain date      (fixed_end_date)

More details are described in the Github issue [#4650](https://github.com/hummingbot/hummingbot/issues/4650).

## Developer Updates

- Replaced `websockets` library with `aiohttp` in `Bitmart`, `Coinbase Pro`, and `Kraken` connector
- Rework the `Time factor (T)` on the `Avellaneda` strategy to allow an infinite time horizon
- Implement changes to `mexc` connector
- Deprecate `MarketBase` abstract class

## Bug Fixes

- [#2084](https://github.com/hummingbot/hummingbot/issues/2084) Fixed incorrect trade fees recorded for some connectors
- [#4712](https://github.com/hummingbot/hummingbot/issues/4712) Fixed for the bottom nav bar, which freezes and stops updating
- [#4738](https://github.com/hummingbot/hummingbot/issues/4738) Fixed the `NoOpenForCancel` error which causes untracked fills in Ascendex. **Thanks to [zappra](https://github.com/zappra) for this fix! 🙏**
- [#4815](https://github.com/hummingbot/hummingbot/issues/4815) Fixed parsing errors on some trading pairs for Beaxy and HitBTC
- [#4828](https://github.com/hummingbot/hummingbot/issues/4828) No printing in the output pane after `status --live` is terminated
- [#4869](https://github.com/hummingbot/hummingbot/issues/4869) Fixed Avellaneda Market Making order refresh tolerance not working
- [#4894](https://github.com/hummingbot/hummingbot/issues/4894) Top bid is assigned top ask in Cross Exchange Market Making
- [$4914](https://github.com/hummingbot/hummingbot/issues/4914) Fixed randomly appearing `RunTimeWarning` on the log pane
- [#4923](https://github.com/hummingbot/hummingbot/pull/4923) Fixed trade monitor freezing
- [#4998](https://github.com/hummingbot/hummingbot/pull/4998) Fixed the argument -h and --help they now print help for the particular command, and these options are also being displayed in dropdown menus

Shown in full with attribution under the source's licence. Licence: Apache-2.0

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.