公开 API

开发者参考

两个 JSON 端点暴露 ByKaranteli 的实盘表现数据。支持 CORS,带速率限制,有缓存。无需鉴权。嵌入内容时若能署名,我们将不胜感激。

速览

速率限制
20 次 / 分钟 / IP
超出限制时返回 429,附带 retry-after
缓存
5 分钟 TTL
Cache-Control: public, max-age=300
CORS
Allow-Origin: *
支持 GET + OPTIONS 预检
鉴权
所有端点公开 / 只读
格式
JSON · CSV
追加 ?format=csv 用于电子表格
RSS
实时已平仓信号流,72h 窗口

MCP 服务器 · 在 AI 助手中直接使用这些数据

bykaranteli-mcp 是一个官方 MCP(模型上下文协议)服务器,将本 API 以 8 个工具的形式暴露给 Claude、Cursor 以及任何其他支持 MCP 的助手:市场指数、资金费率热力图、资金费率套利、压力评分、涨跌幅榜、近期信号、按交易对的表现,以及策略排行榜。免费,无需 API 密钥,Node 18+。

Claude Code
claude mcp add bykaranteli -- npx -y bykaranteli-mcp
Claude Desktop · claude_desktop_config.json
{
  "mcpServers": {
    "bykaranteli": { "command": "npx", "args": ["-y", "bykaranteli-mcp"] }
  }
}

源码与文档: github.com/bykarantelicom/bykaranteli-mcp · npmjs.com/package/bykaranteli-mcp

GET/api/public/performance

跨 30 / 90 / 180 天窗口的实盘表现聚合快照:净盈亏、PF、Sharpe、DD、多空分解、每日净值曲线。

示例请求
curl -s https://bykaranteli.com/api/public/performance | jq '.windows."90d"'
响应结构(已截断)
{
  "generatedAt": "2026-04-21T06:47:00.000Z",
  "firstSignalAt": "2026-03-21T07:41:27.285Z",
  "lastSignalAt": "2026-04-21T06:45:12.507Z",
  "totalTrades": 104397,
  "windows": {
    "30d": {
      "trades": 90876, "wins": 45470, "losses": 45406, "ties": 0,
      "winRatePct": 50.04,
      "profitFactorGross": 1.5406, "profitFactorNet": 1.339,
      "avgNetBps": 35.94, "medianNetBps": 1.04,
      "avgWinBps": 283.70, "avgLossBps": -212.18,
      "sumNetBps": 3265831.81, "maxDrawdownBps": …,
      "sharpeAnnualized": …, "calmarAnnualized": …,
      "avgDurationMinutes": …
    },
    "90d": { … },
    "180d": { … }
  },
  "sideBreakdown": { "30d": { "LONG": {…}, "SHORT": {…} }, … },
  "equityCurve180d": [ { "day": "2026-03-21", "cumulativeNetBps": 35.94, "tradesToDate": 1 }, … ],
  "disclaimers": { "evalMode": "terminal", "feesIncluded": true, "slippageIncluded": true, "fundingIncluded": true, … }
}
GET/api/public/leaderboard

按窗口计算的策略级排名,综合评分 = PF × √(trades/25) × winness。

查询参数
名称类型是否必填描述
window30 | 90 | 180回溯窗口天数。默认 90。
示例请求
curl -s 'https://bykaranteli.com/api/public/leaderboard?window=90' | jq '.strategies[:5]'
响应结构(已截断)
{
  "generatedAt": "2026-04-21T06:47:00.000Z",
  "windowDays": 90,
  "minTradesQualified": 25,
  "totalStrategies": 14,
  "qualifiedCount": 11,
  "strategies": [
    {
      "strategy": "breakout_v3",
      "trades": 812, "longTrades": 450, "shortTrades": 362,
      "wins": 430, "losses": 382,
      "winRatePct": 52.96,
      "profitFactorNet": 1.42,
      "avgNetBps": 28.1, "sumNetBps": 22817.2,
      "maxDrawdownBps": 14203.5,
      "sharpeAnnualized": 1.18,
      "lastTradeAt": "2026-04-21T06:30:18.201Z",
      "qualified": true,
      "compositeScore": 5.74
    },
    …
  ],
  "disclaimers": { … }
}
GET/api/public/symbols

按交易对的表现排名(合格 + 低样本)。结构与 /strategies 相同,但以 signals.symbol 为键。

查询参数
名称类型是否必填描述
window30 | 90 | 180回溯窗口天数。默认 90。
示例请求
curl -s 'https://bykaranteli.com/api/public/symbols?window=90' | jq '.symbols[:5]'
响应结构(已截断)
{
  "generatedAt": "2026-04-21T06:47:00.000Z",
  "windowDays": 90,
  "minTradesQualified": 20,
  "totalSymbols": 48,
  "qualifiedCount": 36,
  "symbols": [
    {
      "symbol": "BTCUSDT",
      "trades": 3120, "longTrades": 1780, "shortTrades": 1340,
      "wins": 1610, "losses": 1480,
      "winRatePct": 52.1, "profitFactorNet": 1.28,
      "avgNetBps": 18.4, "sumNetBps": 57408.0,
      "bestTradeBps": 612.0, "worstTradeBps": -480.3,
      "maxDrawdownBps": 9821.4,
      "lastTradeAt": "2026-04-21T06:38:21.118Z",
      "qualified": true, "compositeScore": 4.82
    },
    …
  ]
}
GET/api/public/pressure

为每个被追踪的 Binance USDT-M 永续合约计算的 0-100 综合衍生品压力评分(OI 增量 1h/4h/24h + 资金费率 + 基差)。区分方向的市场状态。

查询参数
名称类型是否必填描述
limit1-200最大行数。默认 60。
sidelong | short按方向偏好筛选。
示例请求
curl -s 'https://bykaranteli.com/api/public/pressure?limit=20&side=long' | jq '.items[:5]'
响应结构(已截断)
{
  "generatedAt": "2026-04-23T20:47:28.616Z",
  "count": 60,
  "items": [
    {
      "symbol": "BARDUSDT",
      "score": 45, "direction": "SHORT", "regime": "SHORT_RAMP",
      "regimeLabel": "Net short bias building",
      "components": { "oi24hPct": -8.7, "oi4hPct": 1.5, "oi1hPct": 0.1, "fundingRatePct": -0.037, "basisPct": -0.19 },
      "explainer": [ "Open interest down 8.7% over 24h", "Funding rate -0.037% per interval" ]
    },
    …
  ]
}
GET/api/public/pressure/[symbol]

单个交易对的压力快照,若缓存过期则实时刷新。

示例请求
curl -s https://bykaranteli.com/api/public/pressure/BTCUSDT
GET/api/public/funding-arb

6 家交易所(Binance、OKX、Bybit、Gate、HTX、BingX)上主要交易对的跨交易所资金费率价差,含扣除成本后的年化 APR。

示例请求
curl -s https://bykaranteli.com/api/public/funding-arb | jq '.rows[:5]'
GET/api/public/indices

一个响应包含所有市场指数:散户狂热指数(自有)+ 恐惧与贪婪指数(alternative.me)+ CoinGecko 全球数据 + DeFiLlama 稳定币流量。

示例请求
curl -s https://bykaranteli.com/api/public/indices | jq '.euphoria.score, .fearGreed.today.valueRaw'
GET/api/public/euphoria

散户狂热指数(独立)。由恐惧与贪婪指数 + 热门 meme 币 + 比特币市值占比 + 前 30 名群体持仓构成。

示例请求
curl -s https://bykaranteli.com/api/public/euphoria | jq '{score, regime, explainer}'
GET/api/public/signals/[id]

可验证的信号回执:SHA-256 指纹 + 所有决策参数 + 结果。接受 UUID 或十六进制哈希前缀。

示例请求
curl -s https://bykaranteli.com/api/public/signals/d3fbb0e3-4aef-4a8b-9fa6-2da02401f07e | jq '{hash, shortCode, symbol, side, outcome, netBps}'
GET/embed/pressure/[symbol]

可嵌入的 HTML 组件,显示某个交易对当前的压力评分。用于 iframe。深色主题,无追踪。

示例请求
<iframe src="https://bykaranteli.com/embed/pressure/BTCUSDT" width="340" height="200" style="border:0"></iframe>
GET/api/public/recent

在 H 小时窗口内最近的 N 个已平仓信号。适合行情条、活动信息流和通知。

查询参数
名称类型是否必填描述
hours1-168窗口大小(小时)。默认 24,最大 168(7d)。
limit1-100最大信号数。默认 20。
示例请求
curl -s 'https://bykaranteli.com/api/public/recent?hours=24&limit=20' | jq '.signals[:5]'
响应结构(已截断)
{
  "generatedAt": "2026-04-21T06:47:00.000Z",
  "hours": 24,
  "total24h": 1247, "wins24h": 648, "losses24h": 572, "timeouts24h": 27,
  "net24hBps": 34219.8,
  "signals": [
    {
      "symbol": "ETHUSDT", "side": "LONG", "outcome": "TP1",
      "netBps": 182.4,
      "evaluatedAt": "2026-04-21T06:44:10.009Z",
      "createdAt":   "2026-04-21T05:58:01.301Z"
    },
    …
  ]
}

嵌入示例

把它放进任意 HTML 页面。数字在客户端每 5 分钟刷新一次。

<div id="bk-perf"></div>
<script>
  (async () => {
    const r = await fetch('https://bykaranteli.com/api/public/performance');
    const j = await r.json();
    const m = j.windows['90d'];
    const pct = (m.sumNetBps / 100).toFixed(2);
    document.getElementById('bk-perf').innerHTML =
      `<strong>ByKaranteli 90d:</strong> ${pct >= 0 ? '+' : ''}${pct}%
       · PF ${m.profitFactorNet?.toFixed(2)}
       · ${m.trades} trades
       · <a href="https://bykaranteli.com/performance">source</a>`;
  })();
  setInterval(() => location.reload(), 300000);
</script>

合理使用

  • 速率限制为 每个 IP 每分钟 20 个请求。请遵守,否则会被返回 429。
  • 数据为只读。不暴露任何个人身份信息(PII)或交易操作。
  • 署名:嵌入时,若能保留一个指向 bykaranteli.com 或来源页面(例如 /performance)的可见链接,我们将不胜感激。
  • 允许商业使用。但把我们的数据冒充成你自己的内部回测则不允许。
  • 抓取内部路由(/dashboard/*, /api/admin/*, /api/terminal/*)会被拦截并受到监控。请仅使用 /api/public/*

非投资建议。 所返回的数字描述的是 ByKaranteli 实盘信号引擎的表现,并非交易建议。过往表现不保证未来收益。