איסוף יחס לונג/שורט מבורסות קריפטו: APIs, ניתוח ו-TimescaleDB

איסוף יחס לונג/שורט מבורסות קריפטו: פירוט טכני סוחר זקוק לשנה של היסטוריית יחס לונג/שורט על פני 50+ מכשירים לבדיקת אסטרטגיה. הבורסות שומרות לכל היותר חודש של נתונים — Binance מחזירה רק את 500 הרשומות האחרונות (כ-30 יום עם גרנולריות של 5 דקות)

שירותי פיתוח בלוקצ'יין

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1452
  • image_web-applications_feedme_466_0.webp
    פיתוח אפליקציית ווב עבור FEEDME
    1310
  • image_websites_belfingroup_462_0.webp
    פיתוח אתר עבור BELFINGROUP
    1005
  • image_ecommerce_furnoro_435_0.webp
    פיתוח חנות מקוונת לחברת FURNORO
    1270
  • image_logo-advance_0.webp
    עיצוב לוגו לחברת B2B Advance
    719
  • image_crm_enviok_479_0.webp
    פיתוח אפליקציית ווב עבור Enviok
    1012

איסוף יחס לונג/שורט מבורסות קריפטו: פירוט טכני

סוחר זקוק לשנת היסטוריה של יחס לונג/שורט על פני 50+ מכשירים לצורך בדיקת אסטרטגיה לאחור. הבורסות שומרות לכל היותר חודש של נתונים — Binance מחזירה רק את 500 הרשומות האחרונות (כ-30 ימים עם גרנולריות של 5 דקות), Bybit 200, OKX 100. איסוף ידני דרך הממשק היה לוקח מאות שעות עבודה, ופער נתונים אחד הורס את הבדיקה. בנינו מערכת על Python אסינכרוני שמושכת נתונים ברציפות משלוש בורסות בו-זמנית, מנרמלת אותם, ושומרת אותם ב-TimescaleDB. כעת ההיסטוריה זמינה לכל תקופה, והוספת סמל חדש אורכת 5 דקות — רק צריך להוסיף אותו לקונפיגורציה. הסוחר מקבל זרם נתונים רציף עם פחות מדקה עיכוב, מתאים לאינדיקטורים בזמן אמת ולניתוח סנטימנט קריפטו. להלן — הארכיטקטורה, המלכודות והפתרון המוכן.

API רשמיים ליחס לונג/שורט

התחילו עם נקודות קצה רשמיות — הן יציבות ואינן דורשות אוטומציה של דפדפן. הנה המקורות הזמינים:

בורסה נקודת קצה נתונים מגבלת היסטוריה אימות
Binance Futures /futures/data/topLongShortAccountRatio יחס חשבונות סוחרים מובילים 500 רשומות, ~30 ימים לא (ציבורי)
Binance Futures /futures/data/globalLongShortAccountRatio כל החשבונות 500 רשומות לא
Bybit /v5/market/account-ratio יחס חשבונות 200 רשומות לא
OKX /api/v5/rubik/stat/contracts/long-short-account-ratio יחס חשבונות 100 רשומות לא
CoinGlass (אגרגטור) /api/v1/longShort מצטבר מ-4+ בורסות תלוי במנוי מפתח API (בתשלום)

לפי תיעוד ה-API של Binance Futures, הנתונים זמינים רק ל-30 הימים האחרונים. ניתוח ארוך טווח דורש איסוף רציף.

Binance Futures — הנתונים המקיפים ביותר, מספר נקודות קצה:

# Top trader long/short account ratio GET https://fapi.binance.com/futures/data/topLongShortAccountRatio?symbol=BTCUSDT&period=5m&limit=30 # All accounts ratio (retail sentiment) GET https://fapi.binance.com/futures/data/globalLongShortAccountRatio?symbol=BTCUSDT&period=1h&limit=30 

תשובה: מערך # Top trader long/short account ratio GET https://fapi.binance.com/futures/data/topLongShortAccountRatio?symbol=BTCUSDT&period=5m&limit=30 # All accounts ratio (retail sentiment) GET https://fapi.binance.com/futures/data/globalLongShortAccountRatio?symbol=BTCUSDT&period=1h&limit=30 . נתונים היסטוריים מוגבלים: [{symbol, longShortRatio, longAccount, shortAccount, timestamp}] מקסימום, limit=500 מ-period עד 5m. נתונים ישנים מ-~30 ימים אינם זמינים דרך ה-API — צריך לאסוף אותם בעצמכם.

