SuperAPI AI 工具集

alpaca-broker-sse-events

编程与开发

查看项目

更新于 10-15 19:55

技能介绍

用途:消费 Alpaca Broker API 的实时经纪生命周期事件。它走 Server-Sent Events(SSE),即长连接 HTTP GET 返回 text/event-stream,与行情 WebSocket 不同,传输、鉴权和可靠性模型都不一样。使用前应先阅读 alpaca-broker-integration;SSE 使用 Broker API 主机加 HTTP Basic 鉴权(与 Broker REST 同一凭据)。

主要能力:提供五类事件流——账户状态 GET /v1/events/accounts/status(status/crypto_status、kyc_results、account_blocked 等);journal 状态 GET /v2/events/journals/status;资金/转账状态 GET /v2/events/funding/status(按 entity_type 区分 Transfer、BankRelationship、WireBank、FundingWallet);交易更新 GET /v2/events/trades(event 字段含 new、fill、partial_fill、canceled、rejected 等);非交易活动 GET /v1/events/nta(分红、利息、费用、拆股、ACATs 等)。路径与版本不统一:v2 流用 ULID event_id,v1 流同时带整数 event_id 和 event_ulid;/v1/events/trades 与 /v1/events/journals/status 为旧版,仅限既有合作方,应迁移到 v2。

使用方式:发起 GET 并保持连接,逐行解析 data: 帧中的 JSON。连接示例:GET /v2/events/journals/status?since_id=<last-ulid-you-saw>,Host: broker-api.alpaca.markets,Authorization: Basic <base64(key:secret)>,Accept: text/event-stream。多数语言可用现成 SSE 客户端,但需能在初始请求设置 Authorization 头(浏览器 EventSource 不支持,应改用服务端 SSE 库)。

重放与可靠性:所有流支持 since/until、since_id/until_id,v1 流还支持 since_ulid/until_ulid;since 与 until 需成对,不能混用不同游标;不传 since 游标则只收实时推送、不返回历史。务必持久化最后成功处理的事件 ID,重连时作为 since 游标传入,否则断线期间事件会静默丢失。同一毫秒内 ULID 含随机成分,不保证严格全序,应按近似有序加去重处理。生产消费端需心跳/静默检测、指数退避重连(如 1s 起、上限 60s)、单次重连保护、逐事件 try/catch 避免副作用失败中断流。OpenAPI 无法完整建模 SSE,代码生成的客户端常会挂起,应使用真正的流式 HTTP/SSE 客户端。

幂等处理:建议流程为解析→按 event_id 落原始快照(存在则跳过)→按 Alpaca ID 匹配本地记录→加行锁并按当前状态守卫更新→触发副作用→推进游标。游标仅在处理成功后推进,保证至少一次投递下可安全重放。

适用场景与限制:适合驱动开户 UI、启用交易、更新订单状态、journal 与资金状态、活动对账。SSE 是低延迟手段但不充分,仍需周期性对账补齐权威状态。资金钱包的逐笔状态可能仍需轮询。资料未提供具体收费、价格或平台支持信息。