WebSocket 가속기 드라이버
11
Follow
651
Followers
웹소켓 기반의 실시간 실태 데이터 템플릿 가속도 클래스 라이브러리
설명하다:
이 전략은 다중 스레드 웹소켓 연결을 통해 여러 거래소의 실시간 데이터 처리를 최적화했다. FMZ의 양적 거래 플랫폼에서 웹소켓 연결을 사용하여 깊은 주문서 및 거래 데이터를 확보하여 시장 데이터를 얻는 지연을 크게 줄이고 고주파 거래 시스템의 성능을 향상시켰다.
주요 특징:
- 다양한 거래소 지원이 전략은 Binance, OKX, Bybit, Bitget 등 여러 거래소의 WebSocket 연결을 지원하며, 전통적인 REST API 설문 조사보다 더 빠르고 안정적인 데이터 흐름을 제공합니다.
- 사용자 정의 가능한 구독: 특정 시장 채널(예: 심도, 거래 등)에 대한 구독을 허용하고, 수신된 데이터를 효율적으로 처리하여 거래 전략에 즉시 활용할 수 있습니다.
- 고급 오류 처리: 내장된 오류 추적 및 WebSocket 재연결 메커니즘을 통해 데이터 흐름의 안정성과 연속성을 보장합니다.
- CRC32 검증OKX와 같은 거래소에서는 CRC32 검증 기능을 통합하여 수신된 주문서 데이터의 무결성을 보장합니다.
웹소켓 기반의 이 솔루션은 전통적인 API 설문조사를 대체하고, 지연을 최소화하고 시장 반응 속도를 최대화해야 하는 거래자들에게 적합합니다.
지도:
- 초기화:사용
$.setupWebsocket()대상 거래소에 대한 WebSocket 연결을 초기화합니다. - 신청: 시스템은 귀하가 거래하는 상품에 대한 관련 채널(예: 심도, 거래 등)을 자동으로 구독합니다.
- 데이터 수집: 전화로
GetDepth()그리고GetTrades()이 함수는 WebSocket 실시간 데이터를 자동으로 사용하여 시장 심도와 거래 기록을 반환합니다. - 오류 처리: 이 정책에는 연결 및 데이터 오류를 기록하고 연결이 끊어지면 자동으로 다시 연결을 시도하는 추적 메커니즘이 포함되어 있습니다.
이 스크립트는 FMZ 계량 플랫폼에서 작동하여 여러 거래소에 빠르고 안정적이며 확장 가능한 시장 데이터 액세스를 제공합니다.
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
}
}
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
}Related strategies
