Curso de programación de criptomonedas con Python - 13. Cómo crear un bot de arbitraje. Introducción (parte 1)

in #spanish8 years ago (edited)

Bienvenido a una nueva saga más del curso de programación de criptomonedas con Python. En esta parte del curso vamos a construir paso a paso un bot de arbitraje de criptomonedas siguiendo 2 posibles estrategias, es decir, que vamos a poder tomar 2 posibles caminos al diseñarlo. Lo importantes es que aprendamos cual es la estructura general para que podamos aplicarla a otros proyectos y así ganar soltura programando.

¿Qué es el arbitraje?

El arbitraje es una estrategia de trading que consiste en comprar en un mercado y vender en otro el mismo par de monedas a un precio más caro. Por ejemplo, pongamos que yo tengo ETH en Bittrex y en Poloniex y de repente se produce una subida del precio en Poloniex y en Bittrex tarda en reflejarse. Puedo vender 1 ETH en Poloniex y comprar 1 ETH en Bittrex al mismo tiempo y así sacarle la ganancia. Después de la operación tendría los mismos ETH pero un poco más de BTC.

Como es muy difícil estar constantemente mirando los gráficos de todas las monedas con las que operamos para encontrar el momento justo, que lo haga un bot automáticamente. Este mecanismo no es excesivamente complicado de implementar, ya que lo único que tiene que hacer nuestro bot es monitorear el precio de varias criptomonedas en tiempo real y aplicar las órdenes de compra y de venta cuando la diferencia entre precios sea la que hemos configurado.

Otras estrategias son más difíciles de implementar y quienes conocen bien los algoritmos no los hacen públicos, así que a los no iniciados nos toca comernos la sesera, pero os aseguro que, siguiendo la construcción de este bot paso a paso, vais a ser capaces de crear vuestros algoritmos personalizados.

Para aprender a crearlos me he basado en los bots para Python de esta lista, exceptuando el tAPIbot.

Características del bot

Vamos a configurar nuestro bot para que funcione en Bittrex y Poloniex. Luego podrás añadir otras exchanges si entiendes su mecanismo. Las dos estrategias que vamos a optar por implementar son las siguientes.

  1. [Menos arriesgada]. Tener en tus cuentas de 2 o más exchanges una moneda a tu elección y BTC. Monitorear los precios de compra y venta de esa moneda. Cuando se produzca una diferencia sustancial en los precios comprar y vender al mismo tiempo. Por ejemplo: tengo ZCash en Bittrex y Poloniex. El precio en Bittrex baja a 1.36 BTC/ZEC y en Poloniex se mantiene a 1.50 BTC/ZEC. El bot compra en Bittrex y vende en Poloniex al mismo tiempo calculando si con las comisiones sale rentable.

  2. [Más arriesgada]. Tener BTC en tus cuentas de Bittrex y Poloniex, aunque con esta estrategia se recomienda tener en más exchanges. Monitorear los precios de compra y venta en todas las exchanges para muchas monedas. Si hay una cantidad aceptable vendiéndose en una exchange a un precio menor del que se compra en otra, compramos en la exchange donde el precio es menor, lo enviamos a nuestro monedero en la otra exchange y vendemos allí. Esto es mucho más arriesgado porque, en el tiempo que pasa en el envío, podemos perder la oportunidad de venta y quedarnos colgados. También tiene el inconveniente de que necesitamos implementar más exchanges a nuestro bot y tener una cantidad de BTC en más exchanges.

Lo que siempre haremos será intentar operar con monedas al alza. Si operamos con monedas muy estables corremos el riesgo de que los precios nunca fluctúen, pero si operamos con monedas muy cambiantes corremos el riesgo de que los precios caigan súbitamente. Para controlar las pérdidas estableceremos siempre una orden de venta de tipo Stop Loss.

Elige tu estrategia

Yo voy a implementar un bot que siga la segunda estrategia debido a que es más difícil de configurar y necesita de más módulos, por lo que conseguiremos un bagaje más profundo en el manejo de APIs blockchain. De todas formas, haremos comentarios y algunos códigos para ayudar a crear la primera. El objetivo es que podamos graduarnos en el manejo de Python para crear lo que nos plazca a través de un proyecto de relativa envergadura.

Ten en cuenta los riesgos de cada estrategia, en cómo usarás al bot (si será completamente automático o te servirá de apoyo en tiempo real), que no hay fórmulas mágicas para consegir beneficio fácil... etc.

¿Buscas un bot ya configurado?

Si lo que quieres es un robot ya acabado que pueda hacer beneficios automáticamente puedes buscar en otros lugares: como este robotrader, comprar alguno o probar los gratuitos en Cryptotrader o comprar alguno de los que hay por la red como el Quatloo-Trader.

Pero si quieres los conocimientos básicos para configurar tu propio bot, no te pierdas las siguientes entregas de esta saga. Hasta aquí llega la presentación, que me parecía necesaria para poder enfocar este proyecto. En la próxima parte veremos gráficamente la estructura que tendrá nuestro bot y nos meteremos a teclear código. ¡Hasta entonces!


Índice del curso:

1. Presentación
2. Cómo empezar: llamadas a APIs
3. Envolturas
4. Recopilar datos uno a uno: diccionarios
5. Recopilar datos uno a uno: listas
6. Funciones. Crear un bot informador de STEEM (parte 1/2)
7. Crear un bot informador de STEEM (parte 2/2)
8. Crear un bot recopilador de grandes cantidades de datos (parte 1/5)
9. Crear un bot recopilador de grandes cantidades de datos (parte 2/5)
10. Crear un bot recopilador de grandes cantidades de datos (parte 3/5)
11. Crear un bot recopilador de grandes cantidades de datos (parte 4/5)
12. Bonus: consultar la base de datos que ha creado el bot (parte 5/5)

Sort:  

Que tal amigo, muchas gracias por tu post, como puedo contactarte para poder conocer un poco mas de la programacion de los bots

¡Man excelente publicación!

Coin Marketplace

STEEM 0.14
TRX 0.12
JST 0.025
BTC 54114.77
ETH 2331.62
USDT 1.00
SBD 2.13