Un bot de intercambio de criptomonedas para el bien común
Lo primero que le venga a la mente después de leer esto debería ser algo como: "¿Cómo diablos puede hacer algo bueno un Crypto Trading Bot?".
Durante mucho tiempo he tenido escepticismo hacia el sistema neoliberal y su tendencia a priorizar los intereses de los ricos a expensas de la democracia, el medio ambiente y los más pobres. Los bots comerciales de alta frecuencia son un ejemplo perfecto de las nuevas herramientas técnicas que respaldan las deficiencias y la vacuidad de este sistema económico dañino.
La idea detrás de este proyecto es hacer un bot comercial rentable utilizando Python en el intercambio de criptomonedas Binance y dar las ganancias generadas a organizaciones no gubernamentales. RobotHood no cambiará la faz del mundo, pero constituirá un humilde intento de redistribuir la riqueza a mi escala.
1. ¿Cuándo comprar, cuándo vender?
Esa es la pregunta. Y afrontémoslo de una vez por todas: encontrar esta respuesta sigue siendo una quimera, especialmente en el criptomercado, que es muy volátil. Cuando comencé este proyecto hace un año, rápidamente me di cuenta de que no podía generar las señales comerciales por mí mismo. Además, no quería perder tiempo aprendiendo a operar por algunas razones.
Con suerte, un buen amigo mío que intercambia criptomonedas en su tiempo libre me presentó un canal de discordia privado en el que la comunidad ofrece señales comerciales de gran calidad. Estas son las razones por las que su trabajo es perfecto para lo que estoy tratando de lograr:
- Sus resultados se publican desde hace años y son bastante buenos (~97% de las señales alcanzaron el primer objetivo de venta).
- Sus señales comerciales están formateadas, lo que las hace fáciles de desechar con algunas expresiones regulares.
- Discord es bastante fácil de monitorear con python.
- La comunidad proporciona alrededor de 50 señales por mes.
2. De los mensajes de discordia a las señales comerciales ejecutables
Como suele ser el caso con los problemas orientados a datos, el primer desafío fue extraer datos y hacerlos utilizables. Además, como nunca sabemos cuándo aparecerá un mensaje, tenemos que usar un bot que escanea en vivo el canal de discordia de la señal comercial.
Para hacerlo, uso la biblioteca discord.py-self , que permite la ejecución de mi código cuando se desencadena por eventos específicos dentro de mi cuenta de Discord, como cuando se envía un mensaje en un canal designado
Una vez recibido, un mensaje de discordia será tratado y transformado en un objeto Python de TradingSignal . Aquí hay un ejemplo de transformación con una señal antigua:
3. Ejecución de señales comerciales
Ahora que tenemos un objeto TradingSignal adecuado, podemos usar TradingSignalManager. Este objeto utilizará python-binance para interactuar con la API de Binance y:
- Calcular cantidades de compra según los fondos libres que tengo en mi cuenta de Binance.
- Hacer una orden de compra en el mercado.
- Calcular las cantidades de venta de acuerdo con nuestra estrategia comercial (en qué proporciones usamos cada precio objetivo).
- Realice una o varias órdenes de venta OCO con los parámetros correspondientes.
4. Cúbrete la espalda
Como estamos tratando con dinero aquí, tenemos que tomar alguna medida para evitar perder todo lo que tenemos. Esto es lo que hice para cubrir mi espalda:
- Usando mi Discord Token como una variable de entorno (nunca lo codifique en ningún lugar).
- Proteger mis claves API de Binance y usarlas como variables de entorno (nunca las codifique en ningún lugar).
- Protegiendo mi cuenta de Binance.
- Probando cada función que hice como un maníaco (puedes encontrarlas en la carpeta de prueba del repositorio de git).
- Uso de acciones de GitHub CI/CD para garantizar la calidad del código.
- Poniendo en contenedores el bot en una imagen segura de Docker.
- Generar registros a lo largo del proceso para permitir una solución de problemas eficiente.
- Invertir solo el dinero que puedo permitirme perder.
Por último, pero no menos importante
Es posible que desee preguntarme, ¿cómo sé si esto funcionará? Realmente no Me explico: he vuelto a probar este bot durante los últimos tres meses y generé algo así como 100 € con una inversión inicial de 2000 €. Sin embargo, las criptomonedas son muy volátiles y no podemos saber ni hacer suposiciones sobre lo que sucederá a continuación.
La principal motivación que me impulsa a lo largo del desarrollo de este bot es demostrar que podemos piratear lo que se diseñó originalmente para generar ganancias personales para hacer del mundo un lugar mejor. Como desarrollador, odio la forma en que se usa la tecnología, este proyecto es un intento de encender un rayo de esperanza para aquellos que sienten lo mismo.
También fue la ocasión de aprender nuevas habilidades resolviendo problemas complejos trabajando en un proyecto significativo.
/!\ DESCARGO DE RESPONSABILIDAD: Solo publiqué una versión ficticia e inofensiva de RobotHood en GitHub para que nadie pueda usarla para su propio beneficio o pérdida. No contiene TradingSignalManager, que es la característica principal.
De hecho, RobotHood no sería RobotHood si publicara el código fuente completo en la web. Además, no revelaré qué grupo de discordia utilizo para obtener las señales comerciales.
Conclusión
Estoy muy orgulloso de finalmente escribir sobre este trabajo, encontrará el enlace de GitHub aquí . Esta fue una descripción general rápida de las características principales de RobotHood, más artículos por venir, ahora en proceso:
- Cómo rastrear las ganancias generadas por RobotHood.
- Un enfoque de ciencia de datos en la optimización de la estrategia de inversión.
- Una presentación de las ONG apoyadas y el sistema de donaciones de RobotHood.
- ¡Y algo más sobre otros proyectos y trucos de desarrolladores!
PD: ahora soy un científico de datos independiente, si te gusta mi trabajo y necesitas (o conoces a alguien que necesita) ayuda con un proyecto de datos, no dudes en contactarme. Para obtener más información, consulta mi perfil de Malt aquí o mi sitio web allí .

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































