Skip to content
All library documents

Hummingbot 2.14.0: Backtesting, Connectors, and CEX-DEX Execution

Article Hummingbot docs

Summary

These release notes describe updates to Hummingbot trading infrastructure, including four new perpetual futures connectors and changes to Gateway’s decentralized exchange integration. The connector additions support order and position workflows across several venues. Gateway now identifies connectors by blockchain network, a change intended to support centralized-to-decentralized exchange strategies and shared executor routing for orders, liquidity provision, and arbitrage.

Backtesting changes include grid simulation using candle highs and lows, tracking held positions and realized versus unrealized profit and loss, consistent entry and exit fee treatment, and optional charts. The release also routes fee and profit-and-loss quote conversions through a Rate Oracle, which can use inverse trading pairs when a direct conversion is unavailable. These are software capability and accounting updates, not evidence that any strategy performs well. Candle-based grid fills may simplify intrabar execution, and the notes provide no comparative validation or strategy results.

Key ideas

  • The release adds four perpetual futures connectors with order and position management support.
  • Gateway connector identifiers now use network names to support centralized-to-decentralized exchange workflows.
  • Backtesting additions cover grid simulation, position holds, profit-and-loss breakdowns, fees, and optional visualization.
  • A Rate Oracle handles quote conversions for perpetual fees and profit-and-loss reporting, including inverse pairs.
  • The notes describe platform features and fixes but provide no strategy performance results.

Tags

Full text
# Hummingbot v2.14.0 Release Notes


# Hummingbot v2.14.0 Release Notes

*Released on April 20, 2026*

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