Bybit — נקודת קצה 1d:

GET https://api.bybit.com/v5/market/account-ratio?category=linear&symbol=BTCUSDT&period=1h&limit=50 

OKX/v5/market/account-ratio:

GET https://www.okx.com/api/v5/rubik/stat/contracts/long-short-account-ratio?ccy=BTC&period=1H 

OKX אינה דורשת אימות עבור נקודות קצה של נתוני שוק ציבוריים. מגבלת קצב: 20 בקשות/2 שניות.

למה אי אפשר בלי מסד נתונים משלך?

יש לאסוף נתונים באופן קבוע — הבורסות שומרות היסטוריה מוגבלת, ולכן מסד נתונים משלך חיוני לניתוח תקופות ארוכות. PostgreSQL עם תוסף TimescaleDB הוא אופטימלי לנתוני סדרות זמן: חלוקה אוטומטית לפי זמן ואגרגציות רציפות מאיצות שאילתות טווח פי 3 בהשוואה ל-PostgreSQL רגיל. InfluxDB מהיר יותר בכתיבה אך חסר גמישות JOIN. קבצי CSV שטוחים זולים אך חסרים אינדקסים והגנה מפני כפילויות. לכן בחרנו ב-TimescaleDB — הבטחת ייחודיות דרך GET https://api.bybit.com/v5/market/account-ratio?category=linear&symbol=BTCUSDT&period=1h&limit=50 ומהירויות כתיבה של עד 1000 רשומות/שנייה על צומת יחיד.

import httpx import asyncio from datetime import datetime import asyncpg ENDPOINTS = { "binance_top_account": "https://fapi.binance.com/futures/data/topLongShortAccountRatio", "binance_global": "https://fapi.binance.com/futures/data/globalLongShortAccountRatio", "bybit": "https://api.bybit.com/v5/market/account-ratio", } async def collect_ls_ratio(symbol: str, period: str, db: asyncpg.Connection): async with httpx.AsyncClient() as client: resp = await client.get( ENDPOINTS["binance_global"], params={"symbol": symbol, "period": period, "limit": 1}, timeout=10.0, ) data = resp.json()[0] await db.execute(""" INSERT INTO ls_ratio (exchange, symbol, period, long_ratio, short_ratio, ts) VALUES ($1, $2, $3, $4, $5, $6) ON CONFLICT (exchange, symbol, period, ts) DO NOTHING """, "binance", symbol, period, float(data["longAccount"]), float(data["shortAccount"]), datetime.fromtimestamp(data["timestamp"] / 1000)) 

/api/v5/rubik/stat/contracts/long-short-account-ratio — הגנה מפני כפילויות באיסוף חוזר. אינדקס ייחודי על GET https://www.okx.com/api/v5/rubik/stat/contracts/long-short-account-ratio?ccy=BTC&period=1H .

מה אם הבורסה לא מספקת API?

חלק מהבורסות (Gate.io, Bitfinex) לא מפרסמות יחס לונג/שורט דרך API רשמי אבל מציגות אותו בדף אינטרנט. למקרים כאלה, אנו משתמשים בדפדפן ללא ראש דרך Playwright:

from playwright.async_api import async_playwright async def scrape_gateio_ls(symbol: str) -> float: async with async_playwright() as p: browser = await p.chromium.launch(headless=True) page = await browser.new_page() # Перехватываем XHR запросы к internal API ls_data = {} page.on("response", lambda r: capture_ls_response(r, ls_data)) await page.goto(f"https://www.gate.io/futures/{symbol}") await page.wait_for_timeout(3000) await browser.close() return ls_data.get("longShortRatio") 

ה-API הרשמי יציב פי 10 מניתוח ללא ראש. ניתוח דפדפן אינו יציב: שינויי פריסה, אמצעי אנטי-בוט (Cloudflare, PerimeterX). לייצור, אנו משתמשים בו רק כגיבוי, עם ניטור של הצלחת האיסוף.

הערות מעשיות וטעויות נפוצות

