度宽量化
简体中文
返回手册

Harbor SDK

示例:资金费双腿

这个示例同时声明现货和永续。symbolMode 必须是 dual,symbols 写明现货腿和永续腿。运行时用 getSymbols 取出允许的列表,再读永续的当前资金费和最近几条历史。

  • 现货 symbol 是 BINANCE:BTC/USDT,永续是 BINANCE:BTC/USDT:USDT。
  • 资金费率为正且历史不为空时,示例对当前 K 线的 symbol 市价买入。接入真实双腿时,两条腿都要使用已声明的 symbol。
  • 界面用一张指标卡显示读到的费率。

getFundingRate 没有数据时返回 null,示例把费率当作 0,不会下单。完整示例:

const manifest = {
  name: "资金费双腿",
  version: "1.0.0",
  ccxtIds: ["binance"],
  markets: ["spot", "swap"],
  symbolMode: "dual",
  symbols: ["BINANCE:BTC/USDT", "BINANCE:BTC/USDT:USDT"],
  params: {},
  permissions: ["market", "order", "account"],
};
async function onBar(rt, bar) {
  const symbols = await rt.market.getSymbols();
  const perp = symbols[1] || bar.symbol;
  const funding = await rt.market.getFundingRate(perp);
  const history = await rt.market.getFundingHistory(perp, 4);
  const rate = funding ? Number(funding.rate) : 0;
  if (rate > 0.0001 && history.length > 0) {
    await rt.order.create({
      clientOrderId: "fund-" + bar.time,
      symbol: bar.symbol,
      side: "buy",
      type: "market",
      amount: "0.01",
    });
  }
  rt.setUi({
    cards: [{ kind: "metric", id: "f", label: "funding", value: String(rate) }],
    buttons: [],
  });
}
本章节内容登录后可见

注册账号即可免费阅读完整章节,包括示例代码与逐步操作说明。

登录 / 注册后查看