Skip to main content

A high-performance algorithmic trading platform and event-driven backtester

Project description

codecov pythons pypi-version pypi-format Downloads

Branch Version Status
master version build
nightly version build
develop version build
Platform Rust Python
Linux (x86_64) 1.81.0+ 3.10+
macOS (arm64) 1.81.0+ 3.10+
Windows (x86_64) 1.81.0+ 3.10+

Introduction

NautilusTrader is an open-source, high-performance, production-grade algorithmic trading platform, providing quantitative traders with the ability to backtest portfolios of automated trading strategies on historical data with an event-driven engine, and also deploy those same strategies live, with no code changes.

The platform is 'AI-first', designed to develop and deploy algorithmic trading strategies within a highly performant and robust Python native environment. This helps to address the parity challenge of keeping the Python research/backtest environment, consistent with the production live trading environment.

NautilusTraders design, architecture and implementation philosophy holds software correctness and safety at the highest level, with the aim of supporting Python native, mission-critical, trading system backtesting and live deployment workloads.

The platform is also universal and asset class agnostic - with any REST, WebSocket or FIX API able to be integrated via modular adapters. Thus, it can handle high-frequency trading operations for any asset classes including FX, Equities, Futures, Options, CFDs, Crypto and Betting - across multiple venues simultaneously.

Features

  • Fast: Core written in Rust with asynchronous networking using tokio
  • Reliable: Type safety and thread safety through Rust. Redis backed performant state persistence
  • Portable: OS independent, runs on Linux, macOS, Windows. Deploy using Docker
  • Flexible: Modular adapters mean any REST, WebSocket, or FIX API can be integrated
  • Advanced: Time in force IOC, FOK, GTD, AT_THE_OPEN, AT_THE_CLOSE, advanced order types and conditional triggers. Execution instructions post-only, reduce-only, and icebergs. Contingency order lists including OCO, OTO
  • Customizable: Add user-defined custom components, or assemble entire systems from scratch leveraging the cache and message bus
  • Backtesting: Run with multiple venues, instruments and strategies simultaneously using historical quote tick, trade tick, bar, order book and custom data with nanosecond resolution
  • Live: Use identical strategy implementations between backtesting and live deployments
  • Multi-venue: Multiple venue capabilities facilitate market making and statistical arbitrage strategies
  • AI Training: Backtest engine fast enough to be used to train AI trading agents (RL/ES)

Alt text

nautilus - from ancient Greek 'sailor' and naus 'ship'.

The nautilus shell consists of modular chambers with a growth factor which approximates a logarithmic spiral. The idea is that this can be translated to the aesthetics of design and architecture.

Why NautilusTrader?

  • Highly performant event-driven Python: Native binary core components
  • Parity between backtesting and live trading: Identical strategy code
  • Reduced operational risk: Risk management functionality, logical correctness and type safety
  • Highly extendable: Message bus, custom components and actors, custom data, custom adapters

Traditionally, trading strategy research and backtesting might be conducted in Python (or other suitable language) using vectorized methods, with the strategy then needing to be reimplemented in a more event-drive way using C++, C#, Java or other statically typed language(s). The reasoning here is that vectorized backtesting code cannot express the granular time and event dependent complexity of real-time trading, where compiled languages have proven to be more suitable due to their inherently higher performance, and type safety.

One of the key advantages of NautilusTrader here, is that this reimplementation step is now circumvented - as the critical core components of the platform have all been written entirely in Rust or Cython. This means we're using the right tools for the job, where systems programming languages compile performant binaries, with CPython C extension modules then able to offer a Python native environment, suitable for professional quantitative traders and trading firms.

Why Python?

Python was originally created decades ago as a simple scripting language with a clean straight forward syntax. It has since evolved into a fully fledged general purpose object-oriented programming language. Based on the TIOBE index, Python is currently the most popular programming language in the world. Not only that, Python has become the de facto lingua franca of data science, machine learning, and artificial intelligence.