מגבלת קצב: בעת איסוף נתונים עבור 20+ סמלים מכמה בורסות, תקבלו בקלות HTTP 429. השתמשו ב-ON CONFLICT כדי להגביל בקשות במקביל ונסיגה אקספוננציאלית בשגיאות. Binance Futures: 1200 משקל לדקה, כל בקשה = משקל 1 לנתוני שוק.

נרמול נתונים: Binance מחזירה import httpx import asyncio from datetime import datetime import asyncpg ENDPOINTS = { "binance_top_account": "https://fapi.binance.com/futures/data/topLongShortAccountRatio", "binance_global": "https://fapi.binance.com/futures/data/globalLongShortAccountRatio", "bybit": "https://api.bybit.com/v5/market/account-ratio", } async def collect_ls_ratio(symbol: str, period: str, db: asyncpg.Connection): async with httpx.AsyncClient() as client: resp = await client.get( ENDPOINTS["binance_global"], params={"symbol": symbol, "period": period, "limit": 1}, timeout=10.0, ) data = resp.json()[0] await db.execute(""" INSERT INTO ls_ratio (exchange, symbol, period, long_ratio, short_ratio, ts) VALUES ($1, $2, $3, $4, $5, $6) ON CONFLICT (exchange, symbol, period, ts) DO NOTHING """, "binance", symbol, period, float(data["longAccount"]), float(data["shortAccount"]), datetime.fromtimestamp(data["timestamp"] / 1000)) כחלק (0.65 = 65% לונג), OKX כיחס (1.86 = 1.86:1 לונג/שורט). נ�רמלו לפורמט אחיד לפני כתיבה למסד הנתונים.

אזורי זמן: כל חותמות הזמן מומרות ל-UTC. Binance מחזירה מילישניות Unix, Bybit גם כן, OKX מחזירה מחרוזת ISO 8601.

איך בנינו את מערכת האיסוף

התהליך שלנו כולל:

  1. ניתוח: זיהוי כל הסמלים והתקופות הנדרשים. קביעה אילו בורסות מציעות יחס לונג/שורט דרך API ואילו דורשות גירוד.
  2. עיצוב ארכיטקטורה: בחירת המחסנית (Python אסינכרוני, httpx, asyncpg) וסכמת האחסון ב-TimescaleDB.
  3. פיתוח מנתחים: כתיבת פונקציות אסינכרוניות לכל בורסה עם מגביל קצב.
  4. אינטגרציית מסד נתונים: יצירת hypertable עם חלוקה יומית ואגרגציות רציפות לשאילתות מהירות יותר.
  5. ניטור והתראות: הגדרת התראות כאשר שיעור הצלחת האיסוף יורד מתחת ל-95%.

כל שלב נבדק על מערך נתונים קטן, ואז מוגדל.

מה כלול בפתרון המפתחות שלנו

אנו מציעים מערכת מוכנה לאיסוף ואחסון נתוני לונג/שורט:

  • קונפיגורציה של מנתחים ל-3+ בורסות (Binance, Bybit, OKX) עם יכולת להוסיף חדשות.
  • אחסון ב-TimescaleDB עם חלוקה אוטומטית ומדיניות שמירה.
  • ניטור איסוף עם התראות אם שיעור ההצלחה יורד מתחת ל-95%.
  • API לגישה לנתונים שנאספו (סינון לפי בורסה, סמל, תקופה).
  • תיעוד והדרכת צוות.

נעריך את הפרויקט שלכם תוך 2 ימי עסקים — פשוט צרו קשר. אנו מבטיחים אספקת נתונים מרגע ההשקה. עלות הפתרון תלויה במספר הסמלים והבורסות ונקבעת לאחר ניתוח. חיסכון בתשתית אחסון יכול להגיע עד 70%. יישמנו זאת עבור 10+ פרויקטים עם נפח אחסון כולל של מעל 500 מיליון רשומות. צרו קשר לייעוץ — נדון במשימה שלכם ללא התחייבות.

למה להפקיד בידינו את האיסוף?

5 שנות ניסיון בפיתוח בלוקצ'יין, עשרות פרויקטים בניתוח נתונים וגירוד. אנו משתמשים במחסנית ייצור: Python אסינכרוני, httpx, asyncpg, TimescaleDB. כל הפתרונות מכוסים בניטור ויש להם ערוצי איסוף גיבוי. החיסכון הממוצע ללקוחותינו — $1000–3000 לחודש. קבלו ייעוץ — צרו קשר.