Skip to main content

实时加密货币数据

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

Crypto Data API 提供成交、报价、订单簿、分钟线和日线的 WebSocket 流。这有助于接收最新的市场信息,可帮助你的交易策略针对某些市场变动采取行动。

Alpaca 在其自有交易所执行你的加密货币订单,同时也支持 Kraken(另一个加密货币交易所)。因此,v1beta3 加密货币市场数据端点分发来自 Alpaca 和 Kraken 的数据。

你可以在此处找到实时 WebSocket 流的通用说明。本页重点介绍加密货币流。

👍 高级 WebSocket 教程

查看我们的教程 Python 高级实时 WebSocket 加密货币数据流,了解在 Python 中处理实时加密货币数据流的一些技巧。

URL

加密货币流的 URL 是

wss://stream.data.alpaca.markets/v1beta3/crypto/{loc}

沙盒 URL:

wss://stream.data.sandbox.alpaca.markets/v1beta3/crypto/{loc}

{loc} 可以具有的可能值有:

  • us - Alpaca 美国
  • us-1 - Kraken 美国
  • eu-1 - Kraken 欧盟

位置 us-1 代表下列州:

  1. AL(阿拉巴马州)
  2. AK(阿拉斯加州)
  3. AR(阿肯色州)
  4. CO(科罗拉多州)
  5. DC(哥伦比亚特区)
  6. DE(特拉华州)
  7. FL(佛罗里达州)
  8. HI(夏威夷州)
  9. LA(路易斯安那州)
  10. MN(明尼苏达州)
  11. NV(内华达州)
  12. NH(新罕布什尔州)
  13. NJ(新泽西州)
  14. NM(新墨西哥州)
  15. OK(俄克拉荷马州)
  16. OR(俄勒冈州)
  17. PA(宾夕法尼亚州)
  18. PR(波多黎各)
  19. TN(田纳西州)
  20. TX(德克萨斯州)
  21. VA(弗吉尼亚州)
  22. WI(威斯康星州)
  23. WY(怀俄明州)

请注意,目前 us-1 和 eu-1 流式传输 Kraken(另一个加密货币交易所)的市场数据,但提供商可能会随时间变化。

从服务器接收的每条消息中可能到达多个数据点。根据其类型,这些数据点具有以下格式。

频道

成交

模式

属性类型备注
Tstring消息类型,始终为“t”
Sstring代码
pnumber成交价格
snumber成交数量
tstringRFC-3339 格式的时间戳,纳秒精度
iint成交 ID
tksstring吃单方:B 表示买方,S 表示卖方

示例

{
  "T": "t",
  "S": "AVAX/USD",
  "p": 47.299,
  "s": 29.205707815,
  "t": "2024-03-12T10:27:48.858228144Z",
  "i": 3447222699101865076,
  "tks": "S"
}

报价

模式

属性类型备注
Tstring消息类型,始终为“q”
Sstring代码
bpnumber买价
bsnumber买量
apnumber卖价
asnumber卖量
tstringRFC-3339 格式的时间戳,纳秒精度

示例

{
  "T": "q",
  "S": "BAT/USD",
  "bp": 0.35718,
  "bs": 13445.46,
  "ap": 0.3581,
  "as": 13561.902,
  "t": "2024-03-12T10:29:43.111588173Z"
}

K 线

📘 加密货币 K 线包含报价中间价

由于某些货币的波动性,包括在任何给定时间缺乏交易量,我们在 K 线中包含报价中间价以提供更好的数据体验。如果某根 K 线中没有发生交易,成交量将为 0,但价格将由报价价格决定。

有三个独立的频道可供你流式传输成交聚合数据(K 线)。

分钟线(bars)

分钟线在每分钟标记后立即发出。它们包含上一分钟的成交和报价中间价。

日线(dailyBars)

日线在开盘后每分钟标记后立即发出。日线包含直到其发出时的所有成交和报价中间价。

更新 K 线(updatedBars)

