Controlador del acelerador WebSocket
Biblioteca de clases aceleradas de plantillas basadas en datos en tiempo real de WebSocket
describir:
La estrategia optimiza el procesamiento de datos en tiempo real de varias bolsas a través de conexiones WebSocket multithread. El uso de la conexión WebSocket en la plataforma de comercio cuantitativo FMZ para obtener datos de orden de profundidad y transacciones reduce significativamente la latencia para obtener datos de mercado y mejora el rendimiento del sistema de comercio de alta frecuencia.
Características principales:
- Soporte para múltiples intercambiosLa estrategia soporta conexiones WebSocket de varias plataformas de intercambio como Binance, OKX, Bybit y Bitget, ofreciendo un flujo de datos más rápido y más estable que las encuestas REST API tradicionales.
- Suscripción personalizable:Permite la suscripción a canales de mercado específicos (como profundidad, trading, etc.) y el procesamiento eficiente de los datos recibidos para su uso inmediato por parte de las estrategias comerciales.
- Manejo avanzado de errores:Seguimiento de errores integrado y mecanismo de reconexión WebSocket para garantizar la confiabilidad y continuidad del flujo de datos.
- Pruebas CRC32En el caso de OKX, la función de verificación CRC32 está integrada para garantizar la integridad de los datos de la libreta de pedidos recibidos.
Esta solución basada en WebSocket reemplaza las encuestas API tradicionales y es adecuada para los operadores que necesitan minimizar la latencia y maximizar la velocidad de respuesta del mercado.
Instrucciones:
- inicialización:usar
$.setupWebsocket()Inicializar la conexión WebSocket al intercambio de destino. - suscripción:El sistema se suscribirá automáticamente a los canales relevantes (como profundidad, comercio, etc.) para los productos que usted comercializa.
- Adquisición de datos:Llamando
GetDepth()yGetTrades()Función que utiliza automáticamente datos en tiempo real de WebSocket para devolver la profundidad del mercado y los registros de transacciones. - Manejo de errores:La política incluye un mecanismo de seguimiento que registra errores de conexión y datos e intenta reconectarse automáticamente si se pierde la conexión.
Este script está diseñado para funcionar en la plataforma de cuantificación FMZ, proporcionando acceso rápido, confiable y escalable a los datos de mercado para múltiples exchanges.
javascript
function main() {
$.setupWebsocket()
while (true) {
exchanges.map(e=>{
Log(e.GetName(), e.GetDepth())
Log(e.GetName(), e.GetTrades())
// support custom and auto subsribe Eg: e.GetDepth('ETH_USDT')
})
EventLoop(100) // trigger by websocket or use Sleep control delay
}
}
// @ts-check
$.setupWebsocket = function (main_exchanges) {
let crc32 = function (r) {
for (var a, o = [], c = 0; c < 256; c++) {
a = c;
for (var f = 0; f < 8; f++) a = 1 & a ? 3988292384 ^ a >>> 1 : a >>> 1;
o[c] = a
}
for (var n = -1, t = 0; t < r.length; t++) n = n >>> 8 ^ o[255 & (n ^ r.charCodeAt(t))];
return (-1 ^ n) >>> 0
}