实时股票数据
机器翻译译自英文(docs.alpaca.markets)本页 71 段已全部译完
此 API 通过 WebSocket 流提供股票市场数据。这有助于接收最新的市场信息,可帮助你的交易策略针对某些市场变动采取行动。如果你希望访问最新的定价数据,使用流比轮询最新的历史端点提供更高的准确性和性能。
你可以在此处找到实时 WebSocket 流的通用说明。本页重点介绍股票流。
URL
股票流的 URL 是
wss://stream.data.alpaca.markets/{version}/{feed}
沙盒 URL:
wss://stream.data.sandbox.alpaca.markets/{version}/{feed}
将 {version}/{feed} 替换为以下之一:
v2/sip是 SIP(证券信息处理器)数据源v2/iex是 IEX(投资者交易所)数据源v2/delayed_sip是延迟 15 分钟的 SIP 数据源v1beta1/boats是 BOATS(Blue Ocean ATS)数据源v1beta1/overnight是衍生的 Alpaca 隔夜数据源
这些数据源在此处描述。
任何试图访问你订阅不可用的数据源的尝试都会在认证期间导致错误。
频道
你可以订阅本节所述的频道。例如
{"action":"subscribe","trades":["AAPL"],"quotes":["AMD","CLDR"],"bars":["*"]}成交
模式
| 属性 | 类型 | 备注 |
|---|---|---|
T | string | 消息类型,始终为“t” |
S | string | 代码 |
i | int | 成交 ID |
x | string | 成交发生的交易所代码 |
p | number | 成交价格 |
s | int | 成交数量 |
c | array<string> | 成交条件 |
t | string | RFC-3339 格式的时间戳,纳秒精度 |
z | string | Tape |
示例
{
"T": "t",
"i": 96921,
"S": "AAPL",
"x": "D",
"p": 126.55,
"s": 1,
"t": "2021-02-22T15:51:44.208Z",
"c": ["@", "I"],
"z": "C"
}报价
模式
| 属性 | 类型 | 备注 |
|---|---|---|
T | string | 消息类型,始终为“q” |
S | string | 代码 |
ax | string | 卖价交易所代码 |
ap | number | 卖价 |
as | int | 卖量,以整手计 |
bx | string | 买价交易所代码 |
bp | number | 买价 |
bs | int | 买量,以整手计 |
c | array<string> | 报价条件 |
t | string | RFC-3339 格式的时间戳,纳秒精度 |
z | string | Tape |
示例
{
"T": "q",
"S": "AMD",
"bx": "U",
"bp": 87.66,
"bs": 1,
"ax": "Q",
"ap": 87.68,
"as": 4,
"t": "2021-02-22T15:51:45.335689322Z",
"c": ["R"],
"z": "C"
}K 线
有三个独立的频道可供你流式传输成交聚合数据(K 线)。
分钟线(bars)
分钟线在每分钟标记后立即发出。它们包含上一分钟的成交。盘前和盘后交易的成交也会被聚合并发送到线频道。
注意:了解哪些成交被排除在分钟线之外对于准确的数据分析至关重要。关于分钟线如何计算以及被排除成交的更多详细信息,请参阅这篇文章股票分钟线。
日线(dailyBars)
日线在开盘后每分钟标记后立即发出。日线包含直到其发出时的所有成交。
更新 K 线(updatedBars)
如果在前一分钟标记之后有“迟到”的成交到达,则更新线在每个半分钟标记后发出。例如,如果时间戳为 16:49:59.998 的成交在 16:50:00 之后不久到达,则在 16:50:30 之后不久会发送一条 t 设置为 16:49:00 的更新线,包含该成交,可能更新前一根线的收盘价和成交量。
模式
| 属性 | 类型 | 描述 |
|---|---|---|
T | string | 消息类型:“b”、“d”或“u” |
S | string | 代码 |
o | number | 开盘价 |
h | number | 最高价 |
l | number | 最低价 |
c | number | 收盘价 |
v | int | 成交量 |
vw | number | 成交量加权平均价格 |
n | int | 成交笔数 |
t | string | RFC-3339 格式的时间戳 |
示例
{
"T": "b",
"S": "SPY",
"o": 388.985,
"h": 389.13,
"l": 388.975,
"c": 389.12,
"v": 49378,
"n": 461,
"vw": 389.062639,
"t": "2021-02-22T19:15:00Z"
}成交更正
这些消息表明之前发送的某笔成交有误,并包含更正后的成交。
当你订阅成交频道时,会自动订阅成交更正和取消/错误。
{"action":"subscribe","trades":["AAPL"]}
[{"T":"subscription","trades":["AAPL"],"quotes":[],"bars":[],"updatedBars":[],"dailyBars":[],"statuses":[],"lulds":[],
"corrections":["AAPL"],"cancelErrors":["AAPL"]}]
模式
| 属性 | 类型 | 描述 |
|---|---|---|
T | string | 消息类型,始终为“c” |
S | string | 代码 |
x | string | 交易所代码 |
oi | int | 原始成交 ID |
op | number | 原始成交价格 |
os | int | 原始成交数量 |
oc | array<string> | 原始成交条件 |
ci | int | 更正后的成交 ID |
cp | number | 更正后的成交价格 |
cs | int | 更正后的成交数量 |
cc | array<string> | 更正后的成交条件 |
t | string | RFC-3339 格式的时间戳 |
z | string | Tape |
示例
{
"T": "c",
"S": "EEM",
"x": "M",
"oi": 52983525033527,
"op": 39.1582,
"os": 440000,
"oc": [
" ",
"7"
],
"ci": 52983525034326,
"cp": 39.1809,
"cs": 440000,
"cc": [
" ",
"7"
],
"z": "B",
"t": "2023-04-06T14:25:06.542305024Z"
}成交取消/错误
这些消息表明之前发送的某笔成交被取消。
当你订阅成交频道时,会自动订阅成交更正和取消/错误。
{"action":"subscribe","trades":["AAPL"]}
[{"T":"subscription","trades":["AAPL"],"quotes":[],"bars":[],"updatedBars":[],"dailyBars":[],"statuses":[],"lulds":[],
"corrections":["AAPL"],"cancelErrors":["AAPL"]}]
模式
| 属性 | 类型 | 描述 |
|---|---|---|
T | string | 消息类型,始终为“x” |
S | string | 代码 |
i | int | 成交 ID |
x | string | 成交交易所 |
p | number | 成交价格 |
s | int | 成交数量 |
a | string | 操作(“C”表示取消,“E”表示错误) |
t | string | RFC-3339 格式的时间戳 |
z | string | Tape |
示例
{
"T": "x",
"S": "GOOGL",
"i": 465,
"x": "D",
"p": 105.31,
"s": 300,
"a": "C",
"z": "C",
"t": "2023-04-06T13:15:42.83540958Z"
}LULD
涨跌停消息为证券提供上下限价格带。
模式
| 属性 | 类型 | 描述 |
|---|---|---|
T | string | 消息类型,始终为“l” |
S | string | 代码 |
u | number | 涨停价 |
d | number | 跌停价 |
i | string | 指标 |
t | string | RFC-3339 格式的时间戳 |
z | string | Tape |
示例
{
"T": "l",
"S": "IONM",
"u": 3.24,
"d": 2.65,
"i": "B",
"t": "2023-04-06T13:34:45.565004401Z",
"z": "C"
}交易状态
标识适用于该证券的交易状态以及交易暂停的原因(如有)。根据你的订阅,可以从任意 {source} 访问状态消息。
要在生产环境中启用市场数据,请联系我们的销售团队。
模式
| 属性 | 类型 | 描述 |
|---|---|---|
T | string | 消息类型,始终为“s” |
S | string | 代码 |
sc | string | 状态代码 |
sm | string | 状态消息 |
rc | string | 原因代码 |
rm | string | 原因消息 |
t | string | RFC-3339 格式的时间戳 |
z | string | Tape |
示例
{
"T": "s",
"S": "AAPL",
"sc": "H",
"sm": "Trading Halt",
"rc": "T12",
"rm": "Trading Halted; For information requested by NASDAQ",
"t": "2021-02-22T19:15:00Z",
"z": "C"
}状态代码
Tape A 和 B (CTA)
| 代码 | 值 |
|---|---|
| 2 | 交易暂停 |
| 3 | 恢复 |
| 5 | 价格指示 |
| 6 | 交易区间指示 |
| 7 | 市场失衡买入 |
| 8 | 市场失衡卖出 |
| 9 | 收盘市价失衡买入 |
| A | 收盘市价失衡卖出 |
| C | 无市场失衡 |
| D | 无收盘市价失衡 |
| E | 卖空限制 |
| F | 涨跌停 |
Tape C 和 O (UTP)
| 代码 | 恢复 |
|---|---|
| H | 交易暂停 |
| Q | 报价恢复 |
| T | 交易恢复 |
| P | 波动性交易暂停 |
原因代码
Tape A 和 B (CTA)
| 代码 | 值 |
|---|---|
| A | 要求提供额外信息 |
| C | 监管关注 |
| D | 新闻已发布(原新闻传播) |
| E | 合并生效 |
| F | ETF 成分价格不可用 |
| I | 订单失衡 |
| M | 涨跌停 (LULD) 交易暂停 |
| N | 公司行动 |
| O | 新证券发行 |
| P | 新闻待发布 |
| V | 日内指示价值不可用 |
| X | 运营性 |
| Y | 亚分交易 |
| 1 | 全市场熔断 1 级 – 已触发 |
| 2 | 全市场熔断 2 级 – 已触发 |
| 3 | 全市场熔断 3 级 – 已触发 |
Tape C 和 O (UTP)
| 代码 | 值 |
|---|---|
| T1 | 暂停等待新闻 |
| T2 | 因新闻传播而暂停 |
| T5 | 单一股票交易暂停生效 |
| T6 | 因异常市场活动而监管暂停 |
| T8 | 暂停 ETF |
| T12 | 交易暂停;应 NASDAQ 要求提供信息 |
| H4 | 因不合规而暂停 |
| H9 | 因申报文件未更新而暂停 |
| H10 | 因 SEC 交易停牌而暂停 |
| H11 | 因监管关注而暂停 |
| 01 | 运营暂停,联系市场运营 |
| IPO1 | IPO 发行尚未交易 |
| M1 | 公司行动 |
| M2 | 报价不可用 |
| LUDP | 波动性交易暂停 |
| LUDS | 波动性交易暂停 – 跨式条件 |
| MWC1 | 全市场熔断暂停 – 1 级 |
| MWC2 | 全市场熔断暂停 – 2 级 |
| MWC3 | 全市场熔断暂停 – 3 级 |
| MWC0 | 全市场熔断暂停 – 从前一日结转 |
| T3 | 新闻及恢复时间 |
| T7 | 单一股票交易暂停/仅报价时段 |
| R4 | 资格问题已审查/解决;报价/交易恢复 |
| R9 | 申报要求已满足/解决;报价/交易恢复 |
| C3 | 发行人新闻未发布;报价/交易恢复 |
| C4 | 资格暂停结束;维持要求已满足;恢复 |
| C9 | 资格暂停结束;申报已满足;报价/交易恢复 |
| C11 | 交易暂停由其他监管机构结束;报价/交易恢复 |
| R1 | 新发行可用 |
| R | 发行可用 |
| IPOQ | IPO 证券开放报价 |
| IPOE | IPO 证券 – 定位窗口延长 |
| MWCQ | 全市场熔断恢复 |
订单失衡
订单失衡是指某一证券在交易交易所上出现买单或卖单过剩,导致买卖双方订单无法撮合的情况。订单失衡消息通常在涨停和跌停交易暂停期间发送。你必须使用 imbalances JSON 键订阅这些消息:
{"action":"subscribe","imbalances":["INAQU"]}模式
| 属性 | 类型 | 备注 |
|---|---|---|
T | string | 消息类型,始终为“i” |
S | string | 代码 |
p | number | 价格 |
z | string | Tape |
t | string | RFC-3339 格式的时间戳,纳秒精度 |
示例
{
"T": "i",
"S": "INAQU",
"p": 9.12,
"z": "C",
"t": "2024-12-13T19:58:09.242138635Z"
}示例
$ wscat -c wss://stream.data.alpaca.markets/v2/sip
connected (press CTRL+C to quit)
< [{"T":"success","msg":"connected"}]
> {"action": "auth", "key": "*****", "secret": "*****"}
< [{"T":"success","msg":"authenticated"}]
> {"action": "subscribe", "trades": ["AAPL"], "quotes": ["AMD", "CLDR"], "bars": ["*"],"dailyBars":["VOO"],"statuses":["*"]}
< [{"T":"subscription","trades":["AAPL"],"quotes":["AMD","CLDR"],"bars":["*"],"updatedBars":[],"dailyBars":["VOO"],"statuses":["*"],"lulds":[],"corrections":["AAPL"],"cancelErrors":["AAPL"]}]
< [{"T":"q","S":"AMD","bx":"K","bp":91.95,"bs":2,"ax":"Q","ap":91.98,"as":1,"c":["R"],"z":"C","t":"2023-04-06T11:54:21.670905508Z"}]
< [{"T":"t","S":"AAPL","i":628,"x":"K","p":162.92,"s":3,"c":["@","F","T","I"],"z":"C","t":"2023-04-06T11:54:26.838232225Z"},{"T":"t","S":"AAPL","i":75,"x":"Z","p":162.92,"s":3,"c":["@","F","T","I"],"z":"C","t":"2023-04-06T11:54:26.838562809Z"},{"T":"t","S":"AAPL","i":1465,"x":"P","p":162.91,"s":71,"c":["@","F","T","I"],"z":"C","t":"2023-04-06T11:54:26.83915973Z"}]
< [{"T":"q","S":"AMD","bx":"P","bp":91.9,"bs":1,"ax":"Q","ap":91.98,"as":1,"c":["R"],"z":"C","t":"2023-04-06T11:54:27.924933876Z"}]