Skip to content
All library documents

Hummingbot 1.20.0: Modular Strategies, Backtesting, and New Connectors

Article Hummingbot docs

Summary

These release notes describe Hummingbot 1.20.0, centered on a V2 strategy framework for building modular strategies that can be backtested and deployed. The framework separates market data candles, controllers that coordinate strategy decisions, and executors that manage orders and trade execution. Initial templates cover directional and market-making approaches, and the Dashboard gains strategy performance views, backtesting support, and deployment of multiple controller configurations. A newly available Python library also supports flexible use of Hummingbot components, including retrieval of historical candle data.

The release adds Woo X and Kujira connectors and CoinCap as an alternative rate-oracle source, alongside platform and connector maintenance updates. The notes describe capabilities and implementation changes, not trading performance or strategy results. They also flag the Dashboard as under active development at the time of release, so its features and interfaces were still subject to change. The release is useful as a description of tooling for strategy development and execution, rather than evidence for any particular trading method.

Key ideas

  • The V2 framework organizes strategies into candles, controllers, and executors.
  • The framework supports modular directional and market-making strategies that can be backtested and deployed.
  • Dashboard updates add performance visualizations, backtesting, and management of multiple bot configurations.
  • The Python library enables programmatic access to Hummingbot components and candle data.
  • Woo X, Kujira, and CoinCap are among the new exchange connectors and rate-oracle source described.
  • The release notes provide no evidence about strategy profitability, and the Dashboard was still under development.

Tags

Full text
# Hummingbot v1.20.0 Release Notes


# Hummingbot v1.20.0 Release Notes

*Released on October 02, 2023*

## Introduction

We're thrilled to present Hummingbot version 1.20.0! This latest iteration introduces the **V2 strategy framework** which enables backtest-able, multi-bot strategies. For developers and advanced users, the **Hummingbot Python Library** has been rolled out. We've also integrated **CoinCap** as a new rate oracle source and expanded the list of connectors with **Woo X** and **Kujira**.


