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 연결을 사용하여 호가창 및 거래 데이터를 획득하며, 시장 데이터를 가져오는 지연 시간을 크게 줄이고 고빈도 거래 시스템의 성능을 향상시킵니다.

주요 특징:

  • 다중 거래소 지원: 바이낸스, 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)