Engranando un Bot para Comprar y Vender Criptomonedas en BITTREX con Python [Paso a Paso Parte1]

in #stem-espanol7 years ago

Hola queridos amigos, hoy vamos a dar nuestros primeros pasos para crear un BOT sobre la API de BITTREX capaz de:

  • Vender Criptomonedas Automáticamente según algunas reglas y preferencias que le coloquemos.
  • Comprar Criptomonedas Automáticamente según algunas reglas y preferencias que le coloquemos.
  • Cancelar Ventas o Compras si ha pasado algún tiempo, esto para restablecer la venta o compra y asegurarnos de que el BOT realiza la operación.
  • Analizar otros mercado para ver el Flujo de las monedas preferidas.

Básicamente este seria el esquema de lo que se requiere hacer.

Fuente Captura de Pantalla de Firefox

El Cripto-Mercado HOY?

Para nadie es un secreto lo Volátil que es el mercado de las Criptomonedas, recordemos que la mayoría de las criptomonedas son en realidad Tecnologías, y vivimos en la era de la tecnología, pero este mercado se mueve frente a las regulaciones y sanciones que muchos países han adoptado contra las Criptomonedas en especial giran en torno a los países Asiáticos esto debido a que la principal Criptomoneda que mueve a todas las demás como si de una gran hola se tratara depende de la aceptación o uso de las personas en el Mundo, resumiendo mientras mas personas usan el Bitcóin y mas Volumen Circula mas confianza se deposita en ella y aumenta su precio.

Los que ya llevamos tiempo podemos decir "TODO va a PASAR", es decir hoy el BTC esta subiendo pero sabemos que va a llegar un día donde va a comenzar a bajar debido a la fluctuación del mercado donde muchas personas comienzan a retirarse del juego al retirar sus ganancias y como ahí muchos BOTs en el mercado al ver las caídas en los volúmenes de las monedas comienzan a guardar su dinero en un mercado mas estable o alguna moneda que por lo general cuando baja el BTC sube.

¿ENTONCES que podemos HACER?

La respuesta a esta interrogante podría ser simplemente debemos y podemos prepararnos. Si no entiendes de que hablo revisa los 2 párrafos de arriba, si revisas cualquier comentario de algún matemático o especialista para bien o para mal, veras palabras como fluctuación, volatilidad, cambio en el volumen del mercado, especulación entre otras.

¿ENTONCES que vamos a HACER?

Prepararnos para la Batalla, Hoy te voy a enseñar con un script sencillo como crear tu propio BOT y cuando lleguemos a la PARTE 5 del paso a paso de esta serie, seras capaz de crear nuevas reglas para los mercados, tener tu propia lista de criptomonedas Favoritas para especular o tradear con ellas entre otras cosas.

Vamos a crear un BOT teniendo en cuenta varias monedas Favoritas, Volumen del Mercado en Bittrex así como en otros EXCHANGES y vamos a intercambiar estos cripto-activos según una serie de leyes que vamos a ir creando.

Pero para correr debemos aprender a caminar, así que por lo pronto vamos a ver como podemos vender Criptomonedas en Bittrex desde su API y vamos a ver algunos ejemplos que ya hice hace algún tiempo para STEEMIT y a partir de lo que vamos a ver a continuación y los ejemplos que pondré podemos mas adelante comenzar a pensar como programadores y hacer magia con los números, y con todo esto ganar dinero.

Para poder Vender Monedas en la API de Bittrex debemos tener instalado el paquete Bittrex o en su defecto tener un archivo como este, ese archivo debemos tenerlo en la misma carpeta que nuestro archivo que vamos a crear mas adelante, tranquilo si no conoces python pero quieres tratar de hacer este Bot conmigo,  si no quieres usar Linux, tranquilo al terminar esta serie haré una publicación especial para que corra en Windows, te invito a instalar el paquete de Bittrex así desde un terminal en Linux:

sudo pip install Bittrex

No dolió, abrimos el terminal copiamos y pegamos, metemos la contraseña de súper usuario y ya se instalo Bittrex ahora podemos usarlo.

