快速开始
xgbCrypto API 提供基于 XGBoost 模型的加密货币交易信号。通过简单的 REST API 调用,您可以获取 20 个主流币种在三个时间频段的实时信号。
1. 注册并获取 API Key
通过 Google 账号登录后,在控制台生成 API Key。
2. 发送请求
使用 API Key 调用信号接口:
curl -H "X-API-Key: YOUR_API_KEY" \
https://xgbcrypto.com/api/signals/latest/?symbol=BTCUSDT3. 解读信号
响应中的 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(亏损),其中模型使用三重屏障标签法:价格先触及止盈目标 → 盈利;先触及止损线 → 亏损;在前瞻窗口内两者都未触及 → 中性。
短线信号(高频)
| 数据源 | Binance 1 分钟 K 线数据 |
| 更新频率 | 每 1 分钟 |
| 回看窗口 | 60 根 K 线(1 小时价格历史) |
| 预测窗口 | 未来 30 分钟 — 价格是否会波动 ±0.5%? |
| 止盈 / 止损 | ±0.5%(止盈和止损) |
| 适用场景 | 超短线和日内交易者。捕捉分钟级别的动量变化。典型持仓时间:几分钟到几小时。 |
波段信号(中频)
| 数据源 | Binance 1 小时 K 线数据 |
| 更新频率 | 每 1 小时 |
| 回看窗口 | 24 根 K 线(1 天价格历史) |
| 预测窗口 | 未来 12 小时 — 价格是否会波动 ±1%? |
| 止盈 / 止损 | ±1%(止盈和止损) |
| 适用场景 | 波段交易者。关注小时级别的趋势变化。典型持仓时间:几小时到几天。 |
趋势信号(低频)
| 数据源 | 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获取最新信号
/api/signals/latest/返回指定币种最新的三频段信号。
参数
symbol(必填):交易对,如 BTCUSDT
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)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);响应示例
{
"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": { ... }
}
}
]
}获取历史信号
/api/signals/history/返回指定币种的历史信号数据。
参数
- symbol(必填):交易对
- freq(可选):频段,1m / 1h / 6h
- limit(可选):返回条数,默认 50
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 策略示例,展示如何使用信号进行交易决策:
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){'}'}")错误码
| Code | Description |
|---|---|
401 | 401 — API Key 缺失或无效 |
403 | 403 — 套餐不支持该币种或超出速率限制 |
429 | 429 — 请求过于频繁 |
500 | 500 — 服务器内部错误 |
方案与限制
| 方案 | 频段 | 币种 | 速率 |
|---|---|---|---|
| 免费版 | 6h / 1h | 仅 BTCUSDT | 1/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