Быстрый старт

API xgbCrypto предоставляет торговые сигналы для криптовалют на основе модели XGBoost. С помощью простых REST API запросов вы можете получать сигналы в реальном времени по 20 основным монетам в трёх частотных диапазонах.

1. Зарегистрируйтесь и получите API Key

Войдите через аккаунт Google и создайте API Key в панели управления.

2. Отправьте запрос

Используйте API Key для вызова интерфейса сигналов:

cURL
curl -H "X-API-Key: YOUR_API_KEY" \
  https://xgbcrypto.com/api/signals/latest/?symbol=BTCUSDT

3. Интерпретация сигнала

Значение net_signal в ответе находится в диапазоне от -1 до +1:

  • > 0.2 → Сильный рост
  • 0 ~ 0.2 → Рост
  • ≈ 0 → Нейтрально
  • -0.2 ~ 0 → Снижение
  • < -0.2 → Сильное снижение

Определения сигналов

xgbCrypto предоставляет три предустановленных таймфрейма сигналов, каждый из которых предназначен для определённого стиля торговли. Каждый сигнал генерируется моделью XGBoost, обученной на исторических данных свечей с использованием метода тройного барьера (Triple Barrier Method) — модель предсказывает, что вероятнее произойдёт первым в заданном временном окне: достижение тейк-профита или стоп-лосса.

Каждый сигнал выдаёт значение net_signal от -1 до +1. Оно рассчитывается как P(прибыль) - P(убыток), где модель использует метод тройного барьера: цена первой достигает тейк-профита → прибыль; первой достигает стоп-лосса → убыток; ни один барьер не достигнут в пределах окна → нейтральный.

SHORT

Краткосрочный сигнал (высокочастотный)

Источник данных1-минутные свечи Binance
Частота обновленияКаждую 1 минуту
Окно ретроспективы60 свечей (1 час ценовой истории)
Окно прогнозаСледующие 30 минут — изменится ли цена на ±0.5%?
Тейк-профит / Стоп-лосс±0.5% (тейк-профит и стоп-лосс)
Подходит дляСкальперы и дейтрейдеры. Захватывает минутные импульсные сдвиги. Типичный период удержания: от минут до часов.
MID

Среднесрочный сигнал (свинг)

Источник данных1-часовые свечи Binance
Частота обновленияКаждый 1 час
Окно ретроспективы24 свечи (1 день ценовой истории)
Окно прогнозаСледующие 12 часов — изменится ли цена на ±1%?
Тейк-профит / Стоп-лосс±1% (тейк-профит и стоп-лосс)
Подходит дляСвинг-трейдеры. Фокусируется на часовых изменениях тренда. Типичный период удержания: от часов до дней.
LONG

Долгосрочный сигнал (трендовый)

Источник данных6-часовые свечи Binance
Частота обновленияКаждые 6 часов
Окно ретроспективы28 свечей (7 дней ценовой истории)
Окно прогнозаСледующие 2 дня — изменится ли цена на ±2%?
Тейк-профит / Стоп-лосс±2% (тейк-профит и стоп-лосс)
Подходит дляТрендовые трейдеры и позиционные трейдеры. Захватывает среднесрочное и долгосрочное направление рынка. Типичный период удержания: от дней до недель.

Понимание net_signal

Значение net_signal — это основной выход каждого сигнала. Оно равно P(прибыль) - P(убыток) и находится в диапазоне от -1 до +1. Положительное значение означает, что модель считает более вероятным достижение тейк-профита раньше стоп-лосса, и наоборот.

net_signal = P(profit) - P(loss)
  • > 0.2 → Сильный рост
  • 0 ~ 0.2 → Рост
  • ≈ 0 → Нейтрально
  • -0.2 ~ 0 → Снижение
  • < -0.2 → Сильное снижение

Временные метки и часовые пояса

Все временные метки сигналов указаны в UTC, следуя отраслевому стандарту, используемому Binance, CoinGecko и другими крупными платформами. Ваше фронтенд-приложение может конвертировать UTC в локальный часовой пояс пользователя с помощью стандартных методов JavaScript Date.

Пользователи корпоративного плана могут запросить индивидуальную настройку сигналов — включая пользовательские таймфреймы, пороги барьеров и окна ретроспективы, адаптированные под вашу торговую стратегию. Свяжитесь с нами для подробностей.

Аутентификация

Все эндпоинты сигналов требуют аутентификации по API Key. Добавьте в заголовок запроса:

X-API-Key: your_api_key

Получить последние сигналы

GET/api/signals/latest/

Возвращает последние сигналы по указанной монете в трёх частотных диапазонах.

Параметры

symbol (необязательный) — торговая пара, например BTCUSDT. Если не указан, возвращаются все.

Python
import requests

resp = requests.get(
    "https://xgbcrypto.com/api/signals/latest/",
    headers={"X-API-Key": "YOUR_API_KEY"},
    params={"symbol": "BTCUSDT"}
)
data = resp.json()
print(data)
JavaScript
const resp = await fetch(
  "https://xgbcrypto.com/api/signals/latest/?symbol=BTCUSDT",
  { headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log(data);

Пример ответа

JSON
{
  "data": [
    {
      "symbol": "BTCUSDT",
      "signals": {
        "long": {
          "time": "2025-02-17T12:00:00",
          "prob_win": 0.53,
          "prob_loss": 0.47,
          "net_signal": 0.06
        },
        "mid": { ... },
        "short": { ... }
      }
    }
  ]
}

Получить исторические сигналы

GET/api/signals/history/

Возвращает исторические данные сигналов по указанной монете и частотному диапазону.

Параметры

  • symbol (обязательный) — торговая пара
  • freq (необязательный) — диапазон: 1m / 1h / 6h, по умолчанию 1h
  • limit (необязательный) — количество записей, по умолчанию 50, максимум 500
Python
resp = requests.get(
    "https://xgbcrypto.com/api/signals/history/",
    headers={"X-API-Key": "YOUR_API_KEY"},
    params={"symbol": "ETHUSDT", "freq": "mid", "limit": 50}
)
print(resp.json())

Пример стратегии

Ниже приведён простой пример стратегии на Python, автоматически исполняющей сделки на основе сигналов:

Python
import requests
import numpy as np

API_KEY = "YOUR_API_KEY"
SYMBOL = "BTCUSDT"
BASE_URL = "https://xgbcrypto.com"

# 1. 获取 xgbCrypto 信号
signal_resp = requests.get(
    f"{'{'}BASE_URL{'}'}/api/signals/latest/",
    headers={"X-API-Key": API_KEY},
    params={"symbol": SYMBOL}
)
signal_data = signal_resp.json()["data"][0]["signals"]["mid"]
net_signal = signal_data["net_signal"]
prob_win = signal_data["prob_win"]

# 2. 获取 Binance K 线(最近 30 根 1h K 线)
klines = requests.get(
    f"https://api.binance.com/api/v3/klines",
    params={"symbol": SYMBOL, "interval": "1h", "limit": 30}
).json()
closes = np.array([float(k[4]) for k in klines])
current_price = closes[-1]

# 3. 计算 EMA-20
ema_20 = closes[-20:].mean()  # 简化 SMA 近似

# 4. 计算布林带
bb_mid = closes[-20:].mean()
bb_std = closes[-20:].std()
bb_upper = bb_mid + 2 * bb_std
bb_lower = bb_mid - 2 * bb_std

# 5. 综合决策
score = 0
reasons = []

if net_signal > 0.05:
    score += 1
    reasons.append(f"信号看涨 (net={'{'}net_signal:.3f{'}'})")
elif net_signal < -0.05:
    score -= 1
    reasons.append(f"信号看跌 (net={'{'}net_signal:.3f{'}'})")

if current_price > ema_20:
    score += 1
    reasons.append("价格在 EMA20 上方")
else:
    score -= 1
    reasons.append("价格在 EMA20 下方")

if current_price <= bb_lower:
    score += 1
    reasons.append("触及布林带下轨(超卖)")
elif current_price >= bb_upper:
    score -= 1
    reasons.append("触及布林带上轨(超买)")

# 输出
if score >= 2:
    decision = "BUY"
elif score <= -2:
    decision = "SELL"
else:
    decision = "HOLD"

print(f"币种: {'{'}SYMBOL{'}'}")
print(f"当前价格: {current_price:,.2f{'}'}")
print(f"决策: {'{'}decision{'}'} (综合得分: {'{'}score{'}'})")
print(f"依据: {'{'}'; '.join(reasons){'}'}")

Коды ошибок

CodeDescription
401Не аутентифицирован — отсутствует или недействителен API Key
403Доступ запрещён — API Key истёк или заблокирован
429Слишком много запросов — превышен лимит частоты запросов
500Ошибка сервера — повторите попытку позже

Тарифы и ограничения

ТарифДиапазоныМонетыЛимит запросов
Бесплатный6h / 1hТолько BTCUSDT1/час
Базовый6h / 1h / 1mВсе 201 000/час
Профессиональный6h / 1h / 1mВсе 203 000/час
Премиум6h / 1h / 1mВсе 2020 000/час
КорпоративныйВсеВсе + индивидуальныеБезлимитно

Онлайн-тестирование

Введите ваш API Key и протестируйте интерфейс сигналов прямо сейчас.

GET /api/signals/latest/?symbol=BTCUSDT