Harbor SDK
Ejemplo: doble pata de financiación
Este ejemplo declara el spot y el perpetuo juntos. symbolMode debe ser dual, y symbols debe nombrar ambas patas. En ejecución, getSymbols devuelve la lista permitida, y después la estrategia lee la tasa de financiación actual del perpetuo y el historial reciente.
- El símbolo spot es BINANCE:BTC/USDT. El perpetuo es BINANCE:BTC/USDT:USDT.
- Cuando la tasa es positiva y el historial no está vacío, el ejemplo compra a mercado el símbolo de la vela actual. Una estrategia real de dos patas debe usar ambos símbolos declarados.
- La interfaz muestra la tasa en una tarjeta de métrica.
getFundingRate devuelve null cuando no hay datos. El ejemplo lo trata como 0 y no envía orden. Ejemplo completo:
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: [],
});
}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