WS_NORMALIZATION.md 3.1 KB

WS 标准化(prices/book/trades/account_*)

— 连接与心跳 —

  • 主网:wss://ws.pacifica.fi/ws(无需 login)
  • 订阅报文:{"method":"subscribe","params":{...}}
  • 心跳:每 ≤60s 需发消息;建议每 30s 发送 {"method":"ping"},服务端返回 {"channel":"pong"}

— 符号规范 —

  • Pacifica:使用基础符号(如 BTC);若上层传入 BTC-USD/BTCUSDT,在适配器中归一化为 BTC

— 渠道与字段映射 —

  1. prices(全市场价)
  • 订阅:{"method":"subscribe","params":{"source":"prices"}}
  • 输入字段:symbol, funding, next_funding, oracle, mark, mid, yesterday_price, open_interest, volume_24h, timestamp
  • 标准化映射:
    • symbolsymbol
    • markmarkPrice
    • midmidPrice
    • oracleoraclePrice
    • fundingfundingRate
    • next_fundingnextFundingRate
    • open_interestopenInterest
    • volume_24hvolume24hUsd
    • timestampts(毫秒)
  1. book(聚合订单簿)
  • 订阅:{"method":"subscribe","params":{"source":"book","symbol":"BTC","agg_level":1}}
  • 响应:data.l = [ bids[], asks[] ],每个层级对象:{ p: price, a: amount, n: numOrders }
  • 标准化映射:
    • data.l[0][i].pbids[i].price
    • data.l[0][i].abids[i].qty
    • data.l[0][i].nbids[i].numOrders
    • data.l[1][i].pasks[i].price
    • data.l[1][i].aasks[i].qty
    • data.l[1][i].nasks[i].numOrders
    • ssymbol
    • tts
  1. trades(逐笔)
  • 订阅:{"method":"subscribe","params":{"source":"trades","symbol":"BTC"}}
  • 常见字段:s(符号), a(数量), p(价格), e(事件类型), d(方向), t(时间戳)
  • 标准化映射:
    • ssymbol
    • aqty
    • pprice
    • eeventType
    • ddirection
    • tts
  • 其他原始字段(如 u/h/c)保留在 raw 区域,供审计/调试
  1. account_*(账户类频道)
  • 订阅:
    • account_info{"method":"subscribe","params":{"source":"account_info","account":"<BASE58>"}}
    • account_balance{"method":"subscribe","params":{"source":"account_balance","account":"<BASE58>"}}
    • account_positions{"method":"subscribe","params":{"source":"account_positions","account":"<BASE58>"}}
    • account_orders{"method":"subscribe","params":{"source":"account_orders","account":"<BASE58>"}}
  • 字段举例(account_info):b(余额), ae(权益), as(资产), aw(保证金预警), mu(保证金使用), pc/oc/sc(仓位/订单/触发数), t(时间)
  • 标准化(建议):{ balance, accountEquity, assets, alertWarning, marginUsed, posCount, openOrderCount, stopCount, ts }

— 断线与重连 —

  • 网络异常/服务端关闭:建议指数退避(250ms 基数,最多 4 次),并按需退订/重订。
  • 初次订阅回放:若需要一致性,可在 WS 建立前先用 REST 拉取一次快照,再用 WS 增量叠加。

— 事件转发(多账户) —

  • AccountManager 中对各适配器 ws() 事件打上标签:{ ...payload, __am: { exchange, accountId } },便于统一消费与审计。