Skip to main content

A high-frequency trading and market-making backtesting tool accounts for limit orders, queue positions, and latencies, utilizing full tick data for trades and order books.

Project description

CodeQL Python Version Package Version Downloads Rust Version Rust crates.io version License Documentation Status Roadmap Github

High-Frequency Trading Backtesting Tool

This framework is designed for developing high frequency trading and market making strategies. It focuses on accounting for both feed and order latencies, as well as the order queue position for order fill simulation. The framework aims to provide more accurate market replay-based backtesting, based on full order book and trade tick feed data.

Key Features

  • Working in Numba JIT function (Python).

  • Complete tick-by-tick simulation with a customizable time interval or based on the feed and order receipt.

  • Full order book reconstruction based on Level-2 Market-By-Price and Level-3 Market-By-Order feeds.

  • Backtest accounting for both feed and order latency, using provided models or your own custom model.

  • Order fill simulation that takes into account the order queue position, using provided models or your own custom model.

  • Backtesting of multi-asset and multi-exchange models

  • Deployment of a live trading bot for quick prototyping and testing using the same algorithm code: currently for Binance Futures and Bybit. (Rust-only)

Documentation

See full document here.

Tutorials you’ll likely find interesting:

Why Accurate Backtesting Matters — Not Just Conservative Approach

Trading is a highly competitive field where only the small edges usually exist, but they can still make a significant difference. Because of this, backtesting must accurately simulate real-world conditions.: It should neither rely on an overly pessimistic approach that hides these small edges and profit opportunities, nor on an overly optimistic one that overstates them through unrealistic simulation. Or at the very least, you should clearly understand what differs from live trading and by how much, since sometimes fully accurate backtesting is not practical due to the time it requires.

This is not about overfitting at the start—before you even consider issues like overfitting, you need confidence that your backtesting truly reflects real-world execution. For example, if you run a live trading strategy in January 2025, the backtest for that exact period should produce results that closely align with the actual results. Once you’ve validated that your backtesting can accurately reproduce live trading results, then you can proceed to deeper research, optimization, and considerations around overfitting.

Accurate backtesting is the foundation. Without it, all further analysis—whether conservative or aggressive—becomes unreliable.

Getting started

Installation

hftbacktest supports Python 3.11+. You can install hftbacktest using pip:

pip install hftbacktest

Or you can clone the latest development version from the Git repository with:

git clone https://github.com/nkaz001/hftbacktest

Data Source & Format

Please see Data or Data Preparation.

You can also find some data here, hosted by the supporter.

A Quick Example

Get a glimpse of what backtesting with hftbacktest looks like with these code snippets:

@njit
def market_making_algo(hbt):
    asset_no = 0
    tick_size = hbt.depth(asset_no).tick_size
    lot_size = hbt.depth(asset_no).lot_size

    # in nanoseconds
    while hbt.elapse(10_000_000) == 0:
        hbt.clear_inactive_orders(asset_no)

        a = 1
        b = 1
        c = 1
        hs = 1

        # Alpha, it can be a combination of several indicators.
        forecast = 0
        # In HFT, it can be various measurements of short-term market movements,
        # such as the high-low range in the last X minutes.
        volatility = 0
        # Delta risk, it can be a combination of several risks.
        position = hbt.position(asset_no)
        risk = (c + volatility) * position
        half_spread = (c + volatility) * hs

        max_notional_position = 1000
        notional_qty = 100

        depth = hbt.depth(asset_no)

        mid_price = (depth.best_bid + depth.best_ask) / 2.0

        # fair value pricing = mid_price + a * forecast
        #                      or underlying(correlated asset) + adjustment(basis + cost + etc) + a * forecast
        # risk skewing = -b * risk
        reservation_price = mid_price + a * forecast - b * risk
        new_bid = reservation_price - half_spread
        new_ask = reservation_price + half_spread

        new_bid_tick = min(np.round(new_bid / tick_size), depth.best_bid_tick)
        new_ask_tick = max(np.round(new_ask / tick_size), depth.best_ask_tick)

        order_qty = np.round(notional_qty / mid_price / lot_size) * lot_size

        # Elapses a process time.
        if not hbt.elapse(1_000_000) != 0:
            return False

        last_order_id = -1
        update_bid = True
        update_ask = True
        buy_limit_exceeded = position * mid_price > max_notional_position
        sell_limit_exceeded = position * mid_price < -max_notional_position
        orders = hbt.orders(asset_no)
        order_values = orders.values()
        while order_values.has_next():
            order = order_values.get()
            if order.side == BUY:
                if order.price_tick == new_bid_tick or buy_limit_exceeded:
                    update_bid = False
                if order.cancellable and (update_bid or buy_limit_exceeded):
                    hbt.cancel(asset_no, order.order_id, False)
                    last_order_id = order.order_id
            elif order.side == SELL:
                if order.price_tick == new_ask_tick or sell_limit_exceeded:
                    update_ask = False
                if order.cancellable and (update_ask or sell_limit_exceeded):
                    hbt.cancel(asset_no, order.order_id, False)
                    last_order_id = order.order_id

        # It can be combined with a grid trading strategy by submitting multiple orders to capture better spreads and
        # have queue position.
        # This approach requires more sophisticated logic to efficiently manage resting orders in the order book.
        if update_bid:
            # There is only one order at a given price, with new_bid_tick used as the order ID.
            order_id = new_bid_tick
            hbt.submit_buy_order(asset_no, order_id, new_bid_tick * tick_size, order_qty, GTX, LIMIT, False)
            last_order_id = order_id
        if update_ask:
            # There is only one order at a given price, with new_ask_tick used as the order ID.
            order_id = new_ask_tick
            hbt.submit_sell_order(asset_no, order_id, new_ask_tick * tick_size, order_qty, GTX, LIMIT, False)
            last_order_id = order_id

        # All order requests are considered to be requested at the same time.
        # Waits until one of the order responses is received.
        if last_order_id >= 0:
            # Waits for the order response for a maximum of 5 seconds.
            timeout = 5_000_000_000
            if not hbt.wait_order_response(asset_no, last_order_id, timeout):
                return False

    return True

Tutorials

Examples

You can find more examples in examples directory and Rust examples.

The complete process of backtesting Binance Futures

high-frequency gridtrading: The complete process of backtesting Binance Futures using a high-frequency grid trading strategy implemented in Rust.

Migration to V2

Please see the migration guide.

Roadmap

Please see the roadmap.

Contributing

Thank you for considering contributing to hftbacktest! Welcome any and all help to improve the project. If you have an idea for an enhancement or a bug fix, please open an issue or discussion on GitHub to discuss it.

The following items are examples of contributions you can make to this project:

Please see the roadmap.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (5.8 MB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl (5.7 MB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (5.6 MB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl (5.6 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-manylinux_2_28_armv7l.whl (5.4 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARMv7l

pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl (5.4 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

pm_hbtbacktest-1.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

pm_hbtbacktest-1.0.0-cp314-cp314t-musllinux_1_2_armv7l.whl (5.6 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

pm_hbtbacktest-1.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl (5.6 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

pm_hbtbacktest-1.0.0-cp314-cp314t-manylinux_2_28_armv7l.whl (5.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARMv7l

pm_hbtbacktest-1.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl (5.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

pm_hbtbacktest-1.0.0-cp314-cp314-win_amd64.whl (4.8 MB view details)

Uploaded CPython 3.14Windows x86-64

pm_hbtbacktest-1.0.0-cp314-cp314-musllinux_1_2_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

pm_hbtbacktest-1.0.0-cp314-cp314-musllinux_1_2_armv7l.whl (5.7 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARMv7l

pm_hbtbacktest-1.0.0-cp314-cp314-musllinux_1_2_aarch64.whl (5.6 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

pm_hbtbacktest-1.0.0-cp314-cp314-manylinux_2_28_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

pm_hbtbacktest-1.0.0-cp314-cp314-manylinux_2_28_armv7l.whl (5.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARMv7l

pm_hbtbacktest-1.0.0-cp314-cp314-manylinux_2_28_aarch64.whl (5.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

pm_hbtbacktest-1.0.0-cp314-cp314-macosx_11_0_arm64.whl (4.8 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

pm_hbtbacktest-1.0.0-cp314-cp314-macosx_10_12_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

pm_hbtbacktest-1.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

pm_hbtbacktest-1.0.0-cp313-cp313t-musllinux_1_2_armv7l.whl (5.7 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

pm_hbtbacktest-1.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl (5.6 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

pm_hbtbacktest-1.0.0-cp313-cp313t-manylinux_2_28_armv7l.whl (5.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARMv7l

pm_hbtbacktest-1.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl (5.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

pm_hbtbacktest-1.0.0-cp313-cp313-win_amd64.whl (4.8 MB view details)

Uploaded CPython 3.13Windows x86-64

pm_hbtbacktest-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pm_hbtbacktest-1.0.0-cp313-cp313-musllinux_1_2_armv7l.whl (5.7 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARMv7l

pm_hbtbacktest-1.0.0-cp313-cp313-musllinux_1_2_aarch64.whl (5.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

pm_hbtbacktest-1.0.0-cp313-cp313-manylinux_2_28_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

pm_hbtbacktest-1.0.0-cp313-cp313-manylinux_2_28_armv7l.whl (5.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARMv7l

pm_hbtbacktest-1.0.0-cp313-cp313-manylinux_2_28_aarch64.whl (5.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

pm_hbtbacktest-1.0.0-cp313-cp313-macosx_11_0_arm64.whl (4.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

pm_hbtbacktest-1.0.0-cp313-cp313-macosx_10_12_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

pm_hbtbacktest-1.0.0-cp312-cp312-win_amd64.whl (4.8 MB view details)

Uploaded CPython 3.12Windows x86-64

pm_hbtbacktest-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pm_hbtbacktest-1.0.0-cp312-cp312-musllinux_1_2_armv7l.whl (5.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARMv7l

pm_hbtbacktest-1.0.0-cp312-cp312-musllinux_1_2_aarch64.whl (5.6 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

pm_hbtbacktest-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

pm_hbtbacktest-1.0.0-cp312-cp312-manylinux_2_28_armv7l.whl (5.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARMv7l

pm_hbtbacktest-1.0.0-cp312-cp312-manylinux_2_28_aarch64.whl (5.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

pm_hbtbacktest-1.0.0-cp312-cp312-macosx_11_0_arm64.whl (4.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

pm_hbtbacktest-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

pm_hbtbacktest-1.0.0-cp311-cp311-win_amd64.whl (4.8 MB view details)

Uploaded CPython 3.11Windows x86-64

pm_hbtbacktest-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl (5.8 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pm_hbtbacktest-1.0.0-cp311-cp311-musllinux_1_2_armv7l.whl (5.7 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARMv7l

pm_hbtbacktest-1.0.0-cp311-cp311-musllinux_1_2_aarch64.whl (5.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

pm_hbtbacktest-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

pm_hbtbacktest-1.0.0-cp311-cp311-manylinux_2_28_armv7l.whl (5.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARMv7l

pm_hbtbacktest-1.0.0-cp311-cp311-manylinux_2_28_aarch64.whl (5.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

pm_hbtbacktest-1.0.0-cp311-cp311-macosx_11_0_arm64.whl (4.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pm_hbtbacktest-1.0.0-cp311-cp311-macosx_10_12_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

File details

Details for the file pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 108df8edd7a00011bbb007689309519efbdd4dba4f640efeb66ed0ab01dd4f2a
MD5 b5a7db03488f134287d9347537aa2dd7
BLAKE2b-256 27dafdc074c1117364b1b7685188ea160fa5c1660af87ee3042097361973e299

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 4b8e0ac95f8b9eb0595f60bb42c0f92131a9b7c3e4a050433148e53a029966ca
MD5 a56fe11003f28af91cab622dc3537e70
BLAKE2b-256 74f387f586c109fc961babb171a197f7a9e2731867cd8cfafc8ac4a96c048b74

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f563c79db4f210fe484a947f30a5dc9b099a700928644fbe0c53afa4ef7107ca
MD5 2eda98e34eec7dfe7e2d2aa6a1f992fa
BLAKE2b-256 cecf40cad834cabfb033e3869355b490192ee0ed2c6e22dab5704f413226bd22

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 82e4f3e2603a542a6f8d2198c40688c2e3a66b2e47fba564cc8f8263f9b8da75
MD5 d80450a514f86502c6a2eee8b8613c11
BLAKE2b-256 af17476f85fbf5a4a95229eca524380dbffa32d60474c3a1d80adb34d684e8cf

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 602d6e7ed9904fd9a9458c1ec86188de645b9adef5ea529962d169fb17507b82
MD5 2982897b64459c6809497c46e22e9493
BLAKE2b-256 142552365f16db60d560366582f41ba056fc7e8a815b0b21355dbbe6ebac55ea

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7c569f9ce3bc498367e018f3e23dd3baaf92a1e46cbd5693bfde2a7cc0deb6d6
MD5 fab5cecfe1b1a18340c04e4aa1f641f4
BLAKE2b-256 0f73bdd41305f869b1249fb2ad76f637be563d9d70be4d54c919866b21a0a58f

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 045fbaf922db1b6f8a34d08cbb3163880bee2ab575d04dcbd05c26c338aba3bb
MD5 03d42061f2a748474f92c341037ac06f
BLAKE2b-256 b2f4afaee78a354ee667bd4e3efe188b9785529fe1a6d68bb115a5f3deddadd0

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 e670f4b656fd4cc30fbc5cc130a954aebe2fc1c776f6eb44fda3764db537f505
MD5 90fb6cdc880aa3191de19431cdbc2c10
BLAKE2b-256 7c9cccb3f83e2dd565bfa997f278e10afa4a329063cccb594dc5a0ac6072e837

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 06f87d14586d5cc67759401c60506fa02564edc08ab7b3a26ebe57f9b9850cc5
MD5 4c4e47c646c8f22f436b7c98ce963950
BLAKE2b-256 f9c85be9fcefa9beac381835bd5b27054a9b945ee1d0433aeafe6ed2c77216dd

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314t-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314t-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 f4257a44e64e6e43d094ef25f165f0a1f37dac4035bd713a8ba6b4ea916eba08
MD5 e68c34a2d1087593b3d3ee3bb1b69496
BLAKE2b-256 e9e56a4c4ddb0c59832b9756c266095286fce3ee40e9b4d12585350309202250

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 faaba598d6be6e6905cf1c93b0d7639e8569947f50f4c2b0f309dc19718222d3
MD5 232b0ded59ec85bcc509af1bb871b0d4
BLAKE2b-256 b3b34936443bb9fa8493989c199e563cb3ac00957cc1d95aa89021f705767dd6

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 a3fa776b1aaec388fe6a4ddb38b4f7bacac48f7b29e5be87008e9a099a608e62
MD5 2d443cceb3fd40675548fe8bbd801795
BLAKE2b-256 0e8ed3c17adac09b1a182c1df1e4148bde2dfbfaf95ec3618a70d27734e653d0

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e19a80eaf1c29dbb7342aed15db87f4738f910d8d95c0655ffcfc3d8f5f7017b
MD5 a30bd21d509c48829204fc2e4240bc41
BLAKE2b-256 199860a8ad7aaee71ced52e3ffde67e221e9faf0ed20888ec0257656953ab001

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 ab5c2d88c3b549b1b4108d84c923e5dc7b1b54b993d1aecb72041bd58aa1141b
MD5 653a9973b16120b3339fb9787fb5c332
BLAKE2b-256 edc253d1bce703088275cbf18350fd6350221b254599e4c97586e9fc92c09146

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5b8288545973022c6c1684457639bd8d2ce849c699b139ea295718838bc54066
MD5 1bf03f6a084b1368314f6667ae56b1ad
BLAKE2b-256 ff9e7d91396b752f4408ff20bb50516d34692fe938f0693743568fc45bff0339

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c920d19558a0b116b53703ed82d5adca79e32632fdcb94bf4a292a086258e4a
MD5 1853c60201e5c7ae7dcb7205ceead6f9
BLAKE2b-256 ecb3e65f4fdb245bc242b14e0c19cc486547a781e19dd5b4dc74c4155bb58d78

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 94cfe474f96e77332c86772b3fb3b01138f608f8224c18eaea0cfa871390a625
MD5 23df83aa2895037d435950b63380e329
BLAKE2b-256 7e0b1ba6025818760b7cae29aa4bb9630df7282e718f598446697900519ee3cf

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 35b7c136c99b23f4e9d56c73781b82ba496bae27316a910f46a79a1a7605c914
MD5 2d1ba4081114100810c0a78a2f6c2c11
BLAKE2b-256 4eaed02bdd3af4ac856d76aee7afe04b0d7b552e34913cbb42e2de3edd0ce5b8

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 de810c3b8920518512753b63fd8b476c8cfaf2d62130883dfd35dc7e69480694
MD5 b65e6b6137ec9c1535d7446840ce1b47
BLAKE2b-256 7dec24c486835b09d3beed55b4251b708a5c5ec6220348cd1e48e76407cbbdc2

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0740685256d9cbcb7f6586161f23d8d440e313f117fa381cbbe9159fedaebc86
MD5 d19f6835d3b0797cc038dac242a63a89
BLAKE2b-256 d5e31c643c3984bb97c35d782cc5d212a7c8001296b7e225e0e2a66687f84e81

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3f4690f169b21ed949d153c69a8a994b915e0c5233fd1276020b694509b6c3a4
MD5 70e66d3adba9313e2054e6a7b583743d
BLAKE2b-256 1f74f3883fde63b1d05f3555c3b5479906d03811249d6526302c63e5624c224a

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 19cfb989c7812d6cfc61a2493b3c07bff4ae4dd1669e8341c61f1b1802b7517a
MD5 a77c778b4e6b96f4d7730f070c0d8245
BLAKE2b-256 8abae9f8959ceb0015129cb11f54099e81966c58bb4c557917fc88273d4fe263

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ac41edf1634bde855f26540b5efe3a5bf691309f9431c6cfe6feb49c5baae321
MD5 e6986bd57e6aa595a2ec0ebbe9544a52
BLAKE2b-256 f385aa9af17ce5683158932e70539eeea849bf90f03c32aa7420562e36774915

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313t-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313t-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 4a8388b3181b6afe000fd3527d604f9ff06f753aa26cd5c975e3a4386581a987
MD5 ba751b187c2e046ff5a77a22f45c6dea
BLAKE2b-256 d926d8974c347253cb08864d88c3fc7c3ca1def6d2fc4ac8b6275aee31eb439e

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0c6b17179b203a6d1f14d36333586af01db6d4616ff4370c17e9068a19f8cb67
MD5 c304104e01b72f96142184c464d9bf9a
BLAKE2b-256 0a5b6384dc2815c662c73909fbee650eb283812e78b9519d08d70f21190360e5

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a30bdb4b59b6c60bfbae69bbd7dd66403290e32aa258a7c2a14ca9efb4c19c8a
MD5 440a3d6d21842ea4f0d1d4cca3a77794
BLAKE2b-256 29b7139e570027ea170df40adb96667a3814c9a935b70e2f8274ac324e583426

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3e6d702d41d72ccf18bfa7784298a81e7c1efc7d30e962cc3d7782536e550a2c
MD5 df9e54a1ef480529c4355a42bc37fe3f
BLAKE2b-256 3a70dbb36dc40738595b1bcd3cc4416e6579b124b773c8ed650d22987956e0d5

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 e792d2cb970d8464bc72806f9477907690b20543aa0a58a35bfb777e0bd68ba0
MD5 2b4bd506523545a2f4d90736770a77a8
BLAKE2b-256 c77baaf624185497fb39b23386bdbf1d319cd94f6fcaefe9096c325d502bcd78

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3fa4aa000a6d65eb5fc9ce541aa19ad512f828f3ec64c6bd86ed3d2a6dfeedcb
MD5 8d47bc1abef3636a35f47a2f65e4d384
BLAKE2b-256 5f09fad3af6041fd94fffd9e28118d052f35c937917c44ba6db4889d2990891f

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9c0d7d16e99c7c806cd3d68131a6acef777cf9a81cda39c41a697bce29d50881
MD5 28c46be3ab616a305ca35b79f89a8de5
BLAKE2b-256 08da61dbf9cdd6362c678e575d9d22083e70e56ecc805f6b969b020ccd289935

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 69bdfbdd95d6dced4284b3c4161e44861ad8275af7178057080a8d9aac181415
MD5 d86381bc43f3be9bfdd3bff3e97d0f2c
BLAKE2b-256 da951c4c5a8b6c87b7f94ec57fb524d1fbd95c56f44f2e632a48c903a87cde20

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 16ec01bd0efc742ff1b848683b4e511db66232f49fa60fb99660b12121539dd4
MD5 c5a15fa21dde352b314b7be867578d3d
BLAKE2b-256 098aef996ad90a651f79aa53edf3e925cedb11b3ca9cd1f14460fff352dfc54f

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 56dcb1ebf6401b491c05dfd8c479689d290043b66304aa27e0b7f4ff755051ba
MD5 a14ae6ac5eea5cc4c595e25d89ec4806
BLAKE2b-256 26df885184e373d62b029b4c659011710f9755168349e6be00726f3b468505d3

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0e78e46af377b5a3cd8d8c6bb90379d06f51742bb0afdf18581ae4b08d5b30fb
MD5 44e2ed661d81b17a01362cc41f69ba10
BLAKE2b-256 2bfd13acccee4d063122e312186b95f7ba73e8a29a78aba92748a86a62e65e47

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 be010630027a34812a1a6e98946f754c1cbb3a28a503196f3b904b560558ac17
MD5 f227a9f1b74e04940112bdea11f8989c
BLAKE2b-256 52088c4b01b5cebbf138ce982a1f12ce959a6ef79215510dcf2add1ed8404ac9

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d43f19cd9c22bb98472a4e8ba4f8f05999502cd95c5ef2b6ba585b4bada8a59b
MD5 850fe36f23ea5ebd9ff2538660bf1f73
BLAKE2b-256 db565a94622cd96f61d8c8a760621683c57f37e9ac39046b9675bb857358d791

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp312-cp312-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 3534b93e54810178e782797c36fec1adf96ae62d5e8e03355dfc0e28925bb137
MD5 9c8c2ad2476f4973297d3d397a0c3937
BLAKE2b-256 b5a1e13a6f3137483a914e79fd0c78ff9a3e0a7a3bd3688f4b155b3682aa8bb5

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e42fded7281d2530b32c5661d85ec70b0898628debc4a538f219008e49a7e95e
MD5 27b25b72c3c0ac7134b4cc0c3030dafd
BLAKE2b-256 97c115e14c335a0da417abdba9157c62e630c03cdfb3e917331f4dfa37fa4691

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 19460a889cf7756243ecbdf8ccfad85e504175aa67885b3b3d95ab3f0739458e
MD5 caea39c35e0743165adb79948827a05a
BLAKE2b-256 31816c2cece7a71b839671192b07b1145f7a322eaa2304d1efea3640400cce2a

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp312-cp312-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp312-cp312-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 4f071c297731deb22f43a120a87975933cffb3809c41f5c05769394eceef2f37
MD5 632433f069abd24c1759c953018450af
BLAKE2b-256 940394f35785234af8d2b7015e7367ad05ae7f0643cd914a8f10408959135d5f

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2d845a5783110db5154e9bf6ee8d02cd01e3879c4a068bfc11ded567cb614a95
MD5 7ed7f718c11c73197e95ae580a63a1fb
BLAKE2b-256 87a4db5ada6df06b99d40eb53589bc576511203c38bd0b26cd9b32048b4a2fd0

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bee6d76b7ed6e4283dc2576103f43172d8dfdae42573099d79823419d5acff7f
MD5 9e68626ad056e3b1732e7820f1a49e11
BLAKE2b-256 923d9679572f6c09a38aff8d4e92d354a68ed15e864dd89c9dbd8bce5c8358fa

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 00ec30cc92cac0bc1e8f638577b240a7c70779071552d0b40edeeb018b238264
MD5 f89eb74e2f0152850d7837fe728255fe
BLAKE2b-256 131d12bd1faebbc99183812d2ce3fa222304bd2d0636ca54bef6c7af915b8ef1

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1b71d7d54864b94087bcfe7f914fa8faaf46b0aa99459a56ba29ed1cec7d6413
MD5 12b1a48f08ff065b311c468793a7060e
BLAKE2b-256 8c8e2857079b4048494b50c946cc6811f815e551b16d4b3353a8ec71d8c22d90

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7e779d706522ce0b00510a19dd850fefd69fbc49348284a039621fc4360c29c9
MD5 21d9a120f730fb7ca6cf2ee8d6d2e5ea
BLAKE2b-256 676b5afc22e3761792a05779e912411bd7ac32180ad2eb0b9fca43856ea27ade

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp311-cp311-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp311-cp311-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 4a9b3b19ea0e27930582846dc1a6f2ad15792f55c1603cb12c6ce9896b2d4878
MD5 92c41b406ab54e5bf1eac72db5c8cc0d
BLAKE2b-256 7b38965f87206a686b2af4fd0f5e3870eb6097759a7ea03a4fbe3f0199909063

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 35a6f2091738d24e1c4f92406e53198c20390c216e5a64b734d389b38edfdccd
MD5 b9242170a3ff70e01d20aab627e5324d
BLAKE2b-256 7e69cf1ac00b401c8fc5ae6c782e267b1bd3799fa2b7bbc35bb4651afae04ea1

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9127bd0ad83034dfdcca545d4a307674309f11882c8babd85a3d967efd89f75a
MD5 df6f3d6e1dc281e3136efb644b979d9a
BLAKE2b-256 e0f4b251e50d9b237690e77419f7b160164e7e756c216f87a5c9b78ecc79bc6f

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp311-cp311-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp311-cp311-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 790cc4ddca75b5629b429f0e995f472d8ee70e2915e3837703ef15b10e71860b
MD5 433629e5cbcd1cdebba6b98d6ddc8800
BLAKE2b-256 cf6353f2aa3f10af51eba484dcd76349ae4d9f9166977fc7e4a2ca8bd7051ef3

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3d85546d4dd12b0e64a15a1ce7a480a1d9f234455a6a89310666db7a7427a11b
MD5 7cf1beda5b8e6600c84c67fa741e1b8d
BLAKE2b-256 7055cb55691f0334a348f999411cc312eb5849da9e08cfe75fe2441422ebb7e6

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0fb335a9e850dd4ca3a3f816eba070152f3bc1a2e4c550039eb06027d0b13523
MD5 5b5ee0f6cc45244d6f706d534a3028eb
BLAKE2b-256 70f66e2e0cc36f0c0967b72e42d2088480ff21b39cec1dbdd96229af9d405ee3

See more details on using hashes here.

File details

Details for the file pm_hbtbacktest-1.0.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pm_hbtbacktest-1.0.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a92e017bc40b52a62a07dbd44e5d75deaa28788f5c54ddf2b2b547947f1251b9
MD5 393b3f84ba08fb8b25466cb8c9086c15
BLAKE2b-256 5031a3df5b124240112c072dc4c0fb1ac7ee9d769af78755e047e2734801c247

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page