The language out of the box is not without its drawbacks however, especially in the context of implementing large performance-critical systems. Cython has addressed a lot of these issues, offering all the advantages of a statically typed language, embedded into Pythons rich ecosystem of software libraries and developer/user communities.

What is Rust?

Rust is a multi-paradigm programming language designed for performance and safety, especially safe concurrency. Rust is blazingly fast and memory-efficient (comparable to C and C++) with no garbage collector. It can power mission-critical systems, run on embedded devices, and easily integrates with other languages.

Rust’s rich type system and ownership model guarantees memory-safety and thread-safety deterministically — eliminating many classes of bugs at compile-time.

The project increasingly utilizes Rust for core performance-critical components. Python language binding is handled through Cython and PyO3, with static libraries linked at compile-time before the wheel binaries are packaged, so a user does not need to have Rust installed to run NautilusTrader.

This project makes the Soundness Pledge:

“The intent of this project is to be free of soundness bugs. The developers will do their best to avoid them, and welcome help in analyzing and fixing them.”

MSRV: NautilusTrader relies heavily on improvements in the Rust language and compiler. As a result, the Minimum Supported Rust Version (MSRV) is generally equal to the latest stable release of Rust.

Architecture (data flow)

Architecture

Integrations

NautilusTrader is modularly designed to work with adapters, enabling connectivity to trading venues and data providers by converting their raw APIs into a unified interface.

The following integrations are currently supported:

Name ID Type Status Docs
Betfair BETFAIR Sports Betting Exchange status Guide
Binance BINANCE Crypto Exchange (CEX) status Guide
Binance US BINANCE Crypto Exchange (CEX) status Guide
Binance Futures BINANCE Crypto Exchange (CEX) status Guide
Bybit BYBIT Crypto Exchange (CEX) status Guide
Databento DATABENTO Data Provider status Guide
dYdX DYDX Crypto Exchange (DEX) status Guide
Interactive Brokers INTERACTIVE_BROKERS Brokerage (multi-venue) status Guide
OKX OKX Crypto Exchange (CEX) status Guide
Polymarket POLYMARKET Prediction Market (DEX) status Guide
  • ID: The default client ID for the integrations adapter clients
  • Type: The type of integration (often the venue type)

Status

  • building: Under construction and likely not in a usable state
  • beta: Completed to a minimally working state and in a 'beta' testing phase
  • stable: Stabilized feature set and API, the integration has been tested by both developers and users to a reasonable level (some bugs may still remain)

See the Integrations documentation for further details.

Installation

From PyPI

We recommend running the platform with the latest stable version of Python, and in a virtual environment to isolate the dependencies.

To install the latest binary wheel from PyPI:

pip install -U nautilus_trader

From Source

Installation from source requires the Python.h header file, which is included in development releases such as python-dev. You'll also need the latest stable rustc and cargo to compile the Rust libraries.

For MacBook Pro M1/M2, make sure your Python installed using pyenv is configured with --enable-shared:

PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install <python_version>

See https://pyo3.rs/latest/getting_started#virtualenvs.

It's possible to install from source using pip if you first install the build dependencies as specified in the pyproject.toml. We highly recommend installing using poetry as below.

  1. Install rustup (the Rust toolchain installer):

    • Linux and macOS:
      curl https://sh.rustup.rs -sSf | sh
      
    • Windows:
    • Verify (any system): from a terminal session run: rustc --version
  2. Enable cargo in the current shell:

    • Linux and macOS:
      source $HOME/.cargo/env
      
    • Windows:
      • Start a new PowerShell
  3. Install clang (a C language frontend for LLVM):

    • Linux:
      sudo apt-get install clang
      
    • Windows:
      1. Add Clang to your Build Tools for Visual Studio 2019:
        • Start | Visual Studio Installer | Modify | C++ Clang tools for Windows (12.0.0 - x64…) = checked | Modify
      2. Enable clang in the current shell:
        [System.Environment]::SetEnvironmentVariable('path', "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\Llvm\x64\bin\;" + $env:Path,"User")
        
    • Verify (any system): from a terminal session run: clang --version
  4. Install poetry (or follow the installation guide on their site):

    curl -sSL https://install.python-poetry.org | python3 -
    
  5. Clone the source with git, and install from the projects root directory:

    git clone https://github.com/nautechsystems/nautilus_trader
    cd nautilus_trader
    poetry install --only main --all-extras
    

