Integrations

NautilusTrader is designed in a modular way to work with ‘adapters’ which provide connectivity to data publishers and/or trading venues - converting their raw API into a unified interface. The following integrations are currently supported:

Warning

The initial integrations for the project are currently under heavy construction. It’s advised to conduct some of your own testing with small amounts of capital before running strategies which are able to access larger capital allocations.

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

FTX

FTX

Crypto Exchange (CEX)

status

Guide

FTX US

FTX

Crypto Exchange (CEX)

status

Guide

Interactive Brokers

IB

Brokerage (multi-venue)

status

Guide

Implementation goals

The primary goal of NautilusTrader is to provide a unified trading system for use with a variety of integrations. To support the widest range of trading strategies, priority will be given to ‘standard’ functionality:

  • Requesting historical market data

  • Streaming live market data

  • Reconciling execution state

  • Submitting standard order types with standard execution instructions

  • Modifying existing orders (if possible on an exchange)

  • Canceling orders

The implementation of each integration aims to meet the following criteria:

  • Low-level client components should match the exchange API as closely as possible

  • The full range of an exchanges functionality (where applicable to NautilusTrader), should eventually be supported

  • Exchange specific data types will be added to support the functionality and return types which are reasonably expected by a user

  • Actions which are unsupported by either the exchange or NautilusTrader, will be explicitly logged as a warning or error when a user attempts to perform said action

API unification

All integrations must be compatible with the NautilusTrader API at the system boundary, this means there is some normalization and standardization needed.

  • All symbols will match the native/local symbol for the exchange, unless there are conflicts (such as Binance using the same symbol for both Spot and Perpetual Futures markets).

  • All timestamps will be either normalized to UNIX nanoseconds, or clearly marked as UNIX milliseconds by appending _ms to param and property names.