跳到主要内容

集成

NautilusTrader 使用模块化的 adapter(适配器)来连接交易场所和数据提供方,将各类原始 API 转换为统一的接口和规范化的领域模型。

当前支持的集成如下:

NameIDTypeStatusDocs
BetfairBETFAIRSports Betting ExchangestatusGuide
BinanceBINANCECrypto Exchange (CEX)statusGuide
BitMEXBITMEXCrypto Exchange (CEX)statusGuide
BybitBYBITCrypto Exchange (CEX)statusGuide
Coinbase InternationalCOINBASE_INTXCrypto Exchange (CEX)statusGuide
DatabentoDATABENTOData ProviderstatusGuide
dYdXDYDXCrypto Exchange (DEX)statusGuide
HyperliquidHYPERLIQUIDCrypto Exchange (DEX)statusGuide
Interactive BrokersINTERACTIVE_BROKERSBrokerage (multi-venue)statusGuide
OKXOKXCrypto Exchange (CEX)statusGuide
PolymarketPOLYMARKETPrediction Market (DEX)statusGuide
TardisTARDISCrypto Data ProviderstatusGuide
  • ID:集成适配器客户端的默认 client ID。
  • Type:集成的类型(通常对应场所类型)。

状态(Status)

  • building:正在开发中,可能尚不可用。
  • beta:已达到最小可用状态,处于 beta 测试阶段。
  • stable:功能与 API 已稳定,经过开发者与用户的合理测试(仍可能存在一些缺陷)。

实现目标(Implementation goals)

NautilusTrader 的主要目标是为多种集成提供一个统一的交易系统。 为了支持更广泛的交易策略,实现时会优先保证标准功能的可用性:

  • 请求历史市场数据(requesting historical market data)。
  • 实时流式市场数据(streaming live market data)。
  • 执行状态的对账(reconciling execution state)。
  • 提交常见的订单类型并支持标准的执行指令(submitting standard order types with standard execution instructions)。
  • 修改已提交的订单(如果交易所支持)。
  • 取消订单(canceling orders)。

每个集成的实现应满足以下准则:

  • 底层客户端组件应尽量贴合交易所的原生 API。
  • 在适用于 NautilusTrader 的范围内,应最终支持交易所的全部功能。
  • 会添加交易所特有的数据类型,以支持用户合理期待的功能和返回类型。
  • 对于交易所或 NautilusTrader 不支持的操作,调用时应记录为警告或错误。

API 统一(API unification)

所有集成都必须遵循 NautilusTrader 的系统 API,要求对数据和行为进行规范化:

  • Symbol(代码)应使用场所的原生符号格式,除非需要区分(例如 Binance Spot 与 Binance Futures)。
  • 时间戳必须使用 UNIX epoch 纳秒(nanoseconds)。如果使用毫秒(milliseconds),字段/属性名应明确以 _ms 结尾。