WebSocket API Reference
הזרמת נתונים בזמן אמת עבור פוזיציות לווייתנים, שיעורי מימון, נזילות וציוני אישור של AI. השהייה תת-שנייה עם חיבור אוטומטי מחדש, דחיסת נתונים יעילה ומנויים מרובי זרמים.
סקירה כללית
ה-WebSocket API מספק תקשורת דו-כיוונית בעלת השהייה נמוכה עבור נתוני נגזרות קריפטו בזמן אמת. במקום לשלוח בקשות REST כל 5-30 שניות, חיבורי WebSocket מספקים עדכונים מיידיים כאשר תנאי השוק משתנים. מושלם עבור בוטים מסחריים, מערכות התרעה ולוחות מחוונים בזמן אמת.
יתרונות מרכזיים של WebSocket לעומת REST:
השהייה תת-שנייה לאירועים שמניעים את השוק (נזילות, תנועות לווייתנים)
שימוש יעיל ברוחב הפס עם עדכונים מקודדים בדלתא
מנויים מרובים בו-זמנית בחיבור יחיד
סינון וצבירה בצד השרת
טיפול אוטומטי בפעימות לב וחיבור מחדש
מספר נמוך יותר של בקשות API נגד המכסה שלך
חיבורי WebSocket זמינים לכל דרגות ה-API. משתמשים בדרגה החינמית יכולים להירשם לזרמי שיעורי מימון ונזילות. דרגות Trader ו-Pro פותחות את פוזיציות הלווייתנים, הריבית הפתוחה וציוני האישור.
אימות
חיבורי WebSocket משתמשים באותו אימות כמו נקודות קצה REST. העבירו את מפתח ה-API שלכם כפרמטר שאילתה או שלחו אותו בהודעה הראשונה לאחר החיבור.
כתובת URL לחיבור
כתובת WebSocket בסיסית: wss://ws.smartmoneyapi.com/stream
כלול את מפתח ה-API שלך בכתובת ה-URL לחיבור:
wss://ws.smartmoneyapi.com/stream?token=sk_live_abc123xyz789
מחזור חיים של חיבור
חיבור ראשוני
כאשר אתה מתחבר לנקודת הקצה של 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("Connected to 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. עדכונים כל דקה או בכל פעם שהשיעורים משתנים באופן משמעותי. כולל שיעורי בורסה בודדים ומדדים מצטברים.
{
"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"
}
}
זרם ריבית פתוחה
ריבית פתוחה מצטברת עבור כל הסוחרים הממונפים בכל סמל. עקוב אחר עליות בריבית הפתוחה (יותר כסף נכנס למינוף) וירידות (פוזיציות נסגרות). הבדל בריבית הפתוחה מתנועת המחיר מזהה תשישות שורית/דובית נסתרת.
{
"type": "subscribe",
"channel": "open_interest",
"symbols": ["BTCUSDT", "ETHUSDT"]
}
זרם ציוני אישור
ציוני אישור AI בזמן אמת המשולבים עם פוזיציות לווייתנים, אותות על-שרשרת, שיעורי מימון ונתוני סנטימנט. הציונים מתעדכנים בכל פעם שהאותות הבסיסיים משתנים, ומספקים אותות כניסה/יציאה חיים לאלגוריתמי מסחר.
{
"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("Connected");
this.reconnectDelay = 1000; // Reset backoff
this.resubscribe(); // Re-subscribe after reconnect
};
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 error:", err);
}
reconnect() {
console.log(`Reconnecting in ${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(`Update: ${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 });
דוגמאות קוד
לקוח WebSocket ב-Python
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:
# Wait for connection ack
ack = await websocket.recv()
print(f"Connected: {ack}")
# Subscribe to whale positions
await websocket.send(json.dumps({
"type": "subscribe",
"channel": "whale_positions",
"symbols": ["BTCUSDT", "ETHUSDT"]
}))
# Listen for updates
while True:
try:
msg = await websocket.recv()
data = json.loads(msg)
if data["type"] == "ping":
# Respond to ping
await websocket.send(json.dumps({
"type": "pong",
"id": data["id"]
}))
elif data["type"] == "data":
print(f"New position: {data['data']}")
except websockets.exceptions.ConnectionClosed:
print("Connection closed, reconnecting...")
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 עם השהייה של פחות משנייה.
צפה בתוכניות