Binance - 通过 WebSockets 获取所选硬币的当前价格

Posted

技术标签:

【中文标题】Binance - 通过 WebSockets 获取所选硬币的当前价格【英文标题】:Binance - Get current price of selected coins through WebSockets 【发布时间】:2021-05-17 02:43:49 【问题描述】:

Binance 提供具有多种功能的 Web Socket Streams,例如聚合流、交易流、Kline/Candlestick 流等,您可以在此处查看https://github.com/binance/binance-spot-api-docs/blob/master/web-socket-streams.md

我正在寻找我选择的硬币的当前价格和最近 24 小时 % 的变化,但我不明白如何才能获得这些信息。价格必须是实时的,24h % change 可以每 60 秒调用一次。

我目前正在使用 CoinCap https://docs.coincap.io/,非常简单:

    要获得 24 小时 %,我调用端点 https://api.coincap.io/v2/assets?ids=bitcoin,ethereum 为了实时获取价格,我调用了端点wss://ws.coincap.io/prices?assets=bitcoin,ethereum

CoinCap 的问题是我无法通过我想要的交易所(在本例中为 Binance)过滤价格。所以我不断得到与 Binance 不匹配的价格。

var socket = new WebSocket('wss://ws.coincap.io/prices?assets=bitcoin,ethereum');
socket.addEventListener('message', function (event)

  // parse & show the data
);

例如,Kline/Candlestick Streams 表示以下内容:

Kline/Candlestick Stream 将更新推送到当前 每秒k线/烛台

并返回以下数据:


  "e": "kline",     // Event type
  "E": 123456789,   // Event time
  "s": "BNBBTC",    // Symbol
  "k": 
    "t": 123400000, // Kline start time
    "T": 123460000, // Kline close time
    "s": "BNBBTC",  // Symbol
    "i": "1m",      // Interval
    "f": 100,       // First trade ID
    "L": 200,       // Last trade ID
    "o": "0.0010",  // Open price
    "c": "0.0020",  // Close price
    "h": "0.0025",  // High price
    "l": "0.0015",  // Low price
    "v": "1000",    // Base asset volume
    "n": 100,       // Number of trades
    "x": false,     // Is this kline closed?
    "q": "1.0000",  // Quote asset volume
    "V": "500",     // Taker buy base asset volume
    "Q": "0.500",   // Taker buy quote asset volume
    "B": "123456"   // Ignore
  

基于此,与币安平台https://www.binance.com/en/markets中看到的价值相匹配的当前价格是多少?

【问题讨论】:

顺便说一句,这个 github github.com/binance/binance-spot-api-docs 不定期更新。最好使用这个文档页面binance-docs.github.io/apidocs/spot/en/#introduction 【参考方案1】:

您可以使用 miniTicker。 https://binance-docs.github.io/apidocs/spot/en/#individual-symbol-mini-ticker-stream。最后价格为c,24 小时前价格为o

【讨论】:

那么 24 小时百分比呢? i.postimg.cc/CLGW8SGh/binance.png 这就是我要找的。另外,我刚刚测试,似乎@miniTicker 似乎解决了我的价格问题。 抱歉忘记了。 'GET /api/v3/ticker/24hr' 这将包含这个百分比 @Linesofcode 我更新了我的答案。只是花了一些时间检查。 o 包含 -24 小时前的价格,c 当前价格。

以上是关于Binance - 通过 WebSockets 获取所选硬币的当前价格的主要内容,如果未能解决你的问题,请参考以下文章

Python 通过 requests 调用 Binance API

如何设置获取此 websockets 数据的时间间隔?

为啥我无法通过官方 Binance REST API 使用 c# 进行 Binance 订单?

Binance REST API - 通过查询字符串下达 PHP 订单 (POST)

如何使用 Binance API,通过股票代码简单 GET 价格

发生binance api(连接)错误时无法继续程序