Hoy vamos a hacer algo bastante sencillo que nos acercara un poco al Trading Automático, el proceso de comparación de los diferentes mercados!!!
Podemos tomar decisiones en si una moneda va a subir o bajar según ciertos factores, pero el Factor de Comparación de los diferentes mercados debería ser fundamental, claro como no queremos estar todo el día en el computador viendo si sube o baja y salir corriendo a vender es estresante vamos a seguir con mi Sistema de Trading Automático, pero esta Ves solo vamos a comparar los precios de @bittrex @poloniex y @cointmarketcap...
Para esta entrada solo vamos a ver los precios del STEEM y vamos a construir una tabla con los datos que vamos obteniendo, no quiero abrumarlos y por eso solo vamos a obtener 1 linea en la tabla que serán los precios del momento:
Para extraer el Valor del STEEM en Bittrex voy a usar este link:
https://bittrex.com/api/v1.1/public/getticker?market=BTC-STEEM
Para extraer el Valor del STEEM en Poloniex voy a usar este link:
https://poloniex.com/public?command=returnOrderBook¤cyPair=BTC_STEEM&depth=1
Para extraer el Valor del STEEM en Coinmarketcap voy a usar este link:
https://coinmarketcap-nexuist.rhcloud.com/api/steem/price
Aunque para Bittrex podríamos usar este link:
https://bittrex.com/api/v1.1/public/getmarkethistory?market=BTC-STEEM
Lo que en realidad me interesa es el precio de de los Bids mas que el de los Ask, explico un poco:
El precio Bids es lo que están ofertando las personas que quieren comprar la moneda o acción.
El precio Ask es el precio en el que otras personas están Vendiendo.
Generalmente los ASKs serán mas Altos que los Bids, por eso en otras entradas colocaba lo que tenemos invertido que viene dado por el ASK y lo que tenemos en la Realidad el Precio Bids pero esto tampoco es tan así, incluso si quisiéramos especular un poco podríamos tomar un valor intermedio y ver si vendemos. Pero eso escapa a lo que quiero hacer en este POST.
Por ejemplo noten a Poloniex:
asks
"0.00065373"
172.62933522
bids
"0.00065000"
19.95676913
En este ejemplo tenemos el Precio del STEEM en BTC que es donde ahora mismo nos interesa... Ya luego vemos otras cosas que se me han ocurrido pero no quiero abrumarlos...
Tenemos un precio de 0.00065373
por cada STEEM
pero solo nos van a vender 172.62933522. Y tambien 0.00065000
por cada STEEM
pero solo nos van a comprar 19.95676913.
Por eso los Bids son lo que ahora nos interesa aunque mas adelante veremos como los precios de ASK son los que también mueven el mercado.
Ahora que ya sabemos cuales son los datos que nos interesa, solo los precios de Bids procedemos a sacarlos, Recordemos que Coinmarketcap no tiene Bids ni Ask solo Price...
El programa se va a conectar a cada Link y sacara los datos de los precios Bids y nos permitirá saber en donde esta mas caro el STEEM cual es la Diferencia en % y esto nos dará una idea si debemos vender o comprar en el futuro o incluso nos permitirá cambiar estas monedas entre Plataformas para obtener mejores Ganancias Claro Teniendo en Cuenta las comisiones que esto implica, pero esto lo veremos mas adelante.
Aquí les dejo parte del Script:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from bittrex import Bittrex
import urllib2
from bs4 import BeautifulSoup
import re
from prettytable import PrettyTable
lista_bitrex = []
lista_bitrex_poloniex = []
lista_bitrex_coinmarket = []
lista_poloniex = []
lista_poloniex_bitrex = []
lista_poloniex_coinmarket = []
lista_coinmarket = []
dictionary_data = {}
#VALUE BTC bittrex
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']
Bid_valor_bitt = float(Bid_valor)
dictionary_data['price_BTC_bittrex'] = Bid_valor_bitt
#VALUE STEEM bittrex
url = "https://bittrex.com/api/v1.1/public/getticker?market=BTC-STEEM"
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']
Bid_valor_bitt = float(Bid_valor)
dictionary_data['price_steem_bittrex'] = Bid_valor_bitt
dictionary_data['price_steem_bittrex_usd'] = Bid_valor_bitt * dictionary_data['price_BTC_bittrex']
#VALUE BTC poloniex
url = "https://poloniex.com/public?command=returnOrderBook¤cyPair=USDT_BTC&depth=1"
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['bids']
Bid_valor_polo = float(Bid_valor[0][0])
dictionary_data['price_BTC_poloniex'] = Bid_valor_polo
#VALUE STEEM poloniex
url = "https://poloniex.com/public?command=returnOrderBook¤cyPair=BTC_STEEM&depth=1"
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['bids']
Bid_valor_polo = float(Bid_valor[0][0])
dictionary_data['price_steem_poloniex'] = Bid_valor_polo
dictionary_data['price_steem_poloniex_usd'] = Bid_valor_polo * dictionary_data['price_BTC_poloniex']
#VALUE STEEM coinmarketcap
url = "https://coinmarketcap-nexuist.rhcloud.com/api/btc/price"
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['usd']
Bid_valor_coin = float(Bid_valor)
dictionary_data['price_BTC_coinmarket'] = Bid_valor_coin
#VALUE STEEM coinmarketcap
url = "https://coinmarketcap-nexuist.rhcloud.com/api/steem/price"
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['btc']
Bid_valor_coin = float(Bid_valor)
dictionary_data['price_steem_coinmarket'] = Bid_valor_coin
dictionary_data['price_steem_coinmarket_usd'] = Bid_valor_coin * dictionary_data['price_BTC_coinmarket']
print ""
print ""
print ""
print "STEEM"
table_bid = PrettyTable([u'Bitrex Price', u'Poloniex Price', u'Coinmarket Price'])
table_bid.add_row([
dictionary_data['price_steem_bittrex_usd'],
dictionary_data['price_steem_poloniex_usd'],
dictionary_data['price_steem_coinmarket_usd']
])
print table_bid
print ""
print ""
print ""
print "BTC"
table_bid_btc = PrettyTable([u'Bitrex Price', u'Poloniex Price', u'Coinmarket Price'])
table_bid_btc.add_row([
dictionary_data['price_BTC_bittrex'],
dictionary_data['price_BTC_poloniex'],
dictionary_data['price_BTC_coinmarket']
])
print table_bid_btc
Y esta es la Salida:
STEEM
+--------------+----------------+------------------+
| Bitrex Price | Poloniex Price | Coinmarket Price |
+--------------+----------------+------------------+
| 1.5946106 | 1.59992280003 | 1.62030700986 |
+--------------+----------------+------------------+
BTC
+--------------+----------------+------------------+
| Bitrex Price | Poloniex Price | Coinmarket Price |
+--------------+----------------+------------------+
| 2515.0 | 2520.00000004 | 2542.34 |
+--------------+----------------+------------------+
Ya muchos entenderán que esto es un trabajo un poco complicado pero que dará sus frutos con el Favor y la Bendición de Dios... Hasta la próxima :D
Muy buen artículo.
Una sugerencia es que estamos mirando dos exchange de gran liquidez, y por tanto mayor eficiencia en los precios (siempre similares).
Si lo que buscamos es encontrar oportunidades de arbitraje sería conveniente incluir algunos otros exchange de renombre pero menor liquidez, tales como cryptopia, novaexchange, poswallet, entre otros.
Un saludo
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Gracias amigo precisamente eso es lo que quiero que me ayuden con algunas cosas que no conozco como esos mercados, y arbitraje pues ese seria uno de los fines del Bot pero mas que anda poder gestionar nuestra cuenta con Reglas claras como si estuviéramos detrás del computador...
Gracias por el Apoyo :D
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
No soy programador, pero si necesitas cualquier tipo de ayuda con triangulaciones, combinaciones y exchanges no dudes en ponerte en contacto conmigo e intentaré ayudar.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Tiangulaciones y Combinaciones como seria eso :S
Disculpa mi ignorancia
Y bueno estoy mejorando el Sistema para que le metan el mercado o el nombre de la moneda y veamos la comparacion... ademas agregare 1 base de datos en txt, me dices que te aprece o si ves algo que le pueda agregar¡???
Mi intención es seguir 1 moneda por ahora y hacer trading automático cada 2 o 3 minutos según muchos parametros :S
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
La contrapartida de hacer trading en los intercambios con muy poca liquidez es que aunque des de alta una orden "oportuna"nadie te la comprará/venderá. Suerte con el proyecto @sethroot! Muchos estamos pendientes de tu BOT 😊❤
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Como siempre amigo, muy buen post! Gracias por compartir esta informacion! Saludos
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Muchas Gracias amigo, pronto todo esto sera WEB para que otros puedan usarlo fácilmente :D
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Excelente post, felicidades, ya te sigo.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Gracias amigo, Espero tus impresiones sobre los proyectos que hago :D
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Gracias por la info
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
De nada hermano
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Interesante, gracias por regalarnos esta herramienta.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Solo es una parte de la Herramienta, espero poder hacer algo funcional pronto, que nos ayude a tradear :D
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Excelente post, Gracias por compartir esta información! felicidades, te sigo y voto. @sethroot
saludos
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Muchas gracias amigo, Espero me ayuden a mejorar al máximo este sistemita :D
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Muy interesante. Otro detalle a tener en cuenta el la disponibilidad de las carteras, cuando hay discrepancia de precio suele ocurrir que alguna de ellas esta en mantenimiento.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
mmmm puede ser, incluso podríamos ver cuando se ponen en Mantenimiento las de Litecoin Eth o algunas grandes y sabríamos que van a bajar así sea poco, pero ahora mismo eso si es difícil saberlo :S
Gracias lo tendré presente :D
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit