快速开始

xgbCrypto API 提供基于 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 模型基于历史 K 线数据,使用三重屏障标签法(Triple Barrier Method)训练生成 — 模型预测的是:在给定时间窗口内,价格更可能先触及止盈还是止损。

每个信号输出一个 -1 到 +1 之间的 net_signal 值。计算方式为 P(盈利) - P(亏损),其中模型使用三重屏障标签法:价格先触及止盈目标 → 盈利;先触及止损线 → 亏损;在前瞻窗口内两者都未触及 → 中性。

SHORT

短线信号(高频)

数据源Binance 1 分钟 K 线数据
更新频率每 1 分钟
回看窗口60 根 K 线(1 小时价格历史)
预测窗口未来 30 分钟 — 价格是否会波动 ±0.5%?
止盈 / 止损±0.5%(止盈和止损)
适用场景超短线和日内交易者。捕捉分钟级别的动量变化。典型持仓时间:几分钟到几小时。
MID

波段信号(中频)

数据源Binance 1 小时 K 线数据
更新频率每 1 小时
回看窗口24 根 K 线(1 天价格历史)
预测窗口未来 12 小时 — 价格是否会波动 ±1%?
止盈 / 止损±1%(止盈和止损)
适用场景波段交易者。关注小时级别的趋势变化。典型持仓时间:几小时到几天。
LONG

趋势信号(低频)

数据源Binance 6 小时 K 线数据
更新频率每 6 小时
回看窗口28 根 K 线(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 等主流平台的行业标准。前端应用可以使用标准 JavaScript Date 方法将 UTC 转换为用户本地时区。

企业版用户可以申请自定义信号配置 — 包括自定义时间频段、屏障阈值和回看窗口,量身定制适合您交易策略的信号。详情请联系我们。

认证方式

所有信号接口需要通过 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
  • limit(可选):返回条数,默认 50
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
401401 — API Key 缺失或无效
403403 — 套餐不支持该币种或超出速率限制
429429 — 请求过于频繁
500500 — 服务器内部错误

方案与限制

方案频段币种速率
免费版6h / 1h仅 BTCUSDT1/h
基础版6h / 1h / 1m全部 20 个1,000/h
专业版6h / 1h / 1m全部 20 个3,000/h
高级版6h / 1h / 1m全部 20 个20,000/h
企业版全部全部 + 自定义无限

在线测试

输入你的 API Key,立即测试信号接口。

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