如果在前一分钟标记之后有“迟到”的成交到达,则更新线在每个半分钟标记后发出。例如,如果时间戳为 16:49:59.998 的成交在 16:50:00 之后不久到达,则在 16:50:30 之后不久会发送一条 t 设置为 16:49:00 的更新线,包含该成交,可能更新前一根线的收盘价和成交量。

模式

属性类型描述
Tstring消息类型:“b”、“d”或“u”
Sstring代码
onumber开盘价
hnumber最高价
lnumber最低价
cnumber收盘价
vint成交量
tstringRFC-3339 格式的时间戳

示例

{
  "T": "b",
  "S": "BTC/USD",
  "o": 71856.1435,
  "h": 71856.1435,
  "l": 71856.1435,
  "c": 71856.1435,
  "v": 0,
  "t": "2024-03-12T10:37:00Z",
  "n": 0,
  "vw": 0
}

订单簿

模式

属性类型备注
Tstring消息类型,始终为“o”
Sstring代码
tstringRFC-3339 格式的时间戳,纳秒精度
barray买价:由 p(价格)和 s 对组成的数组。如果 s 为零,则表示该买价条目已从订单簿中移除。否则表示已添加或更新。
aarray卖价:由 p(价格)和 s 对组成的数组。如果 s 为零,则表示该卖价条目已从订单簿中移除。否则表示已添加或更新。
rboolean重置:如果为 true,订单簿消息包含整个服务器端订单簿。这向客户端指示应重置其订单簿。通常作为订阅后的第一条消息发送。

示例

初始完整订单簿

{
  "T": "o",
  "S": "BTC/USD",
  "t": "2024-03-12T10:38:50.79613221Z",
  "b": [
    {
      "p": 71859.53,
      "s": 0.27994
    },
    {
      "p": 71849.4,
      "s": 0.553986
    },
    {
      "p": 71820.469,
      "s": 0.83495
    },
   ...
  ],
  "a": [
    {
      "p": 71939.7,
      "s": 0.83953
    },
    {
      "p": 71940.4,
      "s": 0.28025
    },
    {
      "p": 71950.715,
      "s": 0.555928
    },
    ...
  ],
  "r": true
}

r 为 true,意味着此消息包含整个 BTC/USD 订单簿。为便于阅读,此处已截断,实际订单簿有更多的买价和卖价。

更新消息

{
  "T": "o",
  "S": "MKR/USD",
  "t": "2024-03-12T10:39:39.445492807Z",
  "b": [],
  "a": [
    {
      "p": 2614.587,
      "s": 12.5308
    }
  ]
}

这意味着卖价档位 2614.587 被改为 12.5308。如果订单簿中之前没有 2614.587 的卖价条目,则应将其添加;如果有,则其数量应被更新。

移除消息

{
  "T": "o",
  "S": "CRV/USD",
  "t": "2024-03-12T10:39:40.501160019Z",
  "b": [
    {
      "p": 0.7904,
      "s": 0
    }
  ],
  "a": []
}

这意味着应从订单簿中移除 0.7904 的买价档位。

示例

$ wscat -c wss://stream.data.alpaca.markets/v1beta3/crypto/us
connected (press CTRL+C to quit)
< [{"T":"success","msg":"connected"}]
> {"action": "auth", "key": "**\***", "secret": "**\***"}
< [{"T":"success","msg":"authenticated"}]
> {"action": "subscribe", "bars": ["BTC/USD"]}
< [{"T":"subscription","trades":[],"quotes":[],"orderbooks":[],"bars":["BTC/USD"],"updatedBars":[],"dailyBars":[]}]
< [{"T":"b","S":"BTC/USD","o":26675.04,"h":26695.36,"l":26668.79,"c":26688.7,"v":3.227759152,"t":"2023-03-17T12:28:00Z","n":93,"vw":26679.5912436798}]
< [{"T":"b","S":"BTC/USD","o":26687.9,"h":26692.91,"l":26628.55,"c":26651.39,"v":11.568622108,"t":"2023-03-17T12:29:00Z","n":197,"vw":26651.7679765663}]