Type/to search

Pilote d'accélération WebSocket

Template
Created: 2024-10-24 18:11:09
Last modified: 7 months ago
12
Follow
658
Followers

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 :

  1. Initialisation : Utilisez $.setupWebsocket() pour initialiser la connexion WebSocket sur l'exchange cible.
  2. Abonnement : Le système s'abonne automatiquement aux canaux pertinents (profondeur, transactions, etc.) pour les paires que vous tradez.
  3. Récupération des données : Les fonctions GetDepth() et GetTrades() utilisent automatiquement les données en temps réel WebSocket pour renvoyer la profondeur du marché et l'historique des transactions.
  4. 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 } }
Source
JavaScript
// @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
    }
Comment
All comments (4)

    Warning: __Thread is deprecated. Please use threading.Thread instead.
    麻烦能否更新到threading.Thread的版本?

    7 months ago

    已更

    7 months ago

    大佬动作好快,能否加上获取K线的代码呢?感激不尽!

    7 months ago

    K线没有做websocket这个完全没必要最后一根闭合了才生效

    7 months ago
  • 1
Forums
PINE Language
Get the app
iPhone Download
© 2015 - ∞ INVENTOR PTE LTD (SG)