DoQuant
Volver al manual

Harbor SDK

Ejemplo: tendencia

Este ejemplo es un perpetuo. Cada vela carga los cierres de 1h más recientes y compara el cierre anterior con el último. Si no hay posición y el precio subió, compra a mercado.

  • markets es swap. symbolMode es single.
  • Llama a getKlines y después a getPositions. Plana significa que la longitud del array de posiciones es 0.
  • clientOrderId es trend- más la hora de la vela.
  • Cada vela escribe un registro info para que puedas comprobar el cierre en la instancia.

Solo compra cuando está plana y subiendo. No vende. Añade una salida antes de pasar a real, y lee primero el registro en una cuenta de simulación. Ejemplo completo:

const manifest = {
  name: "趋势",
  version: "1.0.0",
  ccxtIds: ["binance"],
  markets: ["swap"],
  symbolMode: "single",
  params: {},
  permissions: ["market", "order", "account"],
};
async function onBar(rt, bar) {
  const bars = await rt.market.getKlines(bar.symbol, "1h", 3);
  const prev = bars.length > 1 ? Number(bars[bars.length - 2].close) : Number(bar.close);
  const last = Number(bar.close);
  const pos = await rt.account.getPositions();
  if (last > prev && pos.length === 0) {
    await rt.order.create({
      clientOrderId: "trend-" + bar.time,
      symbol: bar.symbol,
      side: "buy",
      type: "market",
      amount: "0.01",
    });
  }
  rt.log("info", "trend " + bar.close);
}
Este capítulo requiere iniciar sesión

Crea una cuenta gratuita para leer el capítulo completo, incluido el código de ejemplo y las instrucciones paso a paso.

Inicia sesión para continuar