Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

201
Visualizações
Ejecutar una función dentro de Websocket dispara muchas veces

He estado tratando de aprovechar Binance Websocket para activar compras y ventas basadas en el precio en vivo con mi propia lógica. Sé que el WebSocket está devolviendo datos en vivo y puede haber incluso 5-6 o más respuestas al mismo tiempo, pero ¿cómo me aseguro de obtener solo 1 cuando cierre los Websockets?

Estoy tratando de asegurarme de que active solo 1 compra o 1 venta cuando eso suceda.

Estoy usando: (funciona muy bien)

 'node-binance-api'

El Websocket comienza desde aquí:

 binance.websockets.bookTickers('BNBBUSD', (mainTicker) => { var priceNow = mainTicker.bestBid; liveStrategy(priceNow).then(isSold => { // console.log('THIS IS WHEN IS CHECKED ->>>>>>'); if (isSold == true) { console.log('JUST SOLD -> Setting the count to 10'); sleep(3000).then(() => { console.log("Countdown finished: ", count); profitCalculations(mainCurrency); count = 10; }); } if (isSold == false) { console.log('THIS WAS A BUY ->'); count = 10; } }).catch((isSoldErr) => { console.warn('Error:', isSoldErr.message); dumpError(isSoldErr); }); });

El precio se envía de vuelta a la función, esta función se ejecuta continuamente hasta que ocurre una compra o una venta. Antes de activar una compra o una venta, cierro el WebSocket con:

 let endpoints = binance.websockets.subscriptions(); for ( let endpoint in endpoints ) { console.log("..terminating websocket: "+endpoint); let ws = endpoints[endpoint]; ws.terminate(); }

Este código detiene el WebSocket, pero tarda unos 3 segundos, así que activé la compra/venta después de esto:

 if (priceNow > buyPrice) { terminateAllWebsockets(); return new Promise((resolve) => { sleep(5000).then(sleep => { marketBuyFromNoLossStrategyAmount(buySymbol,buyAmount); resolve(false); }) })

}

Cuando regresa, básicamente se envía de vuelta a mi estrategia en liveStrategy(priceNow) para activar los cálculos de ganancias. Los profitCalculations(mainCurrency); podría activarse 3-4 veces o incluso comprar o vender. ¿Hay algo que pueda hacer para que eso no suceda? Entonces, ¿la ganancia o la compra y venta se activará solo una vez? ¿Cómo me aseguro de que eso suceda con mi configuración?

¡Cualquier pensamiento es bienvenido!

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda