Pilote d'accélération WebSocket
Bibliothèque de modèles d'accélération des données de marché en temps réel basée sur WebSocket
Description :
Cette stratégie optimise le traitement des données en temps réel sur plusieurs exchanges via des connexions WebSocket multithread. Dans la plateforme de trading quantitatif FMZ, l'utilisation de connexions WebSocket permet d'obtenir les carnets d'ordres et les données de transactions, réduisant considérablement la latence d'acquisition des données de marché et améliorant les performances des systèmes de trading haute fréquence.
Caractéristiques principales :
- Support multi-exchanges : Cette stratégie prend en charge les connexions WebSocket de plusieurs exchanges tels que Binance, OKX, Bybit, Bitget, offrant un flux de données plus rapide et plus stable que les appels API REST traditionnels.
- Abonnement personnalisable : Permet de s'abonner à des canaux de marché spécifiques (profondeur, transactions, etc.) et de traiter efficacement les données reçues pour une utilisation immédiate par la stratégie de trading.
- Gestion avancée des erreurs : Mécanisme intégré de suivi des erreurs et de reconnexion WebSocket pour assurer la fiabilité et la continuité du flux de données.
- Vérification CRC32 : Pour des exchanges comme OKX, intégration d'une fonction de vérification CRC32 pour garantir l'intégrité des données du carnet d'ordres reçues.
Cette solution basée sur WebSocket remplace les appels API traditionnels et convient aux traders qui ont besoin de minimiser la latence et de maximiser la réactivité du marché.
Utilisation :
- Initialisation : Utilisez
$.setupWebsocket()pour initialiser la connexion WebSocket sur l'exchange cible. - Abonnement : Le système s'abonne automatiquement aux canaux pertinents (profondeur, transactions, etc.) pour les paires que vous tradez.
- Récupération des données : Les fonctions
GetDepth()etGetTrades()utilisent automatiquement les données en temps réel WebSocket pour renvoyer la profondeur du marché et l'historique des transactions. - Gestion des erreurs : La stratégie inclut un mécanisme de suivi pour enregistrer les erreurs de connexion et de données, et tente automatiquement de se reconnecter en cas d'interruption.
Ce script est conçu pour fonctionner sur la plateforme FMZ, offrant un accès rapide, fiable et évolutif aux données de marché pour plusieurs exchanges.
javascript
function main() {
$.setupWebsocket()
while (true) {
exchanges.map(e=>{
Log(e.GetName(), e.GetDepth())
Log(e.GetName(), e.GetTrades())
// support custom and auto subscribe 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
}