Para poder vender monedas en la API de Bittrex necesitaremos nuestras Credenciales, estas las obtenemos en este enlace como muestra la imagen:

Fuente Captura de Pantalla de Firefox, las credenciales que se muestran no funcionan, las borre.

Para agregar nueva Key basta con pulsar el link Add new key que esta a la izquierda. Y saldrá la KEY para luego darle Save abajo a la derecha y meter el código de segundo factor de Google.

Ya teniendo nuestras credenciales bastaría con tener un código como este para vender en Bittrex:

from bittrex import Bittrex
bittrex = Bittrex("AQUI TUS TOKENS", "AQUI TUS TOKENS")
market_search =  BTC-STEEM
quantity = 20
rate = 3.20
sell_money = bittrex.sell_limit( market_search, quantity, rate)

Ya con este Fragmento de código podemos vender 20 STEEM al precio de 3.20 en su mercado por defecto BTC-STEEM... Para hacer el Paso debemos:

  1. Crear un archivo vació con el nombre venta_simple.py.
  2. Copiar las lineas de código de arriba
  3. Tenemos que tener instalado Bittrex o tener un archivo llamado Bittrex.py en la misma carpeta donde vamos a hacer el paso 1.
  4. Colocar las credenciales que obtuvimos mas arriba en Bittrex en la linea:bittrex = Bittrex("AQUI TUS TOKENS", "AQUI TUS TOKENS")
  5. Fíjate en la Linea 5, Ojo no ejecutes este código.

Lo que necesitamos Saber del codigo Python:

  1. Importar Bittrex 
  2. Meter las Credenciales o Tokens Key
  3. Mercado a usar
  4. Cantidad a Vender
  5. Precio de Venta
  6. Y meter todo en la función sell_limit de Bittrex: bittrex.sell_limit( market_search, quantity, rate)

Ahora vamos a ver uno de los ejemplos mas viejos que hice hace ya algún tiempo: 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from bittrex import Bittrex
import urllib2
from bs4 import BeautifulSoup
import re, datetime
from prettytable import PrettyTable
url = "https://bittrex.com/api/v1.1/public/getticker?market=USDT-BTC"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page, "lxml")
valor = soup.find_all('p')
valor = valor[0].get_text()
valor = eval(valor.replace('true','True'))
Bid_valor = valor['result']['Bid']
value_BTC_dolares = float(Bid_valor)
bittrex = Bittrex("AQUI TUS TOKENS", "AQUI TUS TOKENS")
ahora = datetime.datetime.now()
print "Valor del Bitcoin:   ", value_BTC_dolares, "$  , a las", ahora
market_search = raw_input("ESCRIBE EL MERCADO QUE QUIERES REVISA... ej. BTC-STEEM:  ")
get_balances = bittrex.get_balances
list_important = get_balances()[u'result']
def _revisar_precios_monedas(market_search):
    for currency_currency in list_important:
      market_search = str(market_search.strip())
      market_search2 = str("BTC-"+ str(currency_currency['Currency']))
      market_search2 = market_search2.strip()  
      if market_search == market_search2:
        print "ESTE ES", market_search ," = ", "BTC"+ str(currency_currency['Currency'])
        steem_bittrex = bittrex.get_ticker(market_search)
        if steem_bittrex[u'message'] != u'INVALID_MARKET':
            balance =  currency_currency[u'Balance']
            balance = float(balance)
            print steem_bittrex, balance
            value_ASK = float(steem_bittrex[u'result'][u'Ask'])
            value_Bid = float(steem_bittrex[u'result'][u'Bid'])
            value_Last = float(steem_bittrex[u'result'][u'Last'])
            value_ASK_BTC   = value_ASK*balance
            value_ASK_Dolar = value_ASK_BTC * value_BTC_dolares
            value_Bid_BTC   = value_Bid*balance
            value_Bid_Dolar = value_Bid_BTC * value_BTC_dolares
            for veces in range(0,5):
                    quantity = float(balance)
                    balance =  currency_currency[u'Balance']
                    balance =  currency_currency[u'Balance']
                    value_ASK = float(steem_bittrex[u'result'][u'Ask'])
                    value_Bid = float(steem_bittrex[u'result'][u'Bid'])
                    balance = float(balance)
                    value_ASK = float(value_ASK)
                    value_Bid = float(value_Bid)
                    rate = value_Bid
                    print veces, market_search, balance, value_ASK, value_Bid, rate
                    sell_money = bittrex.sell_limit( market_search, quantity, rate)
        else:
            print "EL MERCADO QUE HAS INGRESADO NO EXISTE"
