Fácil acceso a datos de mercado y métodos de trading

Ejecute estrategias de trading personalizadas en JS

¿Tienes ideas muy específicas sobre estrategias de trading? Gunbot soporta estrategias de trading personalizadas en JavaScript, puedes traer tus propios módulos.

Código de ejemplo de estrategia de trading personalizada

Ejecute el código personalizado de su estrategia

Despliegue en muchos exchanges

Gunbot es compatible con muchos exchanges diferentes y pone a disposición de su estrategia datos de mercado y métodos de trading. Despliegue fácilmente su estrategia en muchos exchanges.

Sin sintaxis especial

Una estrategia personalizada consiste en código JavaScript puro. No es necesario aprender un nuevo idioma para empezar a programar estrategias de trading. Se soporta Async y otros códigos de JS modernos.

Traiga sus propios módulos

¿Necesita el módulo X de NPM para su estrategia? No hay problema, puede instalar módulos JS externos y utilizarlos en el código de su estrategia. El uso de recursos de computación solo está limitado por tu hardware.
Las opciones preestablecidas no son para todos

Por qué utilizar estrategias JS personalizadas

Gunbot viene con cientos de opciones de estrategia configurables. Estas opciones se pueden utilizar para excelentes estrategias de trading, pero no todos los escenarios imaginables se pueden manejar con opciones preestablecidas. Las estrategias personalizadas le dan absoluta libertad. Por ejemplo, una opción de estrategia preestablecida podría dar la opción de activar una orden cuando el RSI está por encima o por debajo de X, con una estrategia personalizada podría además hacer un lookback de x períodos, o calcular la pendiente que el RSI está dibujando. Por defecto Gunbot calcula alrededor de 20 indicadores diferentes para sus estrategias incorporadas. Pero, por supuesto, hay muchos más indicadores por ahí. En una estrategia personalizada puede utilizar exactamente los indicadores que necesita, y a menudo NPM tendrá un módulo listo para ello. ¿Desea utilizar fuentes de datos alternativas junto a los datos procedentes directamente del exchange? Ahora puede hacerlo.
// 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)
}
Ejemplo de código

Estrategia RSI Dual

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.