!!! note
    Other Hummingbot repositories such as [Hummingbot-API](https://github.com/hummingbot/hummingbot-api), [Hummingbot MCP](https://github.com/hummingbot/mcp), [Hummingbot Skills](https://github.com/hummingbot/skills), [Quants-Lab](https://github.com/hummingbot/quant-lab), and [Condor](https://github.com/hummingbot/condor) follow a continuous deployment model without fixed version releases. Use the `main` branch for these repositories.

## How to Install / Update

- **Condor + Hummingbot API**: See the [Condor Quickstart](../installation/condor.md) or full documentation at [condor.hummingbot.org](https://condor.hummingbot.org)
- **Hummingbot Client**: See the [Hummingbot Client Quickstart](../installation/hummingbot-client.md)

## Release Highlights

### 🔗 New Connectors

This release adds four new perpetual connectors, expanding Hummingbot's reach across derivatives venues.

#### 🏛️ Architect

Perpetual futures connector for [Architect Exchange](https://architect.exchange) with sandbox environment for testing. Supports order placement, cancellation, fills, and position lifecycle with one-way position mode and token-specific leverage.

See [Architect](../exchanges/architect/index.md) for documentation on how to use this connector.

**Bounty:** [#7919](https://github.com/hummingbot/hummingbot/issues/7919) | **PR:** [#7951](https://github.com/hummingbot/hummingbot/pull/7951) | **Thanks to [petioptrv](https://github.com/petioptrv)! 🙏**

#### ⚡ Evedex

Perpetual futures connector for [Evedex](https://evedex.com/), an Arbitrum-based perpetual DEX with integrated market data and user streams built on Centrifugo. Registers Evedex rate source modes for the Rate Oracle ecosystem.

See [Evedex](../exchanges/evedex/index.md) for documentation on how to use this connector.

**PR:** [#7995](https://github.com/hummingbot/hummingbot/pull/7995) | **Thanks to [isreallee82](https://github.com/isreallee82)! 🙏**

#### 🔊 Decibel

Perpetual futures connector for [Decibel](https://app.decibel.trade/), an Apto-based DEX via [Geomi](https://geomi.dev/) API, built on the Decibel [Python SDK](https://github.com/decibeltrade/python-sdk). Supports perpetual market making with orders, cancellations, fills, and position tracking.

See [Decibel](../exchanges/decibel/index.md) for documentation on how to use this connector.

**Bounty:** [#8028](https://github.com/hummingbot/hummingbot/issues/8028) | **PR:** [#8098](https://github.com/hummingbot/hummingbot/pull/8098) | **Thanks to [dizpers](https://github.com/dizpers)! 🙏**

#### 🎯 GRVT

Perpetual futures connector for [GRVT](https://grvt.io/), a hybrid derivatives exchange with self-custodial perpetual futures. Place, update, and manage perpetual orders and positions through the standard Hummingbot derivative connector model.

See [GRVT](../exchanges/grvt/index.md) for documentation on how to use this connector.

**Bounty:** [#8046](https://github.com/hummingbot/hummingbot/issues/8046) | **PR:** [#8107](https://github.com/hummingbot/hummingbot/pull/8107) | **Thanks to [gtwototoo](https://github.com/gtwototoo)! 🙏**

### 🌉 Gateway DEX Connector Refactor

This release refactors Gateway DEX connector integration so that `connector_name` uses the **network identifier** (e.g., `solana-mainnet-beta`, `ethereum-mainnet`) instead of the DEX format. This architectural change streamlines CEX-DEX strategies between blockchain networks and centralized exchanges.

**Executor Updates**

* **Order Executor:** Works with Gateway connectors using network-based `connector_name`
* **LP Executor:** Uses `lp_provider` field instead of separate `dex_name` + `trading_type`. Adds connector-level retry logic.
* **XEMM & Arbitrage Executors:** Now support CEX-DEX strategies using the network-based `connector_name` architecture.

**lp_rebalancer Controller**

* Uses LP Executor for liquidity positions and Order Executor for autoswap (automatic token swapping when balance insufficient)
* Auto-close via executor limit prices (replaces timer-based rebalancing)
* Removes `swap_provider` config (uses network config automatically)

**Core Integration:** Merged via PR [#8150](https://github.com/hummingbot/hummingbot/pull/8150), with related changes in [hummingbot-api #142](https://github.com/hummingbot/hummingbot-api/pull/142) and [gateway #620](https://github.com/hummingbot/gateway/pull/620).

### 📊 Backtesting Improvements

This release upgrades the backtesting framework with richer executor simulation, clearer position and fee accounting, and optional interactive visualization for validating strategies on historical OHLCV data.

**Highlights**

* **Grid Executor Simulator:** Simulates grid-style executors on historical candles with configurable grid levels, fills inferred from candle high/low, take-profit recycling, and per-row performance metrics.
* **Position Holds & P&L:** Introduces `BacktestPositionHold` to accumulate positions when executors keep exposure open, with separate handling for executor vs. position P&L to avoid double-counting. Adds tick-level P&L timeseries with breakdowns for realized and unrealized components.
* **Fee Accounting:** Applies consistent round-trip fee accounting (entry and exit) across position, DCA, and grid simulators.
* **Visualization:** Extends `BacktestingResult` with optional Plotly charts (candles with executor entry/exit markers, cumulative P&L, and position held over time).
* **Core Integration:** Merged via PR [#8177](https://github.com/hummingbot/hummingbot/pull/8177).

!!! note
    The backtest scripts ([backtest_bollinger_v2.py](https://github.com/hummingbot/hummingbot/blob/master/strategies/scripts/backtest_bollinger_v2.py), [backtest_grid_strike.py](https://github.com/hummingbot/hummingbot/blob/master/strategies/scripts/backtest_grid_strike.py), [backtest_pmm_mister.py](https://github.com/hummingbot/hummingbot/blob/master/strategies/scripts/backtest_pmm_mister.py)) are included for testing/validation purposes and will be removed in a future PR.

### 💱 Rate Oracle Refactor

This release refactors **fee and PnL calculation for perpetuals** so quote conversions flow through the **Rate Oracle** instead of threading exchange instances through orders, fees, and `MarketsRecorder`. The Rate Oracle is wired up with your connectors at initialization and can resolve **inverse trading pairs** when a direct quote is unavailable—yielding more consistent fee and PnL reporting across spot and perpetual workflows, including Strategy V2 executors.

**Highlights**

* **Oracle-Centric Fees & PnL:** Routes quote conversions for perpetual fees and PnL through the Rate Oracle (removing exchange arguments from orders, fees, and `MarketsRecorder`); initializes the oracle with active connectors and resolves **inverse pairs** when a direct quote path is missing.
* **Strategy V2 & Trade History:** Updates Strategy V2 executors to the new API and fixes `MarketsRecorder` serialization so orders, trades, and fees persist and reload correctly from SQLite across restarts.
* **Core Integration:** Merged via PR [#8149](https://github.com/hummingbot/hummingbot/pull/8149).

### 🔌 Binance Futures WebSocket Update

This release updates the **Binance Futures** perpetuals connector to use the new WebSocket endpoint format, ensuring compatibility with [Binance's upcoming migration](https://developers.binance.com/docs/derivatives/change-log) that retires the legacy `wss://fstream-auth.binance.com` domain by April 23, 2026. User stream connections now use the standard `wss://fstream.binance.com/ws/<ListenKey>` format.

**Highlights**

* **WebSocket Migration:** Updates user stream connections from the legacy `fstream-auth` domain to the standard `fstream` domain with the new URL path structure.
* **Connection Stability:** Ensures user stream connections and order updates remain stable during longer runs after the upstream WebSocket changes.
* **Core Integration:** Merged via PR [#8149](https://github.com/hummingbot/hummingbot/pull/8149).


### 🌊 XRPL Connector Improvements

This release brings several enhancements to the **XRPL** connector, adding new trading pairs and fixing order handling issues.

**Highlights**

* **New Trading Pairs:** Added BBRL token pairs (BBRL-RLUSD, BBRL-XRP, BBRL-USDC) and EUROP-USDC markets ([#8120](https://github.com/hummingbot/hummingbot/pull/8120)).
* **Order Precision Fix:** Improved digit count logic to prevent crashes when order amounts are in scientific notation ([#8121](https://github.com/hummingbot/hummingbot/pull/8121)).
* **Security & Custom Markets:** Added URL masking utility to protect sensitive node URLs in logs, and fixed custom market resolution ([#8122](https://github.com/hummingbot/hummingbot/pull/8122)).
* **Trade Fill Processing:** Fixed edge case where BBRL orders were not processing trade fills correctly ([#8133](https://github.com/hummingbot/hummingbot/pull/8133)).

**Thanks to [mlguys](https://github.com/mlguys) for these contributions! 🙏**

### Other Updates

**hummingbot/hummingbot**

* **[#8131](https://github.com/hummingbot/hummingbot/pull/8131)** – Fixed config formatting workflow issues
* **[#8180](https://github.com/hummingbot/hummingbot/pull/8180)** – Improved executor shutdown behavior and retry handling, including clearer terminal status outcomes when stopping executors.
* **[#8164](https://github.com/hummingbot/hummingbot/pull/8164)** – Updated Backpack perpetual balance calculation  **Thanks to [tomasgaudino](https://github.com/tomasgaudino) for this contribution! 🙏**
* **[#8166](https://github.com/hummingbot/hummingbot/pull/8166)** – Ignored invalid Hyperliquid spot testnet universe entries  **Thanks to [marcuspocus](https://github.com/marcuspocus) for this contribution! 🙏**
* **[#8170](https://github.com/hummingbot/hummingbot/pull/8170)** – Fixed Hyperliquid perpetual unified account mode  **Thanks to [isreallee82](https://github.com/isreallee82) for this contribution! 🙏**



**hummingbot/gateway**

* **[#619](https://github.com/hummingbot/gateway/pull/619)** – Fixed auto-update of default wallet when deleted wallet was the default  
* **[#620](https://github.com/hummingbot/gateway/pull/620)** – Removed double-counting of priority fee in `getFee`  
* **[#621](https://github.com/hummingbot/gateway/pull/621)** – Removed axios (a recently compromised library) and replaced with native fetch for HTTP requests  
* **[#626](https://github.com/hummingbot/gateway/pull/626)** – Removed required `poolAddress` in Orca route schemas to fix `position-info` and `remove-liquidity` workflow failures. **Thanks to [mlguys](https://github.com/mlguys) for this contribution! 🙏**

**hummingbot/hummingbot-api**

* **[#142](https://github.com/hummingbot/hummingbot-api/pull/142)** – Updated Gateway executor API to use network-based `connector_name` and introduced `lp_provider` for LP executor routing.
* **[#144](https://github.com/hummingbot/hummingbot-api/pull/144)** – Added Mintlify docs compatibility, removed trailing slashes from routes, and fixed the `available_images` endpoint.
* **[#141](https://github.com/hummingbot/hummingbot-api/pull/141)** – Added WebSocket support to execution market data and executors.
* **[#140](https://github.com/hummingbot/hummingbot-api/pull/140)** – Added WebSocket support for order books, trades, and candles data streams.
* **[#136](https://github.com/hummingbot/hummingbot-api/pull/138)** – Added controller ID to executors.
* **[#134](https://github.com/hummingbot/hummingbot-api/pull/134)** – Added a function to pull the latest Hummingbot Docker image during setup.
* **[#131](https://github.com/hummingbot/hummingbot-api/pull/131)** – Improved Gateway wallet management and bot orchestration endpoints, including default wallet handling.

**hummingbot/condor**

* **[#59](https://github.com/hummingbot/condor/pull/59)** – Fixed agent issues by adding `claude-agent-acp`, improving LM Studio and Ollama compatibility, and adding Codex support.
* **[#51](https://github.com/hummingbot/condor/pull/51)** – Refactored the Makefile to use NVM for Node.js commands.
* **[#49](https://github.com/hummingbot/condor/pull/49)** – Improved shell reliability by using parameter expansion for variable checks.
* **[#44](https://github.com/hummingbot/condor/pull/44)** – Simplified `CONDOR.md` and added input and output tokens to usage tracking.
* **[#36](https://github.com/hummingbot/condor/pull/36)** – Fixed `/agent` reliability with `claude-agent-acp`, concurrent handler updates, a Condor MCP server, `CLAUDE.md`, dynamic MCP paths, and Telegram deeplink utilities.
* **[#32](https://github.com/hummingbot/condor/pull/32)** – Improved agent mode, adapted multi-server management, and addressed minor issues across the Condor Telegram bot.

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.