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

Harbor SDK

示例:现货网格

这个示例是单标的现货。第一根 K 线用市价买入一次,并用 kv 记住已经买过,避免每根 K 线都再买。界面上用指标卡和一条收盘价曲线显示当前 K 线。

  • markets 只有 spot,symbolMode 是 single。
  • params.amount 是创建页上的数量字段。示例下单仍写了 0.01,接入创建页参数时改成用户填写的数量。
  • clientOrderId 带上 K 线时间,同一根 K 线重复触发时不会变成两笔。
  • permissions 包含 market、order、account。

完整示例:

const manifest = {
  name: "现货网格",
  version: "1.0.0",
  ccxtIds: ["binance"],
  markets: ["spot"],
  symbolMode: "single",
  params: { amount: { type: "number", label: "数量" } },
  permissions: ["market", "order", "account"],
};
async function onBar(rt, bar) {
  const bought = await rt.kvGet("bought");
  if (!bought) {
    await rt.order.create({
      clientOrderId: "grid-" + bar.time,
      symbol: bar.symbol,
      side: "buy",
      type: "market",
      amount: "0.01",
    });
    await rt.kvSet("bought", "1");
  }
  rt.setUi({
    cards: [{ kind: "metric", id: "px", label: "close", value: bar.close }],
    buttons: [],
    charts: [{ kind: "chart", id: "c", label: "close", points: [{ time: bar.time, value: bar.close }] }],
    fields: [],
  });
}
本章节内容登录后可见

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

登录 / 注册后查看