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

The experimental features are currently in the early stages of development, having been completely rewritten in Rust to support the following 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 L2 Market-By-Price and L3 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 using the same algorithm code: currently for Binance Futures and Bybit. (Rust-only)

Documentation

See full document here.

Getting started

Installation

hftbacktest supports Python 3.10+. 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

Currently, new features are being implemented in Rust due to the limitations of Numba, as performance is crucial given the size of the high-frequency data. The imminent task is to integrate hftbacktest in Python with hftbacktest in Rust by using the Rust implementation as the backend. Meanwhile, the data format, which is currently different, needs to be unified. On the pure Python side, the performance reporting tool should be improved to provide more performance metrics with increased speed.

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 Distribution

hftbacktest-2.1.0.tar.gz (4.2 MB view details)

Uploaded Source

Built Distributions

hftbacktest-2.1.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded PyPy musllinux: musl 1.2+ x86-64

hftbacktest-2.1.0-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl (2.1 MB view details)

Uploaded PyPy musllinux: musl 1.2+ ARMv7l

hftbacktest-2.1.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl (1.4 MB view details)

Uploaded PyPy musllinux: musl 1.2+ ARM64

hftbacktest-2.1.0-pp310-pypy310_pp73-manylinux_2_24_armv7l.whl (1.8 MB view details)

Uploaded PyPy manylinux: glibc 2.24+ ARMv7l

hftbacktest-2.1.0-pp310-pypy310_pp73-manylinux_2_24_aarch64.whl (1.2 MB view details)

Uploaded PyPy manylinux: glibc 2.24+ ARM64

hftbacktest-2.1.0-cp312-none-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.12 Windows x86-64

hftbacktest-2.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

hftbacktest-2.1.0-cp312-cp312-musllinux_1_2_armv7l.whl (2.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARMv7l

hftbacktest-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

hftbacktest-2.1.0-cp312-cp312-manylinux_2_24_armv7l.whl (1.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.24+ ARMv7l

hftbacktest-2.1.0-cp312-cp312-manylinux_2_24_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.24+ ARM64

hftbacktest-2.1.0-cp312-cp312-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

hftbacktest-2.1.0-cp312-cp312-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

hftbacktest-2.1.0-cp311-none-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.11 Windows x86-64

hftbacktest-2.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

hftbacktest-2.1.0-cp311-cp311-musllinux_1_2_armv7l.whl (2.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARMv7l

hftbacktest-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

hftbacktest-2.1.0-cp311-cp311-manylinux_2_24_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.24+ x86-64

hftbacktest-2.1.0-cp311-cp311-manylinux_2_24_armv7l.whl (1.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.24+ ARMv7l

hftbacktest-2.1.0-cp311-cp311-manylinux_2_24_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.24+ ARM64

hftbacktest-2.1.0-cp311-cp311-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

hftbacktest-2.1.0-cp311-cp311-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

hftbacktest-2.1.0-cp310-none-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10 Windows x86-64

hftbacktest-2.1.0-cp310-cp310-musllinux_1_2_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

hftbacktest-2.1.0-cp310-cp310-musllinux_1_2_armv7l.whl (2.1 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARMv7l

hftbacktest-2.1.0-cp310-cp310-musllinux_1_2_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

hftbacktest-2.1.0-cp310-cp310-manylinux_2_24_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.24+ x86-64

hftbacktest-2.1.0-cp310-cp310-manylinux_2_24_armv7l.whl (1.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.24+ ARMv7l

hftbacktest-2.1.0-cp310-cp310-manylinux_2_24_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.24+ ARM64

hftbacktest-2.1.0-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

hftbacktest-2.1.0-cp310-cp310-macosx_10_12_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10 macOS 10.12+ x86-64

File details

Details for the file hftbacktest-2.1.0.tar.gz.

File metadata

  • Download URL: hftbacktest-2.1.0.tar.gz
  • Upload date:
  • Size: 4.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.1

File hashes

Hashes for hftbacktest-2.1.0.tar.gz
Algorithm Hash digest
SHA256 cedee684f70549980b95745a7edb531a4d90ac42cb425ebd07e541e556e42643
MD5 d452b556ca4ce5155822fd860d7891c0
BLAKE2b-256 adf62b3dbf09d592e584a0e08c30696fc9fd295e4d820d241ddebf93e89fe702

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 747ee4aa81bcae48bb76e923b683fb36f189a4ab2cfea1e43e779d2e9b48bb32
MD5 bbd78b51a245aefbeafe928f34edde95
BLAKE2b-256 f7ec99a1856f39d96422c3cb4fb5956faa4abe1c038137321d15ea671eaa5725

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 2e43dc100c5eda5ae113e7d60be4a76ed6cbde8e218446e884f27823a5b34878
MD5 b51c63984856d17df59b41b28e93827f
BLAKE2b-256 252e4a25ac76d3b90a6f9c80c75251e30415c8ce3d7795ff22869d66f6af8dea

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e052176a707b32cc79879c7e7119061e8af29e715d56148a57ab0bc3d6fdef8b
MD5 073f1b43f93e22da919486e8c3f0e567
BLAKE2b-256 67e9ed5e8703e2f3fb812c9b643c0d08bc7979cf2cf9b31b5807bbe98b8f1c0b

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-pp310-pypy310_pp73-manylinux_2_24_armv7l.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-pp310-pypy310_pp73-manylinux_2_24_armv7l.whl
Algorithm Hash digest
SHA256 bbe4056e8f873ab7ee7c2211efe6acd1dc2b966c0e0052d4a99b90fc2e4d8433
MD5 699ae292edaa016e0405eb52fd4e7e10
BLAKE2b-256 3d7bc385f8ddc45689b36284ee3b40127929332372b525e9f25ede2a4c98ee42

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-pp310-pypy310_pp73-manylinux_2_24_aarch64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-pp310-pypy310_pp73-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 17557cea7978ec4822c49e7bff432c4ced097542b15f9368fa005713ebef4145
MD5 300a6baecfa6ab35f49d9a65627250a6
BLAKE2b-256 6a657a0e4b773afe9bab8a3f50e52b15907c726eb9e0a867db64778989e3ad53

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp312-none-win_amd64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 91f7ef1d1aeaf0797e35f0aa74434bc376918c3adf9e3f7b5aa4b9e6ccda7fd7
MD5 91b9dd0212d0eccc213865ebec196715
BLAKE2b-256 54857a5426952fca40fbd0add79fd3c3c61442b5a00581505770f6d16c9a0dab

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ef67e2604f27fe424501000ec5f96565a0f64825b2090bcd78a0d47ead412566
MD5 b9d2b6773b124b159b55d7fcba4c5aaf
BLAKE2b-256 4da4b85b1711497f506f1bcf16f9a85f4eaaafdfce6b740d652c13a45b195a7f

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp312-cp312-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 6d2d8dfdf7d2e289e43d5e0db0926f41b7b9c20c1728586ce6196ac7c9464c6c
MD5 3bbe714f94bdfb7980dedc2b4e838a51
BLAKE2b-256 55a4344eff5705ce4e609c474aba06e4d398fa892224902b6705dd72f1519076

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b2f1c1e9454c5c96e789f6f1dbf521a23c7844c491f673d53937a1b29643127c
MD5 b37a3056307b9d8dcf61aa89f0bd87c9
BLAKE2b-256 dada05efad2954caa31d28361342d99b75ba87dcc7c9ad9cba36b26d8239109a

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp312-cp312-manylinux_2_24_armv7l.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp312-cp312-manylinux_2_24_armv7l.whl
Algorithm Hash digest
SHA256 cfa890d1bb6f38e907835e2126f399063ac475b264d26f030e783911dfdb802f
MD5 113a281a2a9e33c83da1f815dba0e17c
BLAKE2b-256 836584a400437a615b77724874f6f92e62d6c1d215a706ceaf9a9cce218b87a9

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp312-cp312-manylinux_2_24_aarch64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp312-cp312-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 0c5a0424599604a3e36cad944640a80a3ed634e2de422c6f0cde0f99a633ac8f
MD5 fa0194f09218fa2c4fcbdda2dd1aa9c2
BLAKE2b-256 084014e4e8a67037b671de46fc0637d33c681eb7ad119378b978d3eddc9822ba

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 51d146f8ae4155d01369f37ae3e852d238fb9499bb88921963c8b6beed3c49a1
MD5 2b0d738d0406404796b38b81148a45e9
BLAKE2b-256 46895a4b71e331fc6656db6b0ce3b6c57f65a3257ba5b6660396d1de4bffbab8

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bab533978eb64594ff9ae1c37455f32426a2b2d5dfb6716fc4498127cd26c2d6
MD5 6bc5ecee0d3c92f3b71502335fa3565e
BLAKE2b-256 722da3aa59b45d62a20faf0c60e9d52eef2ca02948ba9d6f931365e562c4d19a

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 a6bdce4c268018393eae535fe1035faef2bffcd008329d76f5a864637b1c6b61
MD5 01f4fce8c1326588a1b4c72fcbb95b3e
BLAKE2b-256 032f3547a244bf05da9c6b3459be147fa598448ebb576acd7cebcc5f9acb3e63

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0ede156719efaefeab00103fbdefcec59d9a8ea7396f06b36bda5ac96108ebb2
MD5 03a311a10f20bdea107d1178aa6c130b
BLAKE2b-256 34f0bc861af6950203a21ae07652efa398894c3005af89ec953a69934b6958de

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp311-cp311-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp311-cp311-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 c16641dc9e7eda2ca6a4246404c5425f0de60db518bb08de396c19eb890b77a5
MD5 749b4f4b14eb2b6334a3d8f372046450
BLAKE2b-256 8be779ebf1cd4f860a1f5e870bef89e87c8776303da7aad118539d3ef4646a79

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5e77a0d57509050f4fdfb5245a5ea9193d8f29f485d79952c60b54b261e31e25
MD5 3012d128b2200142bfffade2c7640647
BLAKE2b-256 012f848b50a6e3c7965373d76be82e67704d442c771de7e8a1927f59e4139537

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp311-cp311-manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp311-cp311-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 f3008b04f6f45c663ce7481b1fb59cb670bf9a7243c2e2bd3438c1dfaf93e3d2
MD5 53b145ea2ddb4cc138a6a307e869b070
BLAKE2b-256 af89c4aadc8917b1dafb7a380966f13c63db3d4a2bf8e354f460c4e5916556ef

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp311-cp311-manylinux_2_24_armv7l.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp311-cp311-manylinux_2_24_armv7l.whl
Algorithm Hash digest
SHA256 f431196500d74392254dd4bc1795105bb118112c498c4c0811efce80918b61e4
MD5 90daf157ac21777329c17ce563207d14
BLAKE2b-256 c2f171c2d5fe98a452b4e0fca6056c8fb2066200017e98d10a39213f89552855

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp311-cp311-manylinux_2_24_aarch64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp311-cp311-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 ed728de5dc1f9470956daccecab25d0ac0324d13f8e2f8d991b677a4506510da
MD5 ae42227a75e34929d802f5e229c40f03
BLAKE2b-256 a3a6628d8d2f1d0ab152f1e9a583c309e6fd43c5201e8f0d006a955536e9f185

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4cf69cc46926a733f1e9a3d5637a57196071e78ea6b544f218834a7b09ab920b
MD5 866762f65d015dbd39d0cd85eaa0d1fa
BLAKE2b-256 03a3c518d4736a78a8fcf35ace6f84a83cc6f9fb982be25ada6e0c092c63c9f2

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d2638609bccb7fbbab50755f66fd58c1f3aa4e864479fca0ba88766b5d160202
MD5 d65a73870e8285de67a7922bb109b4df
BLAKE2b-256 89af82adfe82a61065d1369a7813ecc18ab93a9c90064ccac5b245129170059e

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp310-none-win_amd64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 87dca2bb3cd78fe6fc35240fca48fbfd02c338d732676ff1c62c43467bf1ebd7
MD5 0e80a370e1585195f7e760f6edc13702
BLAKE2b-256 fe38e35a57afd00ea55ef9d7189917f03a0e8321970d107496159e94bfca8a6f

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 73e6a4993f753c29cf99951eef438ed5f49a2ebf43bae3cf8df1e9e24d05c12f
MD5 349ce3fe8fb74b4aea8a917f847a946a
BLAKE2b-256 5aad7a02a96e39393559ce192e9fe1b240acba1c8db90c4e963a23f727b902a7

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp310-cp310-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp310-cp310-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 fadad06be9efea08287f33954ff6c53921dac91106ffe4cc57e057e7a13cf98f
MD5 2450b4e6a40f9064b15713789ecaba38
BLAKE2b-256 232ca8479cd8a384418145a9e5a783d04655e789853d5c136a2911cbb6358164

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 567705aae10c5e57f30f80762ec67ee787582b412c471689042102b0390bbdb2
MD5 b14ff5a69dc55668bae379da568517f5
BLAKE2b-256 f6942df4f4a1c94ed7587b5e523caaa2305ce7d6e3669a04a1ead093ac27f3a3

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp310-cp310-manylinux_2_24_x86_64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp310-cp310-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 ddd0ada7cf8fcd2d1904c5c7bac1e87011249e6f2b6173b8beee62bb27fa8f9e
MD5 1831cbe6a0978db29817c91f012c9c20
BLAKE2b-256 fe646d4e9bada4566aa26f71b6de790e3614a25de8a93e1a343ec5d064189291

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp310-cp310-manylinux_2_24_armv7l.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp310-cp310-manylinux_2_24_armv7l.whl
Algorithm Hash digest
SHA256 8d265a5d0649e67eac72380bc3d2039dc5d704c06bcb42fd4b097640843efd6e
MD5 fc73b8409c38b4ddc80aa8a7e111f45b
BLAKE2b-256 93002f14e39df565111cb4cde6f4170626c62949b80d43390efdc8f4c57b212f

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp310-cp310-manylinux_2_24_aarch64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp310-cp310-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 61dd6c23d627ca711b2e383d45733f61d210f863a1b54aa7e5d429491dff1a0a
MD5 431cb4f2d33b286f1b513d265e8d6325
BLAKE2b-256 82957c36572010b1b9e81d888fd2e35f92ec16d6278e44ca20b94f6a1dc07c72

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 18c4e14bd360421213c13ce2591650ca8dd527fea4654308544175c480cff3cb
MD5 ed61ad8cf7ff065f22418c48a8277d52
BLAKE2b-256 c288c055861d3b841e4bacd61f6567ac70f470141a5d5c8cb3a417bbb1e50ed1

See more details on using hashes here.

File details

Details for the file hftbacktest-2.1.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for hftbacktest-2.1.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 75a51c58613067cf18441d4d3170c793ce0c81cce21e61a5925b7ea5d4cc3d42
MD5 d92182625008b4bb93de745a5ee1bdab
BLAKE2b-256 6dc09e0870a079c0c9182699547a65905a36935b0e2fb5af387633b3e4c3a06c

See more details on using hashes here.

Supported by

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