Skip to content
All library documents

Hummingbot 2.6.1: Backtesting, Statistical Arbitrage, and Connector Updates

Article Hummingbot docs

Summary

These release notes describe changes to Hummingbot’s client and Gateway, including a refactor of decentralized exchange connectors and reliability work on exchange connections. For strategy developers, the main additions include controller risk controls such as global stop-loss and leverage settings, plus a statistical-arbitrage controller that updates hedge ratios and Z-scores, balances paired orders, and uses live funding rates to adjust signals. The notes also report faster backtesting from replacing repeated timestamp filtering with datetime-index lookups.

The stated evidence is limited to the project’s release summary: it reports a backtesting performance gain above 40 percent, but provides no benchmark setup, datasets, or independent validation. The notes also cover connector guides, API fixes, and future plans; those operational details do not demonstrate that any strategy is profitable. Results depend on implementation, market conditions, and execution.

Key ideas

  • The new statistical-arbitrage controller uses hedge ratios, Z-scores, paired orders, and live funding data.
  • Controller updates add global stop-loss, strategy-level leverage, and position reduction on opposite signals.
  • Backtesting timestamp lookups were changed to use datetime indexing, with a reported performance improvement.
  • Gateway connector refactoring standardizes patterns and error handling for decentralized exchange integrations.
  • The reported performance result lacks benchmark details and does not establish trading profitability.

Tags

Full text
# Hummingbot v2.6.1 Release Notes


# Hummingbot v2.6.1 Release Notes

*Released on June 9, 2025*

!!! note
    The Hummingbot client release was updated to `v2.6.1` on June 12, 2025 to hot-fix critical issues with the market making controllers.