_revisar_precios_monedas(market_search) 

En este ejemplo Básicamente te pide el mercado que quieres vender próximamente  pedirá la moneda o mercado, y luego va y verifica si tienes balance  Positivo para luego buscar la cantidad en la que se esta comprando para  luego colocar la venta con la mejor oferta y la cantidad que se tiene.

Luego lo vamos a desglosar ya que usaremos este tipo para hacer nuestro BOT.

Aquí tienes otro ejemplo muy parecido que lo nombre Botón de Pánico, sirve para vender todas las monedas y cambiarlas a BTC en este caso pero podría ser a cualquier moneda retocándolo un poquito:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from bittrex import Bittrex
import urllib2
from bs4 import BeautifulSoup
import re, datetime
from prettytable import PrettyTable
url = "https://bittrex.com/api/v1.1/public/getticker?market=USDT-BTC"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page, "lxml")
valor = soup.find_all('p')
valor = valor[0].get_text()
valor = eval(valor.replace('true','True'))
Bid_valor = valor['result']['Bid']
value_BTC_dolares = float(Bid_valor)
bittrex = Bittrex("AQUI TUS TOKENS", "AQUI TUS TOKENS")
ahora = datetime.datetime.now()
print "Valor del Bitcoin:   ", value_BTC_dolares, "$  , a las", ahora
get_balances = bittrex.get_balances
list_important = get_balances()[u'result']
list_balance = []
total_dolares_ask = []
total_dolares_bid = []
total_BTC_ask = []
total_BTC_bid = []
table_ask = PrettyTable([u'Moneda', u'Selling in BTC', u'Selling in USD', "Queantity"])
list_currency = []
for currency_currency in list_important:
    balance =  currency_currency[u'Balance']
    currency =  currency_currency[u'Currency']
    list_currency.append(currency)
    balance = float(balance)
    if balance>0.00000:
        market_search = "BTC-"+currency
        steem_bittrex = bittrex.get_ticker(market_search)
        if steem_bittrex[u'message'] != u'INVALID_MARKET':
            value_ASK = float(steem_bittrex[u'result'][u'Ask'])
            value_Bid = float(steem_bittrex[u'result'][u'Bid'])
            value_Last = float(steem_bittrex[u'result'][u'Last'])
            value_ASK_BTC   = value_ASK*balance
            value_ASK_Dolar = value_ASK_BTC * value_BTC_dolares
            value_Bid_BTC   = value_Bid*balance
            value_Bid_Dolar = value_Bid_BTC * value_BTC_dolares
            for veces in range(0,5):
                    quantity = float(balance)
                    balance =  currency_currency[u'Balance']
                    value_ASK = float(steem_bittrex[u'result'][u'Ask'])
                    value_Bid = float(steem_bittrex[u'result'][u'Bid'])
                    balance = float(balance)
                    value_ASK = float(value_ASK)
                    value_Bid = float(value_Bid)
                    rate = value_Bid
                    print veces, market_search, balance, value_ASK, value_Bid, rate
                    sell_money = bittrex.sell_limit( market_search, quantity, rate)

Este código para mi es muy importante tenerlo a mano en especial cuando los mercados se ponen en mantenimiento desde la API podemos vender tranquilamente.

Ya tenemos un poco mas de conocimientos estos ejemplos son de mi autoría, pueden ampliar los conocimientos de estos aquí:

https://steemit.com/spanish/@sethroot/bot-trading-con-python-comprar-y-vender-monedas-especificas-en-bittrex