| Repository | Description | GitHub Release | DockerHub Release |
|------------|-------------|----------------|-------------------|
| [Hummingbot](https://github.com/hummingbot/hummingbot) | Core Trading Engine | [`v1.20.0`](https://github.com/hummingbot/hummingbot/releases/tag/v1.20.0) | [`version-1.20.0`](https://hub.docker.com/r/hummingbot/hummingbot/tags?name=version-1.20.0) |
| [Gateway](https://github.com/hummingbot/gateway) | DEX Connector Middleware | [`v1.20.0`](https://github.com/hummingbot/gateway/releases/tag/v1.20.0) | [`version-1.20.0`](https://hub.docker.com/r/hummingbot/gateway/tags?name=version-1.20.0) |

To update to the latest version, clone the latest [`hummingbot/deploy-examples`](https://github.com/hummingbot/deploy-examples) repository and use the `hummingbot-update.sh` script under the `/bash_scripts` folder or run the following Docker command to pull the latest image:

```bash
docker pull hummingbot/hummingbot:latest
```

!!! tip "New Start Command"
    If you're using the source version, use the `./start` command to launch Hummingbot.

## Monthly Community Call

Join the **Wednesday Oct 4th** community call on [Discord](https://discord.gg/hummingbot) to learn about the new features in this release and other Hummingbot news. 

Here is the recording of the event:

<iframe style="width:100%; min-height:400px;" src="https://www.youtube.com/embed/dD_erU5pdaM?si=-3GT8hfAw0OuL7XK" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

For more community events, check out the [Hummingbot Events Calendar](https://lu.ma/u/hummingbot).

## V2 Strategy Framework

Hummingbot's V2 Strategy Framework is officially released!

The new [V2 Strategy Framework](../strategies/v2-strategies/index.md) significantly expands Hummingbot's capabilities, allowing users to create modular, backtestable, and sophisticated strategies. Unlike the monolithic V1 strategies, V2 Strategies are designed to be highly adaptable, allowing seamless integration of various components. Whether you're a technical expert or a trading novice, you can easily create, backtest, and deploy strategies via [Dashboard](../dashboard/index.md).

We're introducing specialized templates for different trading paradigms, starting with Directional and Market Making strategies. These new strategy templates allow users to combine different composable components:

* **Candles**: These structure both historical and real-time market data into OHLCV format, generating refined signals for trading decisions.
* **Controllers**: These orchestrate the overall strategy, deciding which Executors to deploy or adjust based on signals generated by Candles.
* **Executors**: These are the operational elements that handle precise trade execution, adapt to market changes, and manage the order lifecycle.

Watch this video for a preview:

<iframe style="width:100%; min-height:400px;" src="https://www.youtube.com/embed/GhvTaIWHqrU?si=-3GT8hfAw0OuL7XK" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>


**Pull Request:** [#6520](https://github.com/hummingbot/hummingbot/pull/6520)

## New Dashboard Features

!!! warning "Under Active Development"
    Dashboard is slated for incorporation into official Hummingbot releases before end of this year, but it is still under active development and new features and improvements are being added continuously. We highly encourage user feedback at this stage; feel free to share your thoughts and suggestions on Discord or Github. If you're excited to explore its capabilities, check out the [beta](https://github.com/hummingbot/dashboard).

Additions to [Dashboard](../dashboard/index.md) in the past month include:

- **Enhanced Strategy Performance**: [#68](https://github.com/hummingbot/dashboard/pull/68) revamped the Strategy Performance page, adding many charting and visualization components. **Thanks to [tomasgaudino](https://github.com/tomasgaudino) for this contribution! 🙏**
- **Docker Error Fix**: [#64](https://github.com/hummingbot/dashboard/pull/64) fixed a bug with the Docker version of Dashboard.
- **Backtesting and Bot Deployment**: [#69](https://github.com/hummingbot/dashboard/pull/69) incorporated the Hummingbot Library, adapted backtesting engine to use it, saves configuration files for the trials selected, and allowed users for deploy instances with multiple saved controller configs.
- **Master Bot Credentials**: [#62](https://github.com/hummingbot/dashboard/pull/62) lets you use a single set of credentials to manage all your bot instances, streamlining the setup process.
- **Bot Status**: [#63](https://github.com/hummingbot/dashboard/pull/63) added a specialized parser that neatly formats the status of running bots, making it easier to monitor their activity.

## Hummingbot Library

We are excited to announce that Hummingbot is now available as a [Python library](https://pypi.org/project/hummingbot/), enabling more flexible usage and customization for developers!

To try it out, install the library into your Python environment with:

```
pip install hummingbot
```

After installation is complete, enter your Python shell and run these commands to fetch historical OHLVC candles for BTC-USDT on Binance Futures for the past 30 days into a `candles_test.csv` file:

```python
import asyncio

from hummingbot.data_feed.candles_feed.candles_factory import CandlesFactory, CandlesConfig

async def collect_candles():
    candles = CandlesFactory.get_candle(CandlesConfig(connector="binance_perpetual", trading_pair="BTC-USDT", interval="3m", max_records=1440))
    candles.start()
    while not candles.is_ready:
        print(f"Candles not ready yet! Missing {candles._candles.maxlen - len(candles._candles)}")
        await asyncio.sleep(1)
    df = candles.candles_df
    df.to_csv("candles_test.csv", index=False)

asyncio.run(collect_candles())

```

**Pull Request:** [#6576](https://github.com/hummingbot/hummingbot/pull/6576)

## Update Cython version to 3.0

This upgrade not only brings in the latest features and bug fixes from Cython:

* Modified the environment.yml dependencies to upgrade Cython to the latest 3.0 version (to move out from the alpha version the project is currently depending on).

* Upgrading to the latest version allow Hummingbot to include all latest bugfixes. It will also allow the community to add the new functionality included in Cython 3.0 to generate a compiled Cythonized version of a pure Python module by just adding some Cython decorators to classes/functions.

**Pull Request:** [#6560](https://github.com/hummingbot/hummingbot/pull/6560)

**Thanks to [aarmoa](https://github.com/aarmoa) for this contribution! 🙏**


## New Chain and DEX Connector: Kujira

[Kujira](https://kujira.app) is a layer 1 ecosystem built on cosmos, blockchain known for its interoperability. [Kujira Fin](https://fin.kujira.network/), is a decentralized order book exchange. It uses `BOW` as the market maker for liquidity. They claim no risk of impermanent loss with low gas fees and maker/taker fees.

See Kujira for the chain docs and Kujira Fin for the exchange connector docs.

**Pull Requests:** [#6399](https://github.com/hummingbot/hummingbot/pull/6399),  [#138](https://github.com/hummingbot/gateway/pull/138)

**Snapshot Proposal:** <https://snapshot.org/#/hbot-prp.eth/proposal/0x7dbd4a6f3cc7460ca6f56415a57b9727ca7a9227be625efdc4e71dee3d0d0781>

**Thanks to [funttastic](https://github.com/funttastic) and [yourtrading-ai](https://github.com/yourtrading-ai) for this contribution! 🙏**


## New CEX Connector: Woo X

Launched in 2019, [WOO X](https://woo.org) is a trading platform featuring deep liquidity, low trading costs and powerful tools & analytics. Some of you may also know us from our decentralized swap product `WOOFi`, which is one of the most-used cross-chain swaps with over half a million unique monthly active wallets.


**Pull Requests:** [#6380](https://github.com/hummingbot/hummingbot/pull/6380)

**Snapshot Proposal:** <https://snapshot.org/#/hbot-prp.eth/proposal/0x46c15f8b9cbbd97ebc8b83340bd748d5f68e84082d24383b91abdc3d8b9168c6>

**Thanks to [waterquarks](https://github.com/waterquarks) for this contribution! 🙏**


## New Rate Oracle Source: CoinCap

This update introduces the CoinCap rate source to the rate oracle, offering an alternative to CoinGecko with price streaming capabilities. 

Users can obtain an API key [here](https://coincap.io/api-key).

**Pull Request:**[#6534](https://github.com/hummingbot/hummingbot/pull/6534)

**Thanks to [CoinAlpha](https://github.com/CoinAlpha) for this contribution! 🙏**

## Other Updates

### Hummingbot

* [#6525](https://github.com/hummingbot/hummingbot/pull/6525) Refactored [MEXC](../exchanges/mexc/index.md) spot connector to the latest standard **Thanks to [yancong001](https://github.com/yancong001) for this fix! 🙏** 
* [#6530](https://github.com/hummingbot/hummingbot/pull/6530) Fixed issue with [Gate.io](../exchanges/gate-io/index.md) showing inconsistent order amount **Thanks to [yancong001](https://github.com/yancong001) for this fix! 🙏**
* [#6536](https://github.com/hummingbot/hummingbot/pull/6536) Fixed bug with [DyDx](../exchanges/dydx.md) market orders **Thanks to [yancong001](https://github.com/yancong001) for this fix! 🙏** 
* [#6551](https://github.com/hummingbot/hummingbot/pull/6551) Fixed issue with [Gate.io](../exchanges/gate-io/index.md) derivative position error **Thanks to [yancong001](https://github.com/yancong001) for this fix! 🙏**
* [#6552](https://github.com/hummingbot/hummingbot/pull/6552) Refactored [Injective](../exchanges/injective.md) to use v2 rate limits **Thanks to [aarmoa](https://github.com/aarmoa) for this contribution! 🙏**
* [#6556](https://github.com/hummingbot/hummingbot/pull/6556) Removed restriction of the diff cover lib
* [#6558](https://github.com/hummingbot/hummingbot/pull/6558) Refactored Polkadex to use v2 API  **Thanks to [CoinAlpha](https://github.com/CoinAlpha) for this fix! 🙏**
* [#6565](https://github.com/hummingbot/hummingbot/pull/6565) Refactored [Injective](../exchanges/injective.md) cpnnector configuration to use SDK v0.8 **Thanks to [aarmoa](https://github.com/aarmoa) for this contribution! 🙏**
* [#6566](https://github.com/hummingbot/hummingbot/pull/6566) Modified `start` command to use quickstart arguments
* [#6571](https://github.com/hummingbot/hummingbot/pull/6571) Fixed issue with [DyDx](../exchanges/dydx.md) market order accuracy **Thanks to [yancong001](https://github.com/yancong001) for this fix! 🙏** 
* [#6573](https://github.com/hummingbot/hummingbot/pull/6573) Fixed [Bitmart](../exchanges/bitmart/index.md) order detail **Thanks to [yancong001](https://github.com/tomasgaudino) for this fix! 🙏**
* [#6578](https://github.com/hummingbot/hummingbot/pull/6578) Fixed incorrect position size for market orders in [Kucoin Perpetual](../exchanges/kucoin/index.md) **Thanks to [yancong001](https://github.com/yancong001) for this fix! 🙏**


### Gateway

* [#196](https://github.com/hummingbot/gateway/pull/196) Added a check for `.pem` files in the Gateway setup script

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.