| Repository | Description | GitHub Release | DockerHub Release |
|------------|-------------|----------------|-------------------|
| [Hummingbot](https://github.com/hummingbot/hummingbot) | Core Client | [`v2.6.1`](https://github.com/hummingbot/hummingbot/releases/tag/v2.6.1) | [`version-2.6.1`](https://hub.docker.com/r/hummingbot/hummingbot/tags?name=version-2.6.1) |
| [Gateway](https://github.com/hummingbot/gateway) | DEX Middleware | [`v2.6.0`](https://github.com/hummingbot/gateway/releases/tag/v2.6.0) | [`version-2.6.0`](https://hub.docker.com/r/hummingbot/gateway/tags?name=version-2.6.0) |

!!! note
    Other Hummingbot repositories such as [Dashboard](https://github.com/hummingbot/dashboard), [Backend-API](https://github.com/hummingbot/backend-api), [Quant-Lab](https://github.com/hummingbot/quant-lab), and [Deploy](https://github.com/hummingbot/deploy) follow a continuous deployment model without fixed version releases. Use the `main` branch for these repositories.

See the full changelogs on GitHub:

- [Hummingbot v2.6.1 Changelog](https://github.com/hummingbot/hummingbot/releases/tag/v2.6.1)
- [Gateway v2.6.0 Changelog](https://github.com/hummingbot/gateway/releases/tag/v2.6.0)

## How to Update

### Docker

Re-run the [Deploy](https://github.com/hummingbot/deploy) setup script:
```bash
git clone https://github.com/hummingbot/deploy.git
cd deploy
bash setup.sh
```

For individual images, exit running containers, pull the latest images, and restart:
```bash
docker compose down
docker pull hummingbot/hummingbot:latest
docker compose up -d
```

### Source

Update the branches of each repo to this release by running:
```bash
git pull origin master # Hummingbot
git pull origin main # Gateway
```

Afterwards, follow the instructions to re-install dependencies and compile the codebase for each repository. See [Install Hummingbot from Source](../installation/hummingbot-client.md) and [Install Gateway from Source](../gateway/installation.md).

## Release Highlights

### Gateway Refactor Updates

This release makes substantial progress toward completing the Gateway simplification initiative approved in [HGP-63](https://snapshot.box/#/s:hbot-ncp.eth/proposal/0x5cc3540ee219787d5c842bc1ccdb11aab46203bb7f0be658b6b40858501a8e4c), whichs to streamline Gateway's architecture and improve its maintainability. The refactor establishes a new standard for DEX connectors that significantly reduces complexity while improving performance and developer experience.

**Key Improvements:**

- **Improved Code Modularity**: Reorganized project structure for better developer experience
- **Enhanced Error Handling**: Standardized error handling with descriptive messages
- **Standardized Connector Pattern**: Clear pattern for DEX connectors that provide templates for community developers

**Updated Connectors:**

This release updates the **Uniswap** and **Ethereum** connectors to the new simplified standard, serving as reference implementations for future connector development. Additionally, this update completes the refactoring of **Solana DEX connectors** including Jupiter, Raydium, and Meteora.

Now that the refactor is complete, Hummingbot Foundation will publish bounties to refactor other Gateway connectors and review/merge pull requests to add other Ethereum Virtual Machine (EVM) and Solana Virtual Machine (SVM) based DEXs.

**Updated Test Scripts:**

The following scripts have been updated to test the refactored connectors:

- [`amm_data_feed_example.py`](https://github.com/hummingbot/hummingbot/blob/master/strategies/scripts/amm_data_feed_example.py) - Demonstrates real-time price feeds from AMM and CLMM DEXs
- [`amm_trade_example.py`](https://github.com/hummingbot/hummingbot/blob/master/strategies/scripts/amm_trade_example.py) - Triggers a swap when price reaches a certain level on AMM and CLMM DEXs
- [`clmm_manage_position.py`](https://github.com/hummingbot/hummingbot/blob/master/strategies/scripts/clmm_manage_position.py) - Automatically enter and exit LP positions on CLMM DEXs

Pull Request: [#444](https://github.com/hummingbot/gateway/pull/444)

**What's Next in v2.7:**

The next release will introduce major improvements to transaction handling and the Hummingbot-Gateway communication interface:

- **Improved Transaction Landing**: Complete control over transaction fees with dynamic adjustment based on network conditions, configurable retry strategies, and enhanced visibility into transaction costs
- **Streamlined Hummingbot-Gateway Inteface**: Unified interaction through a single `GatewayTxHandler`, simplified API with generic methods, and more stateless Gateway architecture for better reliability
- **Better User Experience**: More reliable DEX trade execution, improved transaction success rates, and easier troubleshooting with enhanced monitoring capabilities


### Improved Backtesting Performance

This PR introduces significant performance improvements to the backtesting engine by optimizing timestamp-based lookups. The key changes include:

- Replaced timestamp-based filtering with pandas datetime index lookups in `ExecutorSimulation` class, using `searchsorted` for efficient timestamp lookups (by far the most impactful change)

- Modified `BacktestingEngineBase` to use datetime index for all timestamp operations

- Updated both `DCAExecutorSimulator` and `PositionExecutorSimulator` to use datetime-based slicing instead of timestamp filtering

These changes have resulted in a performance improvement of over 40% in backtesting operations by:

- Eliminating expensive DataFrame filtering operations

- Leveraging pandas' optimized datetime index operations

- Reducing memory usage by avoiding creation of intermediate filtered DataFrames


**Special thanks to [WuonParticle](https://github.com/WuonParticle) for this contribution! 🙏**

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


### Controller Improvements

**Controller Framework & Strategy Enhancements**

- Added global stop-loss, per-strategy leverage support, and automatic position-reduction on opposite signals, giving V2 controllers stronger risk controls.

- This release introduces a new [statistical-arbitrage controller](https://github.com/hummingbot/hummingbot/blob/master/controllers/generic/stat_arb.py) that continuously computes hedge ratios and Z-scores, maintains balanced paired orders, and uses live funding-rate data to fine-tune signals—streaming real-time metrics like hedge ratio, funding, and pair PnL throughout execution.

- `generic.basic_order_example` simplified (async update loop, dynamic mid-price, lower default leverage)

- Candle helpers and sample scripts updated to showcase the new API surface

**Market Data Upgrades**

- Introduced `MarketDataProvider.get_funding_info()`, exposing real-time funding-rate objects to strategies and scripts—unlocking funding-aware logic such as that used by `stat_arb`.

**Binance Connector Reliability Improvements** *(Perpetual & Spot)*

- Listen-key lifecycle overhauled: periodic 30-minute keep-alive pings, graceful key cleanup at shutdown, and automatic stream re-opening after errors—dramatically reducing “listen key expired” disconnects.

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

### New XRPL Connector Guide

We've published a comprehensive guide on using the XRP Ledger (XRPL) connector with Hummingbot. The guide covers:

- Setting up and configuring the XRPL connector
- Understanding XRPL's unique features like auto-bridging and path-finding
- Working with both the native XRP token and issued tokens on XRPL
- Executing trades on XRPL's built-in DEX
- Best practices for market making on XRPL

Check out the full guide: [Using XRP Ledger with Hummingbot](../blog/posts/using-xrpl-with-hummingbot/index.md)

### Improved MEXC Connector

This release includes significant improvements to the MEXC connector's reliability and stability:

- **Enhanced Listen Key Management**: Improved lifecycle management with retry mechanisms and exponential backoff
- **Better Error Handling**: More resilient connection handling with proper error recovery
- **Resource Cleanup**: Fixed race conditions and ensured proper cleanup on disconnection
- **Improved Stability**: Resolved timing issues with listen key refresh that could cause unexpected disconnections

These improvements make the MEXC connector more reliable for long-running trading sessions and reduce the likelihood of unexpected disconnections.

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

### Improvements to Other Exchange Connectors

* [#7394](https://github.com/hummingbot/hummingbot/pull/7394) – Added `Dexalot` candles feed **Thanks to [yancong001](https://github.com/yancong001) for this fix! 🙏**
* [#7423](https://github.com/hummingbot/hummingbot/pull/7423) – Fixed the issue with `Coinbase` rate-limits due to mis-use of private limits for public calls **Thanks to [MementoRC](https://github.com/MementoRC) for this fix! 🙏**
* [#7506](https://github.com/hummingbot/hummingbot/pull/7506) – Added AMM pool price as well as some improvements to the `XRPL` connector **Thanks to [mlguys](https://github.com/mlguys) for this fix! 🙏**
* [#7513](https://github.com/hummingbot/hummingbot/pull/7513) – Fixed issue with getting last-traded prices for `Coinbase` **Thanks to [WarrenFerrell](https://github.com/WarrenFerrell) for this fix! 🙏**
* [#7524](https://github.com/hummingbot/hummingbot/pull/7524) – Optimized the Kraken connector to always make a single API call for `get_last_traded_prices` **Thanks to [WuonParticle](https://github.com/WuonParticle) for this fix! 🙏**
* [#7576](https://github.com/hummingbot/hummingbot/pull/7576) – Fixed empty snapshot issue for `Derive perpetual` **Thanks to [isreallee82](https://github.com/isreallee82) for this fix! 🙏**
* [#7599](https://github.com/hummingbot/hummingbot/pull/7599) – Refactored the `NDAX` connector to the latest standards **Thanks to [vic-en](https://github.com/vic-en) for this fix! 🙏**


### Other Updates

#### **[`hummingbot`](https://github.com/hummingbot/hummingbot)**

* [#7197](https://github.com/hummingbot/hummingbot/pull/7197) – Removed connectors that didn't pass Epoch 11 polls
* [#7522](https://github.com/hummingbot/hummingbot/pull/7522) – Added linting for `pre-commit` hooks **Thanks to [WuonParticle](https://github.com/WuonParticle) for this fix! 🙏**
* [#7528](https://github.com/hummingbot/hummingbot/pull/7528) – Updated `CoinGecko` rate source to support API keys **Thanks to [WuonParticle](https://github.com/WuonParticle) for this fix! 🙏**
* [#7549](https://github.com/hummingbot/hummingbot/pull/7549) – Added `GroupedSetDict`, `MarketDict`, `LambdaDict` types and integrated `add_or_update` for cleaner trading-pair updates  **Thanks to [WuonParticle](https://github.com/WuonParticle) for this fix! 🙏**
* [#7622](https://github.com/hummingbot/hummingbot/pull/7622) – Optimized the throttler CPU usage **Thanks to [cs-mshr](https://github.com/cs-mshr) for this fix! 🙏**
* [#7633](https://github.com/hummingbot/hummingbot/pull/7633) – Fixed the `pkg_resources is deprecated as an API` error with the client
* [#7634](https://github.com/hummingbot/hummingbot/pull/7634) – Fixed issues with failing tests


#### **[`gateway`](https://github.com/hummingbot/gateway)**

* [#436](https://github.com/hummingbot/gateway/pull/436) – Added AMM `position-info` route for Raydium
* [#442](https://github.com/hummingbot/gateway/pull/442) – Added `source-maps` for compiled Typescript **Thanks to [tigeba](https://github.com/tigeba) for this fix! 🙏**

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.