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 | Guide | |
Binance | BINANCE | Crypto Exchange (CEX) | Guide | |
Binance US | BINANCE | Crypto Exchange (CEX) | Guide | |
Binance Futures | BINANCE | Crypto Exchange (CEX) | Guide | |
Bybit | BYBIT | Crypto Exchange (CEX) | Guide | |
Databento | DATABENTO | Data Provider | Guide | |
dYdX | DYDX | Crypto Exchange (DEX) | Guide | |
Interactive Brokers | INTERACTIVE_BROKERS | Brokerage (multi-venue) | Guide | |
OKX | OKX | Crypto Exchange (CEX) | Guide | |
Polymarket | POLYMARKET | Prediction Market (DEX) | Guide | |
Tardis | TARDIS | Data Provider | 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).
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 raw/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.