Harbor SDK
Пример: тренд
В этом примере один бессрочный контракт. Каждый бар загружает последние цены закрытия 1h и сравнивает предыдущую цену закрытия с последней. Если позиции нет и цена выросла, стратегия покупает по рынку.
- markets — swap. symbolMode — single.
- Сначала вызывается getKlines, затем getPositions. Нет позиции означает, что длина массива позиций равна 0.
- clientOrderId — это trend- и время бара.
- Каждый бар пишет журнал уровня info, чтобы вы могли проверить цену закрытия на экземпляре.
Покупка только когда позиции нет и цена растёт. Продажи нет. Добавьте выход до реального счёта и сначала прочитайте журнал на бумажном счёте. Полный пример:
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);
}Эта глава доступна после входа
Создайте бесплатный аккаунт, чтобы прочитать главу целиком, включая примеры кода и пошаговые инструкции.
Войти и продолжить