Skip to main content

Alpaca API 平台

机器翻译译自英文(docs.alpaca.markets)本页 21 段已全部译完

为什么使用 API?

Alpaca 进入金融市场的功能主要通过 API 提供。我们相信 API 是与我们这类服务交互并为你的业务带来创新的手段。我们的 API 旨在满足你的需求,我们不断构建你所需的功能。

REST、SSE 和 WebSocket

我们的 API 主要以 REST 风格构建。这是与我们的服务集成的一种简单而强大的方式。

除了通过同步通信回复的 REST API 之外,我们的 API 还包括基于 WebSocket 和 SSE(即 Server-Sent Events)的异步事件 API。由于金融市场中会发生许多类型的事件(订单根据市场走势成交、现金在一段时间后结算等),这种基于事件的 API 可帮助你即时获取更新,并为你的客户提供最佳用户体验。

架构

Alpaca 平台由 API、Web 仪表板、交易模拟器、沙箱环境、身份验证服务、订单管理系统、交易路由、后台会计和清算系统组成,所有这些组件都是使用现代架构从零开始内部构建的。

Alpaca 平台目前托管在 Google Cloud Platform 的 us-east4 区域。站点通过专用光纤线路连接到新泽西州 Secaucus 的数据中心,以便与各种市场场所交叉连接。

在底层,Alpaca 与各种第三方合作。由于我们在 DTCC 上进行股票交易清算和结算时是自行清算,我们也在 OCC 进行期权交易清算和结算时自行清算。现金转账和托管主要由 BMO Harris 提供。我们使用 Currency Cloud 和 Airwallex 进行钱包入金和国际转账。Citadel Securities、Virtu America、Jane Street、Ion Group 和其他执行提供商为我们的客户订单提供执行服务。我们与多个数据服务提供商集成,其中 ICE Data Services 是我们各种市场数据的主要供应商。

Alpaca Crypto 在我们的内部中央限价订单簿上执行客户交易,自行清算所有交易,并且不托管客户现金,但与 Customers Bank、Cross River Bank、Choice Financial 和 FVBank 有银行关系。为了提供实时市场数据,Alpaca Crypto 与 Coinbase、Kraken、FalconX 和 Stillman Digital 合作。

API 更新与升级

为了持续为开发者提供价值,Alpaca 经常对我们的 API 进行更新和升级。

我们在文档中添加了以下章节,以帮助确保作为开发者的你了解预期什么、何时预期以及如何正确处理某些场景。

向后兼容的变更

你应预期我们对 API 所做的以下任何类型的变更都被视为向后兼容的变更:

  • 添加新的或类似命名的 API
  • 向已定义的模型和对象(如 API 返回对象、嵌套对象等)添加新字段(例如:向错误载荷添加新的代码字段)
  • 向已定义的集合或枚举(如状态、支持的资产等)添加新项(例如:向所有账户状态集合添加新的账户状态)
  • 增强某些列表返回的顺序
  • 支持新的 HTTP 版本(HTTP2、QUIC)
  • 为现有端点添加新的 HTTP 方法
  • 期望新的 HTTP 请求头(例如新的身份验证)
  • 发送新的 HTTP 头(例如 HTTP 缓存头、gzip 编码等)
  • 提高 HTTP 限制(例如 Nginx large-client-header-buffers)
  • 提高速率限制
  • 支持额外的 SSL/TLS 版本

一般来说,作为经验法则,任何追加或添加操作都被视为向后兼容的更新,无需提前沟通。这些更新应与现有接口向后兼容,并且不会对调用我们 API 的任何客户端造成任何中断。

破坏性变更

当且如果 Alpaca 决定对我们的 API 进行破坏性变更,应预期以下情况:

  • 提前沟通并留出足够时间,使开发者能够对即将到来的新变更做出反应
  • 我们的 API 是版本化的,如果打算进行破坏性变更,我们通常会提升 API 版本。例如,如果我们必须对其可接受的参数或其返回结构进行破坏性变更,某个路由可能会从 /v1/accounts/{account_id} 变为 /v2/accounts/{account_id}