Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

155
Vistas
Obtener el volumen promedio de múltiples monedas dentro de cierto intervalo usando sockets o REST

Estoy tratando de obtener un volumen promedio dentro de cierto intervalo de tiempo usando la API de Binance. Por ejemplo, quiero tener un average volume donde el rango de tiempo se defina así (pseudocódigo):

 startTime = now() - 24h - 20 min endTime = now() - 20 min

Y tengo que hacer esto para 200 pares comerciales (por ejemplo, todos los pares comerciales relacionados con USDT ).

Sé que puedo hacer una llamada API por símbolo ( https://github.com/binance/binance-spot-api-docs/blob/master/rest-api.md#klinecandlestick-data ) para obtener estos datos usando REST , como esto:

 async function getKline(marketSymbol, timeInterval, limit) { var url = 'https://api.binance.com/api/v3/klines?symbol=' + marketSymbol + '&interval=' + timeInterval + '&startTime' + startTime + '&endTime' + endTime + '&limit=' + limit; const response = await fetch(url); const data = await response.json(); return data; }

Pero como tengo que hacer esto cada minuto, serían 200 llamadas a la API por minuto. Y ya estoy usando sockets para obtener datos de velas cada dos segundos para 200 pares.

Así que supongo que usar REST api/v3/klines no es eficaz o una forma de hacerlo aquí. Quiero decir, sé que esta solicitud tiene un weight de solicitud que es igual a 1 , y probablemente estaría bien con restricciones y límites, pero, ¿hay alguna otra forma de obtener el volumen promedio dentro de cierto intervalo para varias monedas como en una sola solicitud? , o de alguna otra manera que no sea hacer tantas llamadas a la API cada minuto?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Como ya está utilizando socket para 200 pares, no necesita ninguna otra llamada API. Esta es la respuesta del socket para klines:

 { "e": "kline", // Event type "E": 123456789, // Event time "s": "BTCUSDT", // Symbol "k": { "t": 123400000, // Kline start time "T": 123460000, // Kline close time "s": "BTCUSDT", // 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 } }

para que tengas todos los datos que necesitas. Puede guardar todas las velas del websocket y calcular la media de los volúmenes. De esta manera, si tiene que calcular el volumen medio en 24 horas, debe esperar la recopilación de datos de 24 horas; de lo contrario, puede crear un primer método de configuración que se llame primero y calcule los datos históricos de los 200 símbolos con el cálculo del peso. Si 150 llamadas es mayor que el peso máximo que tiene que esperar unos minutos para otras 50 llamadas.

Desafortunadamente, binance no admite llamadas de símbolos múltiples

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda