Type/to search

WebSocket加速ドライバ

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

WebSocketベースのリアルタイム行情データ高速化テンプレートライブラリ

説明:

この戦略は、マルチスレッドのWebSocket接続を活用し、複数の取引所におけるリアルタイムデータ処理を最適化します。FMZ量化取引プラットフォーム上でWebSocket接続を使用して深度板情報や取引データを取得することで、マーケットデータの取得遅延を大幅に低減し、高頻度取引システムのパフォーマンスを向上させます。

主な特徴:

  • マルチ取引所対応:Binance、OKX、Bybit、Bitgetなど、複数の取引所のWebSocket接続に対応。従来のREST APIポーリングよりも高速で安定したデータストリームを提供します。
  • カスタマイズ可能な購読:特定のマーケットチャンネル(深度、取引など)を購読でき、受信データを効率的に処理し、取引戦略で即座に利用可能です。
  • 高度なエラーハンドリング:エラー追跡とWebSocket再接続メカニズムを内蔵し、データストリームの信頼性と継続性を確保します。
  • CRC32チェックサム:OKXなどの取引所では、受信した板情報データの完全性を保証するためにCRC32チェックサム機能が統合されています。

このWebSocketベースのソリューションは従来のAPIポーリングに代わるもので、遅延を最小限に抑え、マーケットへの応答速度を最大化したいトレーダーに適しています。

使用方法:

  1. 初期化$.setupWebsocket() を使用して、対象取引所のWebSocket接続を初期化します。
  2. 購読:取引対象の銘柄に関連するチャンネル(深度、取引など)を自動的に購読します。
  3. データ取得GetDepth() および GetTrades() 関数を呼び出すことで、WebSocketのリアルタイムデータを使用してマーケット深度と取引履歴を自動的に取得します。
  4. エラーハンドリング:接続およびデータエラーを記録する追跡メカニズムが組み込まれており、接続が切断された場合には自動的に再接続を試みます。

このスクリプトはFMZ量化プラットフォーム上で動作し、複数の取引所に対して高速で信頼性が高く、拡張性のあるマーケットデータアクセスを提供します。

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)