DoQuant
Português
Voltar ao manual

Harbor SDK

Exemplo: tendência

Este exemplo é um perpétuo. Cada barra carrega os closes de 1h mais recentes e compara o close anterior com o mais recente. Se não houver posição e o preço subiu, ela compra a mercado.

  • markets é swap. symbolMode é single.
  • Ela chama getKlines e depois getPositions. Zerada significa que o tamanho do array de posições é 0.
  • clientOrderId é trend- mais o horário da barra.
  • Cada barra grava um log info para você conferir o close na instância.

Ela compra apenas quando está zerada e em alta. Ela não vende. Acrescente uma saída antes da real e leia o log numa conta simulada primeiro. Exemplo 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 requer login

Crie uma conta gratuita para ler o capítulo completo, incluindo código de exemplo e instruções passo a passo.

Entrar para continuar