Crypto Trading Bot | Como construir un Bot usando Python o Javascript | 2020

Crypto Training Bot - Como construir un Bot usando Python o Javascript

Crypto Trading Bot | El campo de desarrollo de los «cryptocurrency bots» es extremadamente lucrativo. Dado el creciente deseo de una solución automatizada, los bots de trading de cripto-monedas se han hecho cada vez más populares. No es inusual encontrarlos en intercambios significativos dada su habilidad para comerciar 24/7, ejecutar estrategias sistemáticamente y colocar órdenes a alta velocidad. Dada la extrema volatilidad de la industria, los operadores están gravitando hacia el apalancamiento de los bots de trading con la única intención de preservar y aumentar el capital de inversión al tiempo que limitan su participación manual.

¿Qué es un Crypto-Trading Bot?

Un Crypto Trading Bot es un programa de software diseñado para reconocer las tendencias del criptomercado y ejecutar automáticamente las operaciones. Un robot de comercio toma la monotonía de presionar el botón de compra y venta físicamente y comercia en nombre del comerciante.

La mayoría de los operadores configuran el bot a un conjunto de reglas preprogramadas personalizadas que utilizan indicadores y tendencias de mercado para ejecutar las preferencias comerciales del operador. Se puede adquirir un bot comercial de forma gratuita a través de una plataforma de código abierto, obtener una licencia por una cuota o, con suficientes conocimientos técnicos, crear uno. A diferencia de los bots de comercio de acciones, los bots de comercio criptográfico son generalmente más baratos y pueden ser utilizados por cualquiera, ya sea novato o profesional.

Bots de comercio de criptodivisas y la variedad de algoritmos de tradings

Actualmente existe una amplia gama de criptodivisas en el mercado. Bitcoin, la primera moneda digital descentralizada, sigue siendo la criptodivisa más popular y cara hasta la fecha. En consecuencia, no es sorprendente que la mayoría de la gente esté comerciando con bitcoin como una forma de generar ingresos pasivos mientras concurren a sus trabajos cotidianos. Sin embargo, un gran porcentaje de ellos carecen de las habilidades o el tiempo para analizar los gráficos de crypto trading. En consecuencia, los robots de trading de bitcoin se están haciendo populares en el espacio de comercio de bitcoin. La mayoría de ellos están configurados para trabajar en muchas de las conocidas crypto-exchanges como Géminis, Huobi, Kraken, Poloniex, Bitfinex, etc.

Dado el hecho de que el mercado está inundado de Crypto Trading Bots, la alta competencia sigue siendo uno de los retos para alguien que escribe su bot. Las grandes organizaciones con acceso a más recursos y profesionales pueden desarrollar bots más robustos que alguien que trabaja de forma independiente. La creación de un trader automático de bitcoin requiere mucho tiempo para construir su algoritmo y asegurarse de que no tiene fallos de seguridad explotables. Mientras que descargar un bot de trading de código abierto es barato y requiere un tiempo de desarrollo mínimo, es más difícil construir y adaptar su algoritmo de trading, crear un conjunto único de características o arreglar errores o problemas de seguridad.

Node.js versus python-crypto trading bots

El lenguaje de programación que elijas dependerá únicamente de las características y funciones que quieras que tenga el crypto trading bot. Preferiblemente, querrás usar un lenguaje de programación que esté ampliamente soportado y que tenga una comunidad activa en la esfera de la criptografía. Además, debes asegurarte de que pueda ser fácilmente escalado si surge la necesidad. Es conveniente cuando se quiere aprovechar la comunidad para el apoyo al desarrollo. Por el momento, los lenguajes de programación más comunes para escribir bots comerciales son JavaScript y Python. Según SlashData, Python y JavaScript (JS) son los lenguajes de programación más utilizados por los desarrolladores.

Desarrolladores crypto trading botsJavaScript ocupa el primer lugar con unos 11,7 millones de desarrolladores activos, mientras que Python ocupa el segundo lugar con unos 8,2 millones de desarrolladores activos. Ambos lenguajes de programación tienen un amplio apoyo en la comunidad de desarrollo y son sustancialmente compatibles con el entorno de la criptografía. Python es utilizado principalmente por desarrolladores que quieren tener la capacidad de expresar conceptos en menos líneas de código. Además, las bibliotecas de alto rendimiento de Python permiten una fácil investigación y creación de prototipos. Otros desarrolladores prefieren usar JS ya que es dinámico, basado en prototipos y multiparadigma. La mayoría de los desarrolladores lo utilizan para simulaciones, modelado de datos y ejecuciones de baja latencia.

Aunque tanto Python como JS son lenguajes de programación populares, tienen diferencias distintivas. Las principales diferencias entre JS y Python incluyen:

  • Python es fácil de comenzar como un principiante mientras que eJS es más complejo y usualmente difícil para la mayoría de los principiantes.
  • Python tiene muchas librerías para data analytics, machine learning, o scientific computation, mientras que JS es bueno para construir aplicaciones nativas o sitios web.
  • JS puede ser usado para correr tanto en el navegador como en el servidor, mientras que Python es usualmente usado para la programación del lado del servidor/backend.
  • JS es adecuado para el desarrollo móvil mientras que Python no lo es ya que es lento de ejecutar comparado con JS.
  • Python es un lenguaje de programación moderno mejor diseñado y fácil de mantener, a diferencia de JS.

¿Cuáles son las estrategias de Cryptocurrency?

Una estrategia de criptodivisa es una estrategia comercial que proporciona a los traders la capacidad de ganar más utilizando menos capital. Los bots de comercio son incapaces de reaccionar a las condiciones fundamentales del mercado como las decisiones sobre la criptodivisa,los rumores o un exchange hack. Por lo tanto, al escribir un bot, es esencial tener en cuenta estas estrategias para ajustar el bot a cualquier situación actual.

Algunas de las estrategias de criptografía más populares incluyen:

Estrategia de seguimiento de tendencias

En esta estrategia, un crypto-trading bot puede ser programado para identificar las tendencias de una criptodivisa en particular y ejecutar órdenes de compra y venta basadas en estas tendencias. Los bots de comercio son útiles para el comercio de tendencias. La estrategia de seguimiento de tendencias intenta adquirir ganancias mediante el análisis del impulso de un activo hacia una dirección determinada. Los traders que ejecuten esta estrategia entrarán en una posición larga cuando una criptodivisa tenga una tendencia al alza y en una posición corta cuando el activo digital tenga una tendencia a la baja.

Arbitraje

Esta estrategia consiste en que el trader aproveche el diferencial de precios existente entre dos criptas. El trader compra activos digitales de un mercado y luego los vende en otro por otro, obteniendo un beneficio en el proceso. Cuando las crypto-exchanges estaban descentralizadas y en su mayoría no estaban reguladas, había importantes diferencias de precios y los comerciantes podían obtener grandes beneficios con el arbitraje. Hoy en día, el diferencial entre las bolsas se ha estrechado. Sin embargo, un bot de arbitraje criptográfico todavía puede ayudar a un trader a sacar el máximo provecho de estas diferencias de precios.

Market Making

La creación de mercados es otra estrategia que los trading bots son competentes en ejecutar. Esta estrategia implica «la compra y venta continua en una variedad de monedas digitales al contado y contratos de derivados digitales» para captar el diferencial entre el precio de compra y el de venta. Para llevar a cabo esta estrategia, un comerciante pondrá órdenes límite en ambos lados del libro (compra y venta). El bot colocará entonces continuamente órdenes de límite para beneficiarse del diferencial. Esta estrategia puede ser poco rentable en tiempos de competencia extrema o en entornos de baja liquidez.

Cómo construir tu propio robot comercial criptográfico

La ventaja más obvia de usar trading bot propio es la capacidad de mantener el control sobre tus propias claves privadas. También puedes implementar cualquier funcionalidad que desees en el bot. Además, una vez que el bot está configurado, puedes comerciar 24 horas al día, 7 días a la semana, aumentando tus probabilidades de obtener ganancias mediante una colocación de órdenes más rápida.

Dónde descargar un trading bot de Bitcoin de código abierto

El mercado de la criptodivisa crece y se expande diariamente, así como el número de bots. La mayoría de los sofisticados crypto-trading bots de hoy en día son bastante caros de comprar o se ofrecen por suscripción. Sin embargo, hay una forma más natural de adquirir un robot de comercio hoy en día. Un software de trading bot gratuito se puede encontrar en múltiples plataformas de código abierto para que cualquiera lo elija.

Configurar las API´s para cada exchange

En el actual ecosistema de comercio de criptodólares, los API se han vuelto extremadamente importantes, y la mayoría de las personas ni siquiera se dan cuenta de que están usando uno. Un API (Application Programming Interface), es una interfaz para el trading bot que permite al robot enviar y recibir datos de un Exchange. La mayoría de los crypto-exchanges permiten utilizar su interfaz API para el bot. Sin embargo, estos sistemas suelen basarse en unos pocos niveles de permiso protegidos con claves únicas y secretas. Para ello, deberás crear una clave de API en el intercambio que quieras utilizar. Después, tendrás que poner tu clave en el trading bot para acceder a la API.

Las claves de la API son fundamentales. Es aconsejable que nunca compartas tus claves secretas de la API con nadie y que tengas mucho cuidado con la plataforma en la que conectes tu clave. Una vez que las claves son robadas o pirateadas, otra persona puede acceder a tu bot y utilizarlo para comerciar o hacer retiros sin tu permiso. Si la API tiene activada la opción de retiro, lo más probable es que quieras desactivarla. Al desactivarla, el robot no podrá realizar retiros de tu cuenta y te permitirá realizarlos manualmente.

Enlaces de la API para los principales mercados de cambio de divisas:

  • Bitstamp
  • Kraken
  • Bittrex
  • BitMEX
  • Poloniex
  • Binance
  • Gate.io

Haiciendo una checklist para un cryptocurrency trading bot

En lugar de suscribirse a un bot comercial por una cuota o comprar uno, puedes hacer el tuyo propio. A continuación, te presentamos una lista de pasos que puedes seguir para asegurarte de que haces un buen trading bot con la mínima dificultad.

  • Decide el lenguaje de programación que quieres usar. Una buena idea es usar un lenguaje de programación común o familiar para que sea más fácil traer el apoyo al desarrollo en caso de que lo necesites.
  • Hazte con tus APIs. Asegúrate de que dispones de todas las API para las crypto exchanges con las que quieres que tu bot interactúe. Por ejemplo, si estás creando un bot para GDAX, entonces esta claro que necesitas acceso a la API de GDAX.
  • Crea cuentas con los exchanges que pretendes utilizar. Por ejemplo, si tienes la intención de crear un bot de comercio de bittrex, entonces necesitas acceder a la API de bittrex.
  • Elija una estrategia de trading bot. Ya sea su arbitraje, el seguimiento del mercado o la estrategia de creación de mercado. Cuanto más compleja sea la estrategia comercial, más tiempo de desarrollo se necesitará.
  • La arquitectura. Asegúrate de definir claramente el tipo de datos que quieres que tu bot interprete.
  • Crear. La creación es la parte que más tiempo consume para hacer el trading bot. Asegúrate de que haces todo de manera procesal.
  • Probar. Asegúrate de que tu bot de operaciones funcione como debe. Si no, este es el mejor momento para ajustarlo.
  • Despliegue. Una vez que hayas resuelto cualquier problema con el robot de operaciones, es el momento de desplegarlo y hacer uso de él.

Como crear un Trading Bot con Python

Estableciendo el entorno del Crypto Trading Bot

El primer paso para crear un trading bot con Python es establecer un entorno de desarrollo.

  • Descargar e instalar PyCharm

PyCharm es un IDE (Integrated Development Environment) utilizado para desarrollar programas y/o construir software en Python. Es muy recomendable para principiantes ya que facilita el proceso de aprendizaje. Es personalizable y contiene todas las herramientas y características que un programador necesita para ser productivo en el proceso de desarrollo.

  • Descargar e instalar todas las bibliotecas y dependencias

Es importante descargar e instalar todas las bibliotecas y dependencias. Estas son una colección de métodos y funciones que te permiten realizar un montón de acciones sin necesidad de escribir tu código. Puedes hacer uso de PyPI para adquirir la mayoría de las librerías que necesitas e instalarlas con pip, que a menudo viene con tu instalación de Python. Intentar instalar todas las dependencias en PyPI manualmente puede llevar un tiempo, por lo que es posible que tengas que crear un script para ayudarte. A continuación se muestra un tutorial sobre cómo puedes hacer esto.

  • Descarga e instala la librería de Python Exchange desde GitHub

Puedes descargar el código fuente directamente e instalarlo, o puedes obtener una copia del repositorio PyPI e instalarlo. Ambos métodos instalarán la biblioteca de Exchange de Python. De lo contrario, puedes elegir clonar desde el código fuente. Cualquiera de los dos métodos funcionará perfectamente.

Portfolio/ Index Indicators

El único objetivo de esta sección es añadir la funcionalidad de la portfolio al trading bot automatizado de Binance. Como la creación de un portafolio es un ejercicio sencillo, puedes incorporar un proyecto de python ya completado. Un diseño de plantilla de ‘Tracking a Portfolio with Python’ proporcionará funcionalidades como:

  • Crear la funcionalidad de la cartera de cryptos con depósitos, retiros, compra y venta-denominados en Satoshis- informes diarios/semanales/mensuales de P&L.
  • Capacidad de crear carteras de «play money», es decir, realizar tareas avanzadas de cartera como la indexación del crypto profile (Hodl bot).
  • Guarda todos los datos en .csv que es fácil de editar en Microsoft Excel.
  • incorporar Matplotlib y Pandas Data Structure para la visualización de datos y el análisis de datos respectivamente.

Recopilación y análisis de datos históricos de la Binance y CoinBase

En esta sección, aprenderás a recopilar y también a utilizar datos históricos de Binance y Coinbase. Aprenderás cómo recopilar y guardar datos en formatos que pueden ser utilizados más tarde. Además, utilizarás estos datos para informar al bot sobre su estrategia de operaciones. Es decir, cuándo comprar, cuándo vender, las mejores monedas para comprar, etc. Como esta sección es un poco compleja, es mejor ver un tutorial de Coinbase que explica todo en detalle a continuación.

Seguimiento de pérdidas y ganancias – Comparación con el ‘index’.

Usarás todo el código publicado en github como ‘Portfolio Tracker’ que se bifurcará y modificará para el seguimiento de la cartera criptográfica en Binance. Para rastrear un portafolio encriptado con código disponible públicamente, usaremos un gran proyecto conocido como ‘Cryptrack by Herschee’. Con él se sacará de Coinmarketcap para determinar las ganancias y pérdidas por hora, diarias y semanales. Este código real será incluido en el proyecto de comercio algorítmico como una funcionalidad inicial antes de implementar la funcionalidad de ‘Portfolio Tracker’. A continuación se muestra un excelente tutorial sobre cómo instalar y utilizar Cryptrack.

Desarrollo de nuevas estrategias basadas en datos históricos

Los datos históricos son extremadamente útiles para el Crypto Trading Bot. A partir de ellos, puede determinar futuras posiciones comerciales, determinar los buenos o malos momentos para comprar o vender, e intentar predecir el rendimiento futuro. Todos los datos son analizados por el robot para determinar las tendencias a corto o largo plazo, que en última instancia le informan de la estrategia comercial que va a emprender.

Como realizar un Trading Bot con JavaScript

En esta sección se explicará en detalle cómo se puede hacer un trading bot usando JavaScript. Comprobaremos específicamente cómo puedes hacer esto con el exchange Coinbase. También usaremos el programador de tareas de Windows para ejecutar nuestro código. Por lo tanto, necesitarás una cuenta con CoinbasePro, que es una impresionante plataforma soportada por Coinbase con una completa API. También necesitarás una cuenta de Gmail. La cuenta Coinbase será para el envío de órdenes y la cuenta de Gmail para la recepción de notificaciones comerciales. A continuación, se describen los pasos para crear un robot de operaciones con JavaScript.

Las bibliotecas que usaremos

El primer paso es llamar a las bibliotecas. Algunas de las principales bibliotecas que necesitaremos incluyen:

  • Rgdax
  • mailR
  • stringi
  • curL
  • xts
  • TTR

trading bot javascriptEl paquete rgdax proporciona la interfaz para la API de GDAX. mailR se utiliza para enviarle actualizaciones por correo electrónico con una cuenta de Gmail. Stringi ayuda a analizar los números de JSON. Por último, TTR te permitirá realizar cálculos de indicadores técnicos. Algunas de las funciones que necesitaremos incluyen:

  • Curr_bal_usd & curr_bal_eth

Estas funciones consultarán el saldo más reciente de su cuenta GDAX. Esta función se usará repetidamente en las operaciones.

  • RSI