See the Installation Guide for other options and further details.

Versioning and releases

NautilusTrader aims for a weekly release schedule. The introduction of experimental or larger features may delay a release by several weeks.

The API is becoming more stable, but breaking changes may still occur between releases. We strive to document these changes in the release notes on a best-effort basis.

Branches

We strive to maintain a stable, passing build across all branches.

  • master: Reflects the source code for the latest released version
  • nightly: Contains experimental features, merged from the develop branch daily or as needed
  • develop: Very active with frequent commits and may include experimental features

Our roadmap aims to achieve a stable API for version 2.x (likely post-Rust port). Once we reach this milestone, we will implement a formal release process, including deprecation periods for any API changes. This approach allows us to maintain a rapid development pace for now.

Makefile

A Makefile is provided to automate most installation and build tasks for development. It provides the following targets:

  • make install: Installs in release build mode with main, dev and test dependencies then installs the package using poetry (default)
  • make install-debug: Same as make install but with debug build mode
  • make install-just-deps: Installs just the main, dev and test dependencies (does not install package)
  • make install-just-deps-all: Same as make install-just-deps and additionally installs docs dependencies
  • make build: Runs the build script in release build mode (default)
  • make build-debug: Runs the build script in debug build mode
  • make build-wheel: Runs the Poetry build with a wheel format in release mode
  • make build-wheel-debug: Runs the Poetry build with a wheel format in debug mode
  • make clean: CAUTION Cleans all non-source artifacts from the repository
  • make docs: Builds the documentation HTML using Sphinx
  • make pre-commit: Runs the pre-commit checks over all files
  • make ruff: Runs ruff over all files using the pyproject.toml config
  • make outdated: Runs commands to show outdated dependencies for both Rust and Python
  • make pytest: Runs all tests with pytest (except performance tests)
  • make pytest-coverage: Same as make pytest and additionally runs with test coverage and produces a report

Examples

Indicators and strategies can be developed in both Python and Cython. For performance and latency-sensitive applications, we recommend using Cython. Below are some examples:

  • indicator example written in Python
  • indicator examples written in Cython
  • strategy examples written in both Python and Cython
  • backtest examples using a BacktestEngine directly

Docker

Docker containers are built using the base image python:3.12-slim with the following variant tags:

  • nautilus_trader:latest has the latest release version installed
  • nautilus_trader:nightly has the head of the nightly branch installed
  • jupyterlab:latest has the latest release version installed along with jupyterlab and an example backtest notebook with accompanying data
  • jupyterlab:nightly has the head of the nightly branch installed along with jupyterlab and an example backtest notebook with accompanying data

The container images can be pulled as follows:

docker pull ghcr.io/nautechsystems/<image_variant_tag> --platform linux/amd64

You can launch the backtest example container by running:

docker pull ghcr.io/nautechsystems/jupyterlab:nightly --platform linux/amd64
docker run -p 8888:8888 ghcr.io/nautechsystems/jupyterlab:nightly

Then open your browser at the following address:

http://127.0.0.1:8888/lab
:warning: WARNING

NautilusTrader currently exceeds the rate limit for Jupyter notebook logging (stdout output). As a result, the log_level in the examples is set to ERROR. Lowering this level to see more logging will cause the notebook to hang during cell execution. We are investigating a fix, which may involve either raising the configured rate limits for Jupyter or throttling the log flushing from Nautilus.

Minimal Strategy

The following is a minimal EMA Cross strategy example that uses bar data. While this platform supports very advanced trading strategies, it is also possible to create simple ones. Start by inheriting from the Strategy base class and implement only the methods required by your strategy.

class EMACross(Strategy):
    """
    A simple moving average cross example strategy.

    When the fast EMA crosses the slow EMA then enter a position at the market
    in that direction.

    Cancels all orders and closes all positions on stop.
    """

    def __init__(self, config: EMACrossConfig) -> None:
        super().__init__(config)

        # Configuration
        self.instrument_id = config.instrument_id
        self.bar_type = config.bar_type
        self.trade_size = Decimal(config.trade_size)

        # Create the indicators for the strategy
        self.fast_ema = ExponentialMovingAverage(config.fast_ema_period)
        self.slow_ema = ExponentialMovingAverage(config.slow_ema_period)

        self.instrument: Instrument | None = None  # Initialized in on_start

    def on_start(self) -> None:
        """
        Actions to be performed on strategy start.
        """
        # Get instrument
        self.instrument = self.cache.instrument(self.instrument_id)

        # Register the indicators for updating
        self.register_indicator_for_bars(self.bar_type, self.fast_ema)
        self.register_indicator_for_bars(self.bar_type, self.slow_ema)

        # Get historical data
        self.request_bars(self.bar_type)

        # Subscribe to live data
        self.subscribe_bars(self.bar_type)

    def on_bar(self, bar: Bar) -> None:
        """
        Actions to be performed when the strategy receives a bar.
        """
        # BUY LOGIC
        if self.fast_ema.value >= self.slow_ema.value:
            if self.portfolio.is_flat(self.instrument_id):
                self.buy()
            elif self.portfolio.is_net_short(self.instrument_id):
                self.close_all_positions(self.instrument_id)
                self.buy()
        # SELL LOGIC
        elif self.fast_ema.value < self.slow_ema.value:
            if self.portfolio.is_flat(self.instrument_id):
                self.sell()
            elif self.portfolio.is_net_long(self.instrument_id):
                self.close_all_positions(self.instrument_id)
                self.sell()

    def buy(self) -> None:
        """
        Users simple buy method (example).
        """
        order: MarketOrder = self.order_factory.market(
            instrument_id=self.instrument_id,
            order_side=OrderSide.BUY,
            quantity=self.instrument.make_qty(self.trade_size),
        )

        self.submit_order(order)

    def sell(self) -> None:
        """
        Users simple sell method (example).
        """
        order: MarketOrder = self.order_factory.market(
            instrument_id=self.instrument_id,
            order_side=OrderSide.SELL,
            quantity=self.instrument.make_qty(self.trade_size),
        )

        self.submit_order(order)

    def on_stop(self) -> None:
        """
        Actions to be performed when the strategy is stopped.
        """
        # Cleanup orders and positions
        self.cancel_all_orders(self.instrument_id)
        self.close_all_positions(self.instrument_id)

        # Unsubscribe from data
        self.unsubscribe_bars(self.bar_type)

    def on_reset(self) -> None:
        """
        Actions to be performed when the strategy is reset.
        """
        # Reset indicators here
        self.fast_ema.reset()
        self.slow_ema.reset()

Development

We aim to provide the most pleasant developer experience possible for this hybrid codebase of Python, Cython and Rust. See the Developer Guide for helpful information.

cargo-nextest is the standard Rust test runner for NautilusTrader. You can install it by running:

cargo install cargo-nextest    

Contributing

Thank you for considering contributing to Nautilus Trader! We welcome any and all help to improve the project. If you have an idea for an enhancement or a bug fix, the first step is to open an issue on GitHub to discuss it with the team. This helps to ensure that your contribution will be well-aligned with the goals of the project and avoids duplication of effort.

Once you're ready to start working on your contribution, make sure to follow the guidelines outlined in the CONTRIBUTING.md file. This includes signing a Contributor License Agreement (CLA) to ensure that your contributions can be included in the project.

Note that all pull requests should be made to the develop branch. This is where new features and improvements are integrated before being released to the public.

Thank you again for your interest in Nautilus Trader! We look forward to reviewing your contributions and working with you to improve the project.

Community

Join our community of users and contributors on Discord to chat and stay up-to-date with the latest announcements and features of NautilusTrader. Whether you're a developer looking to contribute or just want to learn more about the platform, all are welcome on our server.

License

