Руководство по интеграции

Подтверждение входов в перпеты Bybit с помощью Smart Money API

Читайте живые данные своп-рынка Bybit через CCXT, запрашивайте у Smart Money API, подтверждают ли поток китов и позиционирование деривативов ваше направление, затем открывайте позицию в перпетах — с размером, предложенным множителем.

Для кого это

Python-разработчики, запускающие бота для USDT-перпетов на Bybit через CCXT которые хотят независимую проверку рыночного контекста перед каждым входом. Smart Money API — это поддержка решений; он не выставляет ордера за вас; ваш код CCXT сохраняет контроль над исполнением и рисками.

Предварительные требования

  • Python 3.9+ с pip install ccxt requests.
  • API-ключами Bybit, настроенными для CCXT (достаточно read-only для тестирования).
  • Ключ Smart Money API (бесплатный тариф включает BTC).

Получите ваш API-ключ

Каждый запрос аутентифицируется с помощью X-API-Key заголовка. Чтобы получить ключ:

  1. 1Создайте бесплатную учетную запись, затем откройте дашборд.
  2. 2Скопируйте API-ключ, указанный в разделе Доступ к API. Бесплатный тариф включает BTC с 20 запросами/день — достаточно для тестирования этого руководства от начала до конца.
  3. 3Нужно больше символов или выше лимиты? Сравните тарифы на странице цен.

Храните ключ в секрете — сохраните его в переменной окружения, никогда не добавляйте в систему контроля версий.

Настройка

  1. 1Установите библиотеки: pip install ccxt requests.
  2. 2Экспортируйте ваш ключ: export SMA_API_KEY="sm_your_key_here".
  3. 3Откройте свопы Bybit через CCXT (ccxt.bybit({"options":{"defaultType":"swap"}})), позвольте вашей стратегии выбрать направление, затем вызовите /v1/confirm как финальную проверку контекста.
  4. 4Открывайте позицию в перпетах через CCXT только если действие CONFIRM, с размером, определенным size_mult.

Рабочий пример

Этот скрипт читает тикер свопа Bybit через CCXT, определяет направление, затем вызывает GET /v1/confirm?symbol=BTC&direction=long перед принятием решения о входе.

bybit_confirm.py
import os
import ccxt
import requests

API_KEY = os.environ["SMA_API_KEY"]            # never hard-code
SMA_BASE = "https://api.smartmoneyapi.com"

exchange = ccxt.bybit({"options": {"defaultType": "swap"}})   # Bybit perpetuals

def confirm(symbol: str, direction: str) -> dict:
    """Ask Smart Money API for market-context confirmation."""
    r = requests.get(
        f"{SMA_BASE}/v1/confirm",
        params={"symbol": symbol, "direction": direction, "source": "bybit-bot"},
        headers={"X-API-Key": API_KEY},
        timeout=10,
    )
    r.raise_for_status()
    return r.json()

# 1. Read Bybit swap market data with CCXT and pick a candidate direction
ticker = exchange.fetch_ticker("BTC/USDT:USDT")
direction = "long" if ticker["percentage"] and ticker["percentage"] > 0 else "short"

# 2. Confirm with Smart Money API before acting
sig = confirm("BTC", direction)
print(sig["action"], sig["confidence"], "size_mult", sig["size_mult"])

# 3. Act on the recommendation (CCXT executes; the API only advises)
if sig["action"] == "CONFIRM":
    base_qty = 0.01
    qty = base_qty * sig["size_mult"]          # scale by suggested multiplier
    # exchange.create_order("BTC/USDT:USDT", "market", direction, qty)
    print(f"Would place {direction} {qty} BTC/USDT:USDT perp")
elif sig["action"] == "REDUCE":
    print("Context is mixed -> trade smaller or wait for a cleaner setup")
else:  # SKIP
    print("Context does not support this trade -> stand aside")

Ожидаемый ответ

Успешный вызов /v1/confirm возвращает JSON такого вида:

200 OK · application/json
{
  "ts": 1710940821,
  "symbol": "BTC",
  "direction": "long",
  "composite": 0.74,
  "confidence": "HIGH",
  "action": "CONFIRM",
  "size_mult": 1.5,
  "deriv_score": 0.81,
  "onchain_score": 0.68,
  "whale_score": 0.73,
  "reasons": [
    "Funding rate positive across all venues",
    "LSR favors longs: 1.42",
    "Whales: 67% long consensus",
    "MVRV above 1.0 — on-chain bullish"
  ]
}

composite колеблется от -1.0 (сильное противодействие) до +1.0 (сильное подтверждение), confidence имеет значение HIGH или MEDIUM, а size_mult это предложенный множитель размера 0.0–1.5. Полное описание полей см. в документации API.

Как действовать по ответу

CONFIRM

Контекст поддерживает ваше направление. Продолжайте с вашими правилами входа и риска, опционально масштабируя размер на size_mult.

REDUCE

Сигналы смешанные. Рассмотрите меньшую позицию, более жесткие стопы или ожидание более четкой setup.

SKIP

Рыночный контекст не поддерживает эту сделку. Откажитесь и проверьте следующий кандидат.

Готовы к разработке?

Получите бесплатный ключ и сделайте первый подтверждающий запрос менее чем за минуту.

Не является финансовой рекомендацией. Торговля криптовалютами связана с рисками.