La siguiente función que usaremos es el RSI o Índice de Fuerza Relativa como nuestros principales indicadores para esta estrategia.

  • Bid & ask (Oferta y demanda)

Esta función le dará acceso a la oferta actual y al precio de venta.

  • Usd_hold, eth_hold & cancel_orders

Tanto la función usd_hold como la eth_hold ayudan a sacar el estado actual de los pedidos ya hechos de manera frecuente. La función cancel_order ayudará a cancelar los pedidos que se han movido demasiado hacia abajo en el libro de pedidos.

  • Buy_exe

Esta función funciona a través de varios pasos. La función order_size calcula cuánto crypto podemos comprar. La función WHILE hace pedidos límite mientras aún tenemos cero cryptos. Una vez que un pedido se hace a un precio de oferta específico, el sistema se detiene por un tiempo hasta que el pedido se completa. Si el pedido no se llena, todo el proceso se repite.

Store Variables

El siguiente paso es almacenar algunas de nuestras variables indicadoras de RSI como objetos. Hacerlo ayuda a que el trading loop funcione más rápido para que no excedamos el límite de la tasa de la API.

trading bots store variables

Ejecución del Trading Loop

Los pasos anteriores sólo elaboraron cómo preparar funciones y variables para ejecutar el bucle de operaciones. Ahora, tomando el ejemplo del USD y el ETH, echamos un vistazo a un recorrido real del bucle de operaciones. Con un saldo actual de más de 20 USD en la cuenta, podemos comenzar el bucle. Si el RSI actual es mayor o igual a 30 y el RSI anterior a éste fue menor a 30 como mínimo una vez, entonces compramos la mayor cantidad de ETH que podamos con el saldo actual de USD. Después, guardamos este precio de compra en un archivo CSV.

Después de esto, necesitamos enviarnos un correo electrónico para alertarnos de la acción de compra. El bucle entonces imprime «compra» para que pueda ser rastreada en el archivo de registro. El sistema entonces dormirá durante unos 3 segundos. Después, introducimos 3 niveles de órdenes de venta para obtener beneficios. La primera orden de venta límite toma beneficios con un 1% de ganancia. La siguiente orden de venta limitada toma ganancias del 4%. La última orden de venta limitada tiene una ganancia del 7%. Y así es como funciona todo el script.

Usando del programador de tareas de Windows para automatizar nuestro Script

El propósito de tener un Crypto Trading Bot es eliminar el elemento de error humano del trading. Además, necesitas un bot que pueda comerciar sin que tú estés necesariamente presente. Por lo tanto, usaremos el programador de tareas de Windows para automatizar el script. Los pasos incluyen:

  • Programar el script con el complemento Rstudio.
  • Modificar la tarea programada con el programador de tareas.
  • Mantén un ojo en tu tarea con el archivo de registro.

¿Cuáles son los riesgos al escribir tu propio Crypto-Trading Bot?

Construir un Crypto Trading Bot no es tan simple como parece. Los bots se construyen con códigos y algoritmos específicos que los ayudan a funcionar. Cualquier fallo en el proceso de desarrollo puede hacer que un bot sea ineficaz. El bot puede contener errores no identificados o fallos del sistema incrustados en lo profundo del código del bot. Por lo tanto, se requieren conocimientos muy avanzados de programación y análisis técnico. Además, hay que invertir una gran cantidad de dinero que puede traducirse en pérdidas financieras o en una pérdida de tiempo si el bot no funciona. Es seguro decir que no todo el mundo puede construir su Crypto Trading Bot.

La mayoría de los Crypto Trading Bot de hoy en día son difíciles de construir y usar, especialmente para los principiantes. Aquellos que invierten tiempo en crear uno pueden descubrir que su bot no funciona de la manera que esperaban.

Construir un trading bot desde cero no es tan fácil como la mayoría de la gente piensa. El enfoque DIY (Do It Yourself) es duro y complicado. Si eres un principiante, el proceso lleva tiempo y está lleno de gastos que rara vez desaparecen. Sin mencionar que la precisión necesaria para crear un cryptocurrency trading bot completamente funcional es intensa. Para añadirle combustible al fuego, se necesita todo un nuevo conjunto de habilidades de programación especializadas para lograrlo.

Comentarios