Brrr Terminal

信号服务

API key

Basic 最多 1 把

配额用量 Basic

今日 REST
0 / 20,000
限速
5 rps 单次 ≤ 1,000 点
历史窗口
7 天
WebSocket
无 Pro 起
毫秒级主题
不可见 Max
Webhook
0 个

REST

# 序列(五段式 ID,可一次要多条;from/to 毫秒)。网页端看全部;用 API key 访问时历史窗口 / 点数 / 毫秒主题按档位限制
curl -H "Authorization: Bearer $BRRR_KEY" \
  "https://api.brrr.capital/api/v1/series?id=drv.bzcl.BRENT-WTI.spread.1m&id=drv.bzcl.TD25.usd.1d&from=1792000000000"

# 返回
{ "tier": "pro",
  "series": { "drv.bzcl.BRENT-WTI.spread.1m": {
      "gran": "1m", "unit": "$", "src": { "name": "derived bzcl", "url": "…" },
      "points": [ { "t": 1792448160000, "rt": 1792448160412, "v": 7.69, "q": 0 }, … ],
      "truncated": { "allowedFrom": 1784672000000, "tier": "pro" } } } }

# 事件、目录
curl … "https://api.brrr.capital/api/v1/events?monitor=commodities/oil/spread/basic&from=…"
curl … "https://api.brrr.capital/api/v1/catalog"

WebSocket

// wss://api.brrr.capital/v1/stream   JSON 行协议,15 s 心跳(hb),数据帧带 seq,断线按 seq 续传
const ws = new WebSocket("wss://api.brrr.capital/v1/stream?key=" + KEY);
ws.onopen = () => ws.send(JSON.stringify({ op: "sub", ids: ["drv.bzcl.BRENT-WTI.spread.1h", "md.hl.xyz:BRENTOIL.oracle.1s"], since: { "drv.bzcl.BRENT-WTI.spread.1h": lastSeq } }));
ws.onmessage = (m) => {
  const f = JSON.parse(m.data);          // { type:"data", id, t, rt, v, q, seq } / { type:"sub", ids, rejected } / { type:"hb" }
  if (f.type !== "data") return;
  lastSeq = f.seq;                        // 存下来,重连时带上就不会漏
};
// 取消:{ op:"unsub", ids:[…] };心跳:{ op:"ping" } → { type:"pong" }。秒级 / 逐笔主题只对 Max 开放。

在本地用 OpenWhale 接 Brrr 信号源

装 OpenWhale:开源策略运行器,支持 Hyperliquid / Binance 等场所,本地执行。
生成一把只读 key(上面),放进 .env,不要写进仓库。
声明信号源:把要订阅的序列 / 事件主题写进 sources.yaml;Pro 起走 WS,Basic 走 REST 轮询。
写策略:对事件或序列做出反应;我们开放的示例策略可以直接 openwhale add brrr/bzcl-meanrev。
回放再实盘:先用 90 天历史回测,再 openwhale run。
# 1. 装 OpenWhale(本地跑,私钥不出本机)
npx openwhale init my-strat && cd my-strat

# 2. 把 Brrr 当信号源:config/sources.yaml
sources:
  brrr:
    kind: brrr
    base: https://api.brrr.capital/api/v1
    key: ${BRRR_KEY}          # 只读 key,从本页生成
    topics:
      - drv.bzcl.BRENT-WTI.z.1m
      - evt.bzcl.BRENT-WTI.z.cross

# 3. 策略里订阅(strategies/bzcl-meanrev.ts)
export default strategy({
  on: { "evt.bzcl.BRENT-WTI.z.cross": (e, ctx) => {
    if (e.payload.level === 2 && e.payload.direction === "up") ctx.enter("short", { bz: 1, cl: -1 });
    if (e.payload.level === -2 && e.payload.direction === "down") ctx.enter("long", { bz: 1, cl: -1 });
  } },
});

# 4. 回放 90 天验证,再实盘
openwhale backtest --source brrr --from 90d
openwhale run