WebSocket API Referencia
Valós idejű adatfolyam whale pozíciókról, finanszírozási rátákról, likvidációkról és AI megerősítési pontszámokról. Másodperc alatti késleltetés automatikus újrakapcsolódással, hatékony adattömörítéssel és többfolyamatos feliratkozással.
Áttekintés
A WebSocket API alacsony késleltetésű, kétirányú kommunikációt biztosít valós idejű kriptoderivatív adatokhoz. Ahelyett, hogy 5-30 másodpercenként lekérdeznél REST végpontokat, a WebSocket kapcsolatok azonnal továbbítják a frissítéseket, amikor a piaci feltételek változnak. Ideális kereskedő robotokhoz, riasztó rendszerekhez és valós idejű irányítópultokhoz.
A WebSocket fő előnyei a REST-hez képest:
Másodperc alatti késleltetés piacmozgató eseményekhez (likvidációk, whale mozgások)
Hatékony sávszélesség-használat delta-kódolt frissítésekkel
Több egyidejű feliratkozás egyetlen kapcsolaton
Szerveroldali szűrés és aggregáció
Automatikus szívverés és újrakapcsolódás kezelése
Kevesebb API kérés a kvótád ellen
A WebSocket kapcsolatok minden API szinten elérhetők. Az ingyenes szint felhasználói feliratkozhatnak a finanszírozási rátákra és likvidációs adatfolyamokra. A Trader és Pro szintek feloldják a whale pozíciókat, nyitott pozíciókat és megerősítési pontszámokat.
Hitelesítés
A WebSocket kapcsolatok ugyanazt a hitelesítést használják, mint a REST végpontok. Add meg az API kulcsod lekérdezési paraméterként, vagy küldd el az első üzenetben a kapcsolódás után.
Kapcsolati URL
Alap WebSocket URL: wss://ws.smartmoneyapi.com/stream
API kulcs hozzáadása a kapcsolati URL-hez:
wss://ws.smartmoneyapi.com/stream?token=sk_live_abc123xyz789
Kapcsolati Életciklus
Kezdeti Kapcsolat
Amikor csatlakozol a WebSocket végponthoz, a szerver ellenőrzi a hitelesítési token-t és küld egy kapcsolati visszaigazolást.
{
"type": "connection_ack",
"connection_id": "conn_1a2b3c4d5e6f7g8h",
"server_version": "1.2.4",
"timestamp": "2026-03-21T14:35:22Z",
"api_tier": "pro",
"max_subscriptions": 50,
"max_symbols_per_sub": 100
}
Szívverés (Ping/Pong)
A szerver periodikus ping üzeneteket küld 30 másodpercenként. A kliensnek pong üzenettel kell válaszolnia a kapcsolat életben tartásához. Ha a szerver nem kap pong választ 10 másodpercen belül, a kapcsolat lezárul.
const ws = new WebSocket("wss://ws.smartmoneyapi.com/stream?token=sk_live_abc123xyz789");
ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.type === "ping") {
// Válaszolj ping-re pong-gal
ws.send(JSON.stringify({
type: "pong",
id: msg.id
}));
}
};
ws.onopen = () => {
console.log("WebSocket-hez csatlakozva");
};
Feliratkozások
A kapcsolódás után feliratkozhatsz adatfolyamokra feliratkozási üzenetek segítségével. Minden feliratkozás frissítéseket generál, amikor a piaci adatok változnak.
Feliratkozási Üzenet Formátuma
{
"type": "subscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT", "ETHUSDT"],
"params": {
"min_position_size": 10,
"exchanges": ["bybit", "binance"]
}
}
Leiratkozási Üzenet Formátuma
{
"type": "unsubscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT"]
}
Whale Pozíciók Adatfolyam
Valós idejű frissítések nagy whale pozíciókról minden követett szimbólumon és tőzsdén. Frissítések érkeznek, amikor a whalek nyitnak, zárnak vagy módosítanak pozíciókat. Tartalmazza a belépési árat, aktuális árat, P&L-t, tőkeáttételt és likvidációs kockázatot.
{
"type": "subscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT", "ETHUSDT", "SOLUSDT"]
}
Frissítő Üzenet
{
"type": "data",
"channel": "whale_positions",
"symbol": "BTCUSDT",
"data": {
"wallet_address": "0x1234...",
"exchange": "bybit",
"direction": "long",
"position_size": 25.3,
"entry_price": 41200.0,
"current_price": 43200.5,
"pnl": 50701.50,
"pnl_percent": 4.86,
"leverage": 8,
"liquidation_price": 33760.0,
"timestamp": "2026-03-21T14:35:45Z"
}
}
Finanszírozási Ráták Adatfolyam
Valós idejű finanszírozási ráta frissítések a Bybit, Binance és Hyperliquid tőzsdéken. Percenként frissül, vagy amikor a ráták jelentősen változnak. Tartalmazza az egyes tőzsdei rátákat és aggregált metrikákat.
{
"type": "subscribe",
"channel": "funding_rates",
"symbols": ["BTCUSDT", "ETHUSDT"]
}
Frissítő Üzenet
{
"type": "data",
"channel": "funding_rates",
"symbol": "BTCUSDT",
"data": {
"timestamp": "2026-03-21T14:00:00Z",
"bybit": {
"rate": 0.000120,
"next_rate": 0.000145
},
"binance": {
"rate": 0.000098,
"next_rate": 0.000115
},
"hyperliquid": {
"rate": 0.000140,
"next_rate": 0.000160
},
"aggregated": {
"mean": 0.000119,
"median": 0.000120,
"spread": 0.000062
}
}
}
Likvidációs Adatfolyam
Valós idejű likvidációs hírcsatorna, amely a tőkeáttételes pozíciók kényszerbezárásait mutatja. Tartalmazza a pozíció méretét, likvidációs árat, irányt (long/short) és tőzsdét. Hasznos likvidációs láncreakciók és nagy hatású piaci mozgások azonosításához.
{
"type": "subscribe",
"channel": "liquidations",
"params": {
"min_size_usd": 50000
}
}
Frissítő Üzenet
{
"type": "data",
"channel": "liquidations",
"data": {
"exchange": "binance",
"symbol": "BTCUSDT",
"direction": "long",
"position_size": 12.5,
"liquidation_price": 41000.0,
"size_usd": 512500.0,
"timestamp": "2026-03-21T14:35:12Z"
}
}
Nyitott Pozíciók Adatfolyam
Összesített nyitott pozíciók minden tőkeáttételes kereskedő számára szimbólumonként. Kövesd az OI növekedéseket (több pénz kerül tőkeáttételbe) és csökkenéseket (pozíciók zárása). Az OI eltérése az ármozgástól rejtett bull/bear kimerülést azonosít.
{
"type": "subscribe",
"channel": "open_interest",
"symbols": ["BTCUSDT", "ETHUSDT"]
}
Megerősítési Pontszámok Adatfolyam
Valós idejű AI megerősítési pontszámok, amelyek kombinálják a whale pozíciókat, láncon kívüli jeleket, finanszírozási rátákat és hangulatadatokat. A pontszámok frissülnek, amikor az alapjelzések változnak, élő belépési/kilépési jeleket biztosítva kereskedési algoritmusok számára.
{
"type": "subscribe",
"channel": "confirmation_scores",
"symbols": ["BTCUSDT", "ETHUSDT", "SOLUSDT"]
}
Automatikus Újrakapcsolódási Logika
Hálózati problémák vagy szerverkarbantartás miatt megszakadhat a kapcsolat. Implementálj exponenciális visszalépéses újrakapcsolódási logikát a hibákból történő automatikus helyreállításhoz, miközben figyelembe veszed a szerver terhelését.
Ajánlott Újrakapcsolódási Stratégia
class SmartMoneyWebSocket {
constructor(token, options = {}) {
this.token = token;
this.maxReconnectDelay = options.maxReconnectDelay || 30000;
this.reconnectDelay = 1000;
this.subscriptions = new Map();
this.connect();
}
connect() {
this.ws = new WebSocket(
`wss://ws.smartmoneyapi.com/stream?token=${this.token}`
);
this.ws.onopen = () => {
console.log("Csatlakozva");
this.reconnectDelay = 1000; // Visszaállítás
this.resubscribe(); // Újrafeliratkozás újrakapcsolódás után
};
this.ws.onmessage = (event) => {
const msg = JSON.parse(event.data);
if (msg.type === "ping") {
this.ws.send(JSON.stringify({ type: "pong", id: msg.id }));
}
this.onMessage(msg);
};
this.ws.onclose = () => this.reconnect();
this.ws.onerror = (err) => console.error("WebSocket hiba:", err);
}
reconnect() {
console.log(`Újrakapcsolódás ${this.reconnectDelay}ms múlva`);
setTimeout(() => {
this.connect();
this.reconnectDelay = Math.min(
this.reconnectDelay * 1.5,
this.maxReconnectDelay
);
}, this.reconnectDelay);
}
subscribe(channel, symbols, params) {
const key = `${channel}:${symbols.join(",")}`;
this.subscriptions.set(key, { channel, symbols, params });
this.ws.send(JSON.stringify({ type: "subscribe", channel, symbols, params }));
}
resubscribe() {
for (const { channel, symbols, params } of this.subscriptions.values()) {
this.ws.send(JSON.stringify({ type: "subscribe", channel, symbols, params }));
}
}
onMessage(msg) {
if (msg.type === "data") {
console.log(`Frissítés: ${msg.channel}/${msg.symbol}`, msg.data);
}
}
}
const client = new SmartMoneyWebSocket("sk_live_abc123xyz789");
client.subscribe("whale_positions", ["BTCUSDT", "ETHUSDT"]);
client.subscribe("funding_rates", ["BTCUSDT"]);
client.subscribe("liquidations", [], { min_size_usd: 100000 });
Kódpéldák
Python WebSocket Kliens
import asyncio
import json
import websockets
async def stream_whale_positions():
uri = "wss://ws.smartmoneyapi.com/stream?token=sk_live_abc123xyz789"
async with websockets.connect(uri) as websocket:
# Várj a kapcsolati visszaigazolásra
ack = await websocket.recv()
print(f"Csatlakozva: {ack}")
# Feliratkozás whale pozíciókra
await websocket.send(json.dumps({
"type": "subscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT", "ETHUSDT"]
}))
# Figyelj frissítésekre
while True:
try:
msg = await websocket.recv()
data = json.loads(msg)
if data["type"] == "ping":
# Válaszolj ping-re
await websocket.send(json.dumps({
"type": "pong",
"id": data["id"]
}))
elif data["type"] == "data":
print(f"Új pozíció: {data['data']}")
except websockets.exceptions.ConnectionClosed:
print("Kapcsolat megszakadt, újrakapcsolódás...")
await asyncio.sleep(1)
asyncio.run(stream_whale_positions())
Szűrés feliratkozáskor: Használd a params objektumot a szerveroldali szűréshez (min_position_size, min_size_usd) az alkalmazásodban történő szűrés helyett.
Kötegelt feliratkozások: Iratkozz fel több szimbólumra egyetlen üzenetben, ne egyenként.
Leiratkozás használaton kívül: Ha már nincs szükséged egy adatfolyamra, iratkozz le a sávszélesség és üzenetmennyiség csökkentése érdekében.
Gzip tömörítés használata: Engedélyezd az üzenettömörítést a WebSocket kliensedben a sávszélesség-megtakarítás érdekében (20-40%-os csökkenés).
Kapcsolat állapotának monitorozása: Kövesd a ping/pong késleltetést és az automatikus újrakapcsolódásokat hálózati problémák diagnosztizálásához.
Üzenetek pufferelése kapcsolat megszakadása esetén: Amikor a kapcsolat megszakad, várólistába állítsd a stratégiai jeleket és hajtsd őket végre újrakapcsolódáskor.
Kezdd El a Streamelést Most
Szerezd meg az API kulcsodat, és kezdd el valós idejű kereskedési rendszerek építését. A WebSocket streamelés minden csomagban elérhető.
API Kulcs Lekérése
Valós Idejű Kereskedési Rendszerek Építése
Streamelj bálnapozíciókat, finanszírozási rátákat és AI megerősítési pontszámokat másodperc töredékes késleltetéssel.
Csomagok Megtekintése