https://steemit.com/spanish/@sethroot/trading-automatico-boton-de-panico-vende-todas-las-monedas-en-bittrex-en-un-solo-click-proyecto-ada-crypbot


Mas adelante vamos a hablar de como comprar, y de algunos términos importantes que nos conviene tener en cuenta, como bid o ask entre otros.

Espero estén disfrutando del conocimiento que espero estar llevando a sus oficinas, Dios Bendiga a Venezuela hasta la próxima :D


Sort:  

Hola amigo @sethroot saludos, que tengas un feliz día…

Gracias amiga :D

Bro la verdad es para leerlo con detenimiento, cosa que posteriormente hare, pero A grosso modo que talento y don tienes. Dios te siga bendiciendo con ese don. Saludos. Reestem obligado.

Si hermano creo que Dios me ha bendecido con este talento de análisis para programar, recuerda que los dones no se pueden mejorar solo ejercitar.... Dios te Bendiga Gracias por el comentario... A Dios sea la Gloria

Que tal amigo un gusto poderte primero encontrar en este mar de bites, segundo un placer leerte y más en este tema. Te saludo desde México, desde hace meses deje truncado un mini proyecto de un bot con python, por falta de tiempo para investigación y entendimiento de este nuevo lenguaje ya que nunca habia programado en él, ademas que me perdí un poco en la definicion y visión de mis objetivos, cada que avnazaba lentamente, las metas que tenia definidas se me hacian demasiado lejanas y complejas y ahora veo que talvez pueda ser mas modular de lo que pensaba, me gustaria saber mas al respecto y ahondar mas en algunos aspectos, no se si este a usando demasiado al pedirte mas orientacion y apoyo para lograr entender aunque sea en forma general todo el prototipo completo de un bot para criptos. Espero me puedas proporcionar algun medio para cotactarte mas directo para algunas dudas o ideas que se me presenten. De antemano te agradezco y me despido deseandote lo mejor siempre, saludos.

Me puedes escribir siempre que quieras a [email protected]
Estoy remasterizando algunos Post viejos par darle un sentido mas practico al BOT y que puedan seguirlo y usarlo... Gracias por leerme y por comentar... Dios te Bendiga

Nice post. Good info

Muchas Gracias Amigo

Wow dear so effective content..thanks for sharing..keep it up dear..

De verdad muy agradecido por tus palabras, Saludos

Upvote this comment dear please

Amigo, aunque para mí se trata de tema y material muy profundo (es como que si me hablaran en Mandarín), se percibe que el post está bien elaborado, y que su contenido (basándome en la hilación de las ideas), es de gran utilidad dentro del contexto de las criptofinanzas, que abarca la interacción con los bot´s.

Aunado a lo anterior, fue un placer leer el post, porque aunque como ya lo expresé -no entendí ni papa- se y estoy seguro que entre mi materia gris y neuronas quedó la semilla referida a la temática.

Saludos y éxitos...

Jajaja amigo, un placer que te haya gustado hermano aunque no lo entiendas... puedes igual ir haciendo el ejemplo mas sencillo que es el que hemos abordado por ahora y bueno cualquier cosa que necesites ampliar para entender me dices y la ampliamos :D
Saludos muchas gracias por dejar tu gran comentario :D

¡Que bueno, amigo! Lo tendré presente dentro de las oportunidades que me ofrece Steemit y usuarios de tu calidad humana, y con tus amplios conocimientos. ¡Enhorabuena!

Es una buena idea que nos permitirá automatizar nuestras operaciones en este famoso exchange.

Precisamente, la idea es llegar a un BOT que podamos entender y mejorar nosotros mismos y podamos ganar dinero con esto... Gracias por comentar :D

Que brutal amigo. Me diste ganas de seguir aprendiendo para algún día lograr algo así. Saludos desde Sucre!

Siempre es bueno aprender, y muchas gracias me alegra que te haya gustado....

Loading...

Coin Marketplace

STEEM 0.27
TRX 0.25
JST 0.039
BTC 96923.38
ETH 3370.74
USDT 1.00
SBD 3.55