Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

154
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!