WebSocket API Reference
Ροή δεδομένων σε πραγματικό χρόνο για θέσεις φαλαινών, ποσοστά χρηματοδότησης, ρευστοποιήσεις και βαθμολογίες επιβεβαίωσης AI. Καθυστέρηση υπο-δευτερολέπτου με αυτόματη επανασύνδεση, αποδοτική συμπίεση δεδομένων και συνδρομές πολλαπλών ροών.
Επισκόπηση
Το WebSocket API παρέχει επικοινωνία χαμηλής καθυστέρησης και αμφίδρομη για δεδομένα παραγώγων κρυπτονομισμάτων σε πραγματικό χρόνο. Αντί να ερωτάτε REST endpoints κάθε 5-30 δευτερόλεπτα, οι συνδέσεις WebSocket παραδίδουν ενημερώσεις αμέσως όταν αλλάζουν οι συνθήκες της αγοράς. Ιδανικό για trading bots, συστήματα ειδοποιήσεων και πίνακες ελέγχου σε πραγματικό χρόνο.
Κύρια πλεονεκτήματα του WebSocket έναντι του REST:
Καθυστέρηση υπο-δευτερολέπτου για γεγονότα που κινούν την αγορά (ρευστοποιήσεις, κινήσεις φαλαινών)
Αποδοτική χρήση εύρους ζώνης με ενημερώσεις κωδικοποιημένες σε delta
Πολλαπλές ταυτόχρονες συνδρομές σε μία σύνδεση
Φιλτράρισμα και συγκέντρωση από την πλευρά του διακομιστή
Αυτόματη διαχείριση καρδιακών παλμών και επανασύνδεσης
Μικρότερος αριθμός αιτημάτων API έναντι του ορίου σας
Οι συνδέσεις WebSocket είναι διαθέσιμες σε όλα τα επίπεδα API. Οι χρήστες του δωρεάν επιπέδου μπορούν να εγγραφούν στις ροές ποσοστών χρηματοδότησης και ρευστοποιήσεων. Τα επίπεδα Trader και Pro ξεκλειδώνουν θέσεις φαλαινών, ανοιχτό ενδιαφέρον και βαθμολογίες επιβεβαίωσης.
Πιστοποίηση
Οι συνδέσεις WebSocket χρησιμοποιούν την ίδια πιστοποίηση με τα REST endpoints. Περάστε το κλειδί API σας ως παράμετρο ερωτήματος ή στείλτε το στο πρώτο μήνυμα μετά τη σύνδεση.
URL Σύνδεσης
Βασικό URL WebSocket: wss://ws.smartmoneyapi.com/stream
Συμπεριλάβετε το κλειδί API σας στο URL σύνδεσης:
wss://ws.smartmoneyapi.com/stream?token=sk_live_abc123xyz789
Κύκλος Ζωής Σύνδεσης
Αρχική Σύνδεση
Όταν συνδέεστε στο endpoint WebSocket, ο διακομιστής επικυρώνει το διακριτικό πιστοποίησης σας και στέλνει μια επιβεβαίωση σύνδεσης.
{
"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
}
Καρδιακός Παλμός (Ping/Pong)
Ο διακομιστής στέλνει περιοδικούς καρδιακούς παλμούς ping κάθε 30 δευτερόλεπτα. Ο πελάτης σας πρέπει να ανταποκρίνεται με ένα μήνυμα pong για να διατηρήσει τη σύνδεση ενεργή. Εάν ο διακομιστής δεν λάβει απάντηση pong εντός 10 δευτερολέπτων, η σύνδεση θα κλείσει.
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") {
// Απάντηση στο ping με pong
ws.send(JSON.stringify({
type: "pong",
id: msg.id
}));
}
};
ws.onopen = () => {
console.log("Συνδέθηκε στο WebSocket");
};
Συνδρομές
Μετά τη σύνδεση, εγγραφείτε σε ροές δεδομένων χρησιμοποιώντας μηνύματα συνδρομής. Κάθε συνδρομή δημιουργεί ενημερώσεις όταν αλλάζουν τα δεδομένα της αγοράς.
Μορφή Μηνύματος Συνδρομής
{
"type": "subscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT", "ETHUSDT"],
"params": {
"min_position_size": 10,
"exchanges": ["bybit", "binance"]
}
}
Μορφή Μηνύματος Ακύρωσης Συνδρομής
{
"type": "unsubscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT"]
}
Ροή Θέσεων Φαλαινών
Ενημερώσεις σε πραγματικό χρόνο για μεγάλες θέσεις φαλαινών σε όλα τα παρακολουθούμενα σύμβολα και ανταλλακτήρια. Οι ενημερώσεις αποστέλλονται όταν οι φάλαινες ανοίγουν, κλείνουν ή τροποποιούν θέσεις. Περιλαμβάνει τιμή εισόδου, τρέχουσα τιμή, κέρδη/ζημίες, μόχλευση και κίνδυνο ρευστοποίησης.
{
"type": "subscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT", "ETHUSDT", "SOLUSDT"]
}
Μήνυμα Ενημέρωσης
{
"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"
}
}
Ροή Ποσοστών Χρηματοδότησης
Ενημερώσεις ποσοστών χρηματοδότησης σε πραγματικό χρόνο σε Bybit, Binance και Hyperliquid. Ενημερώνεται κάθε 1 λεπτό ή όταν τα ποσοστά αλλάξουν σημαντικά. Περιλαμβάνει μεμονωμένα ποσοστά ανταλλακτηρίων και συγκεντρωτικά μετρικά.
{
"type": "subscribe",
"channel": "funding_rates",
"symbols": ["BTCUSDT", "ETHUSDT"]
}
Μήνυμα Ενημέρωσης
{
"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
}
}
}
Ροή Ρευστοποιήσεων
Ροή ρευστοποιήσεων σε πραγματικό χρόνο που δείχνει αναγκαστικές κλεισίσεις μοχλευμένων θέσεων. Περιλαμβάνει μέγεθος θέσης, τιμή ρευστοποίησης, κατεύθυνση (long/short) και ανταλλακτήριο. Χρήσιμο για την αναγνώριση καθετήρων ρευστοποίησης και κινήσεων αγοράς υψηλής επίδρασης.
{
"type": "subscribe",
"channel": "liquidations",
"params": {
"min_size_usd": 50000
}
}
Μήνυμα Ενημέρωσης
{
"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"
}
}
Ροή Ανοιχτού Ενδιαφέροντος
Συγκεντρωτικό ανοιχτό ενδιαφέρον για όλους τους εμπόρους μόχλευσης σε κάθε σύμβολο. Παρακολουθήστε αυξήσεις OI (περισσότερα χρήματα που εισέρχονται στη μόχλευση) και μειώσεις (θέσεις που κλείνουν). Η απόκλιση OI από την κίνηση της τιμής προσδιορίζει κρυφή bullish/bearish εξάντληση.
{
"type": "subscribe",
"channel": "open_interest",
"symbols": ["BTCUSDT", "ETHUSDT"]
}
Ροή Βαθμολογιών Επιβεβαίωσης
Βαθμολογίες επιβεβαίωσης AI σε πραγματικό χρόνο που συνδυάζουν θέσεις φαλαινών, σήματα on-chain, ποσοστά χρηματοδότησης και δεδομένα συναισθήματος. Οι βαθμολογίες ενημερώνονται όταν αλλάζουν τα υποκείμενα σήματα, παρέχοντας σήματα εισόδου/εξόδου σε πραγματικό χρόνο για αλγόριθμους trading.
{
"type": "subscribe",
"channel": "confirmation_scores",
"symbols": ["BTCUSDT", "ETHUSDT", "SOLUSDT"]
}
Αυτόματη Λογική Επανασύνδεσης
Θέσεις δικτύου ή συντήρηση διακομιστή μπορεί να προκαλέσουν αποσυνδέσεις. Υλοποιήστε λογική επανασύνδεσης με εκθετική υποχώρηση για αυτόματη ανάκτηση από αποτυχίες με σεβασμό στο φόρτο του διακομιστή.
Προτεινόμενη Στρατηγική Επανασύνδεσης
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("Συνδέθηκε");
this.reconnectDelay = 1000; // Επαναφορά backoff
this.resubscribe(); // Επανασυνδρομή μετά την επανασύνδεση
};
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:", err);
}
reconnect() {
console.log(`Επανασύνδεση σε ${this.reconnectDelay}ms`);
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(`Ενημέρωση: ${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 });
Παραδείγματα Κώδικα
Python WebSocket Client
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:
# Αναμονή για επιβεβαίωση σύνδεσης
ack = await websocket.recv()
print(f"Συνδέθηκε: {ack}")
# Συνδρομή σε θέσεις φαλαινών
await websocket.send(json.dumps({
"type": "subscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT", "ETHUSDT"]
}))
# Ακρόαση για ενημερώσεις
while True:
try:
msg = await websocket.recv()
data = json.loads(msg)
if data["type"] == "ping":
# Απάντηση στο ping
await websocket.send(json.dumps({
"type": "pong",
"id": data["id"]
}))
elif data["type"] == "data":
print(f"Νέα θέση: {data['data']}")
except websockets.exceptions.ConnectionClosed:
print("Η σύνδεση έκλεισε, επανασύνδεση...")
await asyncio.sleep(1)
asyncio.run(stream_whale_positions())
Φιλτράρισμα κατά τη συνδρομή: Χρησιμοποιήστε το αντικείμενο params για να φιλτράρετε δεδομένα από την πλευρά του διακομιστή (min_position_size, min_size_usd) αντί να φιλτράρετε στην εφαρμογή σας.
Ομαδικές συνδρομές: Εγγραφείτε σε πολλαπλά σύμβολα σε ένα μήνυμα αντί για μία συνδρομή ανά σύμβολο.
Ακύρωση αχρησιμοποίητων: Όταν δεν χρειάζεστε πλέον μια ροή, ακυρώστε τη συνδρομή για εξοικονόμηση εύρους ζώνης και μείωση του όγκου μηνυμάτων.
Χρήση συμπίεσης gzip: Ενεργοποιήστε τη συμπίεση μηνυμάτων στον πελάτη WebSocket σας για εξοικονόμηση εύρους ζώνης (μείωση 20-40%).
Παρακολούθηση υγείας σύνδεσης: Παρακολουθήστε την καθυστέρηση ping/pong και τις αυτόματες επανασυνδέσεις για διάγνωση θεμάτων δικτύου.
Προσωρινή αποθήκευση μηνυμάτων κατά τη διακοπή σύνδεσης: Όταν πέσει η σύνδεση, ουρά σημάτων στρατηγικής και εκτελέστε τα όταν επανασυνδεθείτε.
Ξεκινήστε τη Ροή Τώρα
Λάβετε το κλειδί API σας και ξεκινήστε να δημιουργείτε συστήματα συναλλαγών σε πραγματικό χρόνο. Η ροή WebSocket είναι διαθέσιμη σε όλα τα επίπεδα.
Λάβετε Κλειδί API
Δημιουργήστε Συστήματα Συναλλαγών σε Πραγματικό Χρόνο
Ροή θέσεων φαλαινών, επιτοκίων χρηματοδότησης και βαθμολογιών επιβεβαίωσης AI με καθυστέρηση υπο-δευτερολέπτου.
Δείτε Τα Προγράμματα