빠른 시작

xgbCrypto API는 XGBoost 모델 기반의 암호화폐 매매 시그널을 제공합니다. 간단한 REST API 호출로 20개 주요 코인의 3개 시간 주기별 실시간 시그널을 받아볼 수 있습니다.

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는 각기 다른 트레이딩 스타일에 맞춘 3가지 사전 설정된 시그널 주기를 제공합니다. 모든 시그널은 과거 캔들스틱 데이터를 기반으로 트리플 배리어 방법(Triple Barrier Method)을 사용하여 훈련된 XGBoost 모델이 생성합니다 — 모델은 주어진 시간 창 내에서 가격이 이익 실현과 손절 중 어느 쪽에 먼저 도달할 가능성이 높은지를 예측합니다.

각 시그널은 -1에서 +1 사이의 net_signal 값을 출력합니다. 이는 P(수익) - P(손실)로 계산되며, 모델은 트리플 배리어 라벨링 방식을 사용합니다: 가격이 이익 실현 목표에 먼저 도달 → 수익; 손절 라인에 먼저 도달 → 손실; 전망 기간 내 어느 쪽에도 도달하지 않음 → 중립.

SHORT

단기 시그널 (고빈도)

데이터 소스Binance 1분 캔들스틱 데이터
업데이트 주기매 1분
회고 기간60개 캔들 (1시간 가격 이력)
예측 기간향후 30분 — 가격이 ±0.5% 변동할 것인가?
이익 실현 / 손절±0.5% (이익 실현 및 손절)
적합 대상스캘퍼 및 데이 트레이더. 분 단위 모멘텀 변화를 포착합니다. 일반적 보유 기간: 수분~수시간.
MID

중기 시그널 (스윙)

데이터 소스Binance 1시간 캔들스틱 데이터
업데이트 주기매 1시간
회고 기간24개 캔들 (1일 가격 이력)
예측 기간향후 12시간 — 가격이 ±1% 변동할 것인가?
이익 실현 / 손절±1% (이익 실현 및 손절)
적합 대상스윙 트레이더. 시간 단위 추세 변화에 초점을 맞춥니다. 일반적 보유 기간: 수시간~수일.
LONG

장기 시그널 (추세)

데이터 소스Binance 6시간 캔들스틱 데이터
업데이트 주기매 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 → 강한 매도 신호

타임스탬프 및 시간대

모든 시그널 타임스탬프는 Binance, CoinGecko 등 주요 플랫폼이 사용하는 업계 표준에 따라 UTC입니다. 프론트엔드 애플리케이션에서 표준 JavaScript Date 메서드를 사용하여 UTC를 사용자의 로컬 시간대로 변환할 수 있습니다.

엔터프라이즈 플랜 사용자는 맞춤 시그널 구성을 요청할 수 있습니다 — 맞춤 주기, 배리어 임계값, 회고 기간 등 트레이딩 전략에 맞게 조정 가능합니다. 자세한 내용은 문의해 주세요.

인증 방식

모든 시그널 엔드포인트는 API Key 인증이 필요합니다. 요청 헤더에 다음을 추가하세요:

X-API-Key: your_api_key

최신 시그널 조회

GET/api/signals/latest/

지정된 코인의 3개 주기별 최신 시그널을 반환합니다.

파라미터

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 / 1hBTCUSDT만1/시간
베이직6h / 1h / 1m전체 20개1,000/시간
프로6h / 1h / 1m전체 20개3,000/시간
프리미엄6h / 1h / 1m전체 20개20,000/시간
엔터프라이즈전체전체 + 맞춤무제한

온라인 테스트

API Key를 입력하여 시그널 엔드포인트를 바로 테스트해 보세요.

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