The source code for NautilusTrader is available on GitHub under the GNU Lesser General Public License v3.0. Contributions to the project are welcome and require the completion of a standard Contributor License Agreement (CLA).


NautilusTrader is developed and maintained by Nautech Systems, a technology company specializing in the development of high-performance trading systems. Although the project utilizes the Rust programming language and benefits from its ecosystem, Nautech Systems is not affiliated with the Rust Foundation, and this project is not an official work of the Rust Foundation. For more information, visit https://nautilustrader.io.

Copyright (C) 2015-2024 Nautech Systems Pty Ltd. All rights reserved.

nautechsystems

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

nautilus_trader-1.202.0.tar.gz (1.5 MB view details)

Uploaded Source

Built Distributions

nautilus_trader-1.202.0-cp312-cp312-win_amd64.whl (31.7 MB view details)

Uploaded CPython 3.12Windows x86-64

nautilus_trader-1.202.0-cp312-cp312-manylinux_2_35_x86_64.whl (62.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ x86-64

nautilus_trader-1.202.0-cp312-cp312-manylinux_2_31_x86_64.whl (63.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ x86-64

nautilus_trader-1.202.0-cp312-cp312-macosx_14_0_arm64.whl (69.2 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

nautilus_trader-1.202.0-cp311-cp311-win_amd64.whl (31.6 MB view details)

Uploaded CPython 3.11Windows x86-64

nautilus_trader-1.202.0-cp311-cp311-manylinux_2_35_x86_64.whl (62.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

nautilus_trader-1.202.0-cp311-cp311-manylinux_2_31_x86_64.whl (63.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

nautilus_trader-1.202.0-cp311-cp311-macosx_14_0_arm64.whl (69.0 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

nautilus_trader-1.202.0-cp310-cp310-win_amd64.whl (31.6 MB view details)

Uploaded CPython 3.10Windows x86-64

nautilus_trader-1.202.0-cp310-cp310-manylinux_2_35_x86_64.whl (62.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

nautilus_trader-1.202.0-cp310-cp310-manylinux_2_31_x86_64.whl (63.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ x86-64

nautilus_trader-1.202.0-cp310-cp310-macosx_14_0_arm64.whl (68.9 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file nautilus_trader-1.202.0.tar.gz.

File metadata

  • Download URL: nautilus_trader-1.202.0.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.10 Linux/6.8.0-1014-azure

File hashes

Hashes for nautilus_trader-1.202.0.tar.gz
Algorithm Hash digest
SHA256 e1cfeda8a7ea2600ff69a802f577d9b55f2f8a678802b9c8db62d4d506792cde
MD5 700bdceaa962cab8cc392f20d51ebdc2
BLAKE2b-256 f5833f63997ab3628378b922638b52c5d61a5d665403b51a99bd49ebe8ac1503

See more details on using hashes here.

File details

Details for the file nautilus_trader-1.202.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for nautilus_trader-1.202.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6f9a85c6ee53b3891a15f732eb19d9011bdb9e5cdac3f5e7b6d63315efd06e4b
MD5 43d151816c1880dadf40d239eb0f9515
BLAKE2b-256 66fffdf28140793b21bcf9e844b9b6fcc8ed6055351597a39b18b29f4cccac3a

See more details on using hashes here.

File details

Details for the file nautilus_trader-1.202.0-cp312-cp312-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for nautilus_trader-1.202.0-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 f12c6f3aa337bd1ae247f15be3e84aa0575c538006b04530decdca184c78fda2
MD5 557d2e04a2dbc862f2b940d245f50a38
BLAKE2b-256 cac9777b8463aa34f138b71c1f0cba2da7c9e3ebbd7e87fbea00ae6486241b2b

See more details on using hashes here.

File details

Details for the file nautilus_trader-1.202.0-cp312-cp312-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for nautilus_trader-1.202.0-cp312-cp312-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 bfa71d2946ff028dc717ea6a8d7f2600be1f3d209664a3cb7d56dfc740184b67
MD5 44c4d65e3fcef7c09554aa8f5579ab2a
BLAKE2b-256 2457d083fe31feabf5444b4e3286e069444f26cc791f31f1fe1549ede2b8660c

See more details on using hashes here.

File details

Details for the file nautilus_trader-1.202.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for nautilus_trader-1.202.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 395d10c7bf7c2d110f8268d3e6bb1759d680fbd78d26c7e004ee409723ead805
MD5 dd6214dd95e554c4056d8ac157ba2ec1
BLAKE2b-256 6c754feebee2c63454532820042dd6a426e0dcf58cad7a8ebe89eb0f36a3248f

See more details on using hashes here.

File details

Details for the file nautilus_trader-1.202.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for nautilus_trader-1.202.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a5c306d4f3f38f6642b4ea32473a62df7ef5b387a064932cb75b7504ad2f8a2b
MD5 bd2b56bd7b246a251c14391a62df4009
BLAKE2b-256 f5d2d4e611f262271b28567a5a84e2c687d3dcc60153df3fdcbea668b6b54223

See more details on using hashes here.

File details

Details for the file nautilus_trader-1.202.0-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for nautilus_trader-1.202.0-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 b87126260b989ad3af5ec8c0ead60f40b9a24d4eb8b938e19a8f9c66559f1df1
MD5 9dd4232f1920aa09faac8dbd41acbfbe
BLAKE2b-256 55d2e77af52190757b7e49f92580b00d7f08c6c67f91d783486679204a981c4a

See more details on using hashes here.

File details

Details for the file nautilus_trader-1.202.0-cp311-cp311-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for nautilus_trader-1.202.0-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 652936362436ede314e9d553c369e66034cfb85689f2a098fd1eddb23bc73ea6
MD5 4630284c8e67d998b66ed0ff6c5708a0
BLAKE2b-256 17dfa99f77f81cb94d966d7dfca5352edc90ba00be480fe7ac376a0f957d64f8

See more details on using hashes here.

File details

Details for the file nautilus_trader-1.202.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for nautilus_trader-1.202.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 259128709267270ce5b64d46dccc2b95e7263f14a47ccb1a290dece0a8ea7e8f
MD5 05971308d50f52f1d78ee1c20a5cd87d
BLAKE2b-256 847bf54ddcd590cb72a004270b9fa90a44368a237eacdb7ec996a0b0a8b03d9a

See more details on using hashes here.

File details

Details for the file nautilus_trader-1.202.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for nautilus_trader-1.202.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fda93725dae45e38f9b89a7661b959e19136202b009db92179db77c91f45fc71
MD5 6621bd643aad7c4e038796741b560358
BLAKE2b-256 9e43e0390f6dd0b329fd44aad041ae4128a9d7939869bd2aaf59ca74a64ef474

See more details on using hashes here.

File details

Details for the file nautilus_trader-1.202.0-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for nautilus_trader-1.202.0-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 5f16f81ab966362e0bc93fe3d1f339dd2654a8119755ebba367e4183aedd9ffb
MD5 99a5db12b177b44c28481008a3f931f6
BLAKE2b-256 9d542f3a55231959bc6bcab41529594fee0bc25604957d1a3207cc2c5245f6ba

See more details on using hashes here.

File details

Details for the file nautilus_trader-1.202.0-cp310-cp310-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for nautilus_trader-1.202.0-cp310-cp310-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 d506bfd74bda460de018de56ec2ec280805b001a9339caa537104cb3444661c4
MD5 164a392da030f4c8f3ba872ac3d353ac
BLAKE2b-256 9ce33ee6af9a0f16919e274c96ccb4d49cdd3b43c9caa03fd5b970c992a2eb8c

See more details on using hashes here.

File details

Details for the file nautilus_trader-1.202.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for nautilus_trader-1.202.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 5d18ee5cd0e9d7db38f50dffc51f021569902aa4fa846062043fbe652fe3189b
MD5 9c5d43d0560cc162b70892944aca3085
BLAKE2b-256 6b95220c73974b91acc64eb301f16799fd2dfcc1d6ffda39b19cd442ff519bf1

See more details on using hashes here.

Supported by

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