REST API

技术指标

二十种经典指标,基于价格基准的 K 线按需计算。每次调用最多五十个实例,每个实例有自己的参数。精度已与 TradingView 校准,误差在 0.1% 以内,两个累计型指标以及三处有意保留的约定差异除外。

#调用

POST/v1/indicatorsdata_type · indicators

API 中唯一接收 JSON 正文的端点:它描述的是计算,而不是读取。结果既不存储也不缓存,每次调用都基于已收盘的 K 线重新计算。

参数类型默认值说明
symbolstring必填二十个永续合约之一。最多 32 个字符。
timeframestring必填1m、5m、15m、30m、1h、4h、1d、1w。这是唯一接受周线的接口。
resultsinteger1每个指标返回的值数量。1 表示在已收盘 K 线上的最新值。
indicatorsarray必填非空的 { id, type, parameters } 对象列表。最多五十个条目。
curl -X POST "https://api.bytnode.com/v1/indicators" \
  -H "X-API-KEY: $BYTNODE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "symbol": "BTCUSDT",
    "timeframe": "1h",
    "results": 60,
    "indicators": [
      { "id": "rsi_fast", "type": "rsi", "period": 7 },
      { "id": "rsi_slow", "type": "rsi", "period": 21 },
      { "id": "macd", "type": "macd", "fast": 12, "slow": 26, "signal": 9 },
      { "id": "bb_mid", "type": "bb", "period": 20, "std": 2.0 }
    ]
  }'

1m5m15m30m1h4h1d1w

#二十种指标

类型实例数参数(默认值,最小值)输出
rsimultiperiod (14, ≥ 2)value
emamultiperiod (20, ≥ 2)value
smamultiperiod (20, ≥ 2)value
bbmultiperiod (20, ≥ 2), std (2.0, ≥ 0.5)upper, middle, lower
atrmultiperiod (14, ≥ 2)value
stochmultik (14, ≥ 2), d (3, ≥ 2), smooth (3, ≥ 2)k, d
macdmonofast (12, ≥ 2), slow (26, ≥ 5), signal (9, ≥ 2); fast < slowmacd, signal, histogram
obvmonononevalue
adxmultiperiod (14, ≥ 2)value
sarmonoacceleration (0.02, ≥ 0.01), maximum (0.2, ≥ 0.05); acceleration ≤ maximumvalue
ccimultiperiod (20, ≥ 2)value
willrmultiperiod (14, ≥ 2)value
mfimultiperiod (14, ≥ 2)value
rocmultiperiod (10, ≥ 2)value
admonononevalue
adoscmonofast (3, ≥ 2), slow (10, ≥ 5); fast < slowvalue
keltnermultiperiod (20, ≥ 2), multiplier (2.0, ≥ 0.5)upper, middle, lower
donchianmultiperiod (20, ≥ 2)upper, middle, lower
ichimokumonotenkan (9, ≥ 2), kijun (26, ≥ 5), senkou (52, ≥ 10)tenkan_sen, kijun_sen, senkou_a, senkou_b
vwmamultiperiod (20, ≥ 2)value

#标识符

每个实例都带有一个由你选择的 id,作为响应中的键。其格式受约束,使三个不同周期的 RSI 无需自定义约定也能区分。

十四种多实例类型

每种类型最多三个实例,后缀为 _fast、_mid 和 _slow(rsi_fast、ema_slow)。

rsiemasmabbatrstochadxcciwillrmfirockeltnerdonchianvwma

六种单实例类型

标识符与类型名称完全相同:macd、ichimoku。每次调用一个实例。

macdobvsaradadoscichimoku

标识符重复、格式错误或与其类型不符时返回 400。

#上限规则

指标需要预热(warm-up)(在第一个可发布值之前的 K 线)。规则是:

规则
results + warmup(type, parameters) <= 1000

超出时请求返回 422。对于线性预热的类型,消息会给出在所请求结果数量下可使用的最大周期。

类型预热
rsi, atr, keltner5 × period
ema3 × period
sma, bb, cci, willr, roc, donchian, vwma, mfiperiod
stochk + d + smooth
macd3 × slow + signal
adosc6 × slow
adx14 × period
sar200,固定值
ichimokumax(tenkan, kijun, senkou) + kijun
obv, ad无

#响应

200
{
  "status": "ok",
  "timestamp": 1775648290510,
  "data_type": "indicators",
  "data": {
    "symbol": "BTCUSDT",
    "timeframe": "1h",
    "results": 60,
    "indicators": {
      "rsi_fast": { "type": "rsi", "period": 7, "values": [62.3, 58.1] },
      "macd": {
        "type": "macd", "fast": 12, "slow": 26, "signal": 9,
        "values": { "macd": [142.5], "signal": [98.2], "histogram": [44.3] }
      },
      "bb_mid": {
        "type": "bb", "period": 20, "std": 2.0,
        "values": { "upper": [72110.4], "middle": [71420.8], "lower": [70731.2] }
      }
    }
  }
}
  • data.indicators 的键就是你的标识符。
  • 每个条目都会重复其 type 和实际生效的参数(已填入默认值):你始终知道计算了什么。
  • 值按从旧到新排列。
  • 未定义的值输出为 null,绝不会是 NaN。
  • 多键输出按类型声明的顺序排列,而不是计算引擎的顺序。

#约定差异

这些差异来自实测,而非偏好。了解它们可以避免在没有问题的地方找 bug。

OBV 和 AD 是没有起点的累计值

两者都从所加载窗口的第一根 K 线开始累计。它们的绝对水平在不同请求之间不可复现:两个不同的窗口会得到两个不同的水平,且都不会与第三方图表上的水平一致。只有斜率、变化和与价格的背离可用。adosc 没有这个缺陷:它不受起点影响。

Ichimoku:与 TradingView 相差一根 K 线

两条 senkou 向前平移 kijun 根 K 线(默认 26)。TradingView 平移 25。因此相差一根 K 线是预期内的。

不提供 chikou_span:其定义依赖未来数据,在最近的 K 线上会是 null,因此在 results: 1 时总是 null。

Keltner:单一长度

采用现代变体,指数移动平均加 ATR,两者使用同一长度。TradingView 分别提供 EMA(20) 和 ATR(10)。这是有意为之的差异。

VWMA 不是 VWAP

vwma 是成交量加权移动平均,基于价格基准的 K 线计算。/v1/vwap 则聚合所有交易所的成交。来源和窗口都不同:两者有差异并不矛盾。

Donchian 包含当前 K 线

窗口是包含式的,与图表脚本语言中的 highest 和 lowest 函数一致。

MFI 不是成交量版 RSI

它实现为简单的滚动求和,不使用 RSI 的平滑:其预热等于周期,而不是五倍周期。

#错误

校验顺序固定:周期,然后结果数量,然后交易对,然后指标解析,然后上限规则,最后读取 K 线。以第一个失败为准。

情况状态码
密钥缺失或无效403
周期无效、results 小于 1、交易对未知400
indicators 列表为空,或条目不是对象400
缺少 id 或 type 键、id 格式错误、类型不受支持400
该类型的未知参数、类型错误、低于最小值400
macd 或 adosc 的 fast ≥ slow,sar 的 acceleration '>' maximum400
标识符重复400
正文格式错误、超过 50 个指标、字段过长422
results + warm-up 超过 1000422
该周期数据不足,包括稳定币422
超出速率限制429