// recopilar datos de los indicadores
let rsi10
let rsi20
gb.method.tulind.indicators.rsi.indicator([gb.data.candlesClose], [10], function (err, results) {
rsi10 = results[0]
});
gb.method.tulind.indicators.rsi.indicator([gb.data.candlesClose], [20], function (err, results) {
rsi20 = results[0]
});
// define condiciones de trading
const entryConditions = (
rsi10[rsi10.length - 1] > rsi20[rsi20.length - 1] &&
rsi10[rsi10.length - 2] < rsi20[rsi20.length - 2]
)
const exitConditions = (
gb.data.gotBag &&
rsi10[rsi10.length - 1] < rsi20[rsi20.length - 1] &&
rsi10[rsi10.length - 2] > rsi20[rsi20.length - 2]
)
// colocar órdenes cuando se dan las condiciones de trading
const buyAmount = parseFloat(gb.data.pairLedger.whatstrat.TRADING_LIMIT) / gb.data.bid
if (entryConditions) {
gb.method.buyMarket(buyAmount, gb.data.pairName)
}
else if (exitConditions) {
gb.method.sellMarket(gb.data.quoteBalance, gb.data.pairName)
}
Este ejemplo muestra cómo crear una estrategia de trading sencilla. La estrategia coloca una orden de compra a mercado cuando un RSI de 10 períodos cruza por encima de un RSI de 20 períodos, y coloca una orden de venta a mercado en el cruce a la baja. Primero usted generaría sus datos RSI, para un RSI de 10 períodos y otro de 20 períodos. Esto se hace utilizando la biblioteca tulind, pero podría utilizar cualquier método que desee. A menudo podrías usar valores de indicadores precalculados, pero en este caso necesitamos la matriz completa para detectar cruces. A continuación se definen las condiciones de cruce, cuando éstas se producen se envía una orden.