Sistema Experto, Bittrex
Un sistema experto es un robot capaz de comprar y vender en una bolsa de Valores según algunas condiciones que le pasemos de antemano, por eso es que para poder tener un sistema experto debemos saber en cuanto compramos y en cuanto podemos vender ahora mismo el Sistema que estoy haciendo es capaz de saber cuanto tenemos y colocarlo en una tabla y abajo les dejo la parte donde nos dice en cuanto compramos ya de ahora en adelante solo queda comparar e introducir algunas variables y condiciones, claro y agrupar los 2 sistemas aquí les dejo el código ya luego se los explico:
Solo funciona para @bittrex #bittrex pronto para @poloniex #poloniex
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from bittrex import Bittrex
import urllib2
from bs4 import BeautifulSoup
import re
from prettytable import PrettyTable
bittrex = Bittrex("TU KEYS", "TU TOKENS")
url = "http://www.eleconomista.es/cruce/BTCUSD"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page, "lxml")
valor_btc = soup.find_all('span',class_="accion1 Dif_23138 estado_23138" )
value_BTC_dolares = valor_btc[0].get_text()
value_BTC_dolares = float(value_BTC_dolares.replace(',','.'))
print "Valor del Bitcoin: ", value_BTC_dolares, "$"
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
table_ask.add_row([currency,
value_ASK_BTC,
value_ASK_Dolar,
balance
])
total_dolares_ask.append(value_Bid_Dolar)
total_dolares_bid.append(value_ASK_Dolar)
total_BTC_ask.append(value_Bid_BTC)
total_BTC_bid.append(value_ASK_BTC)
print "Total Dolars Investment: ", sum(total_dolares_bid)
print "Total Dolars, if sell now: ", sum(total_dolares_ask)
print "Total Bitcoins Investment: ", sum(total_BTC_bid)
print "Total Bitcoins, if sell now: ", sum(total_BTC_ask)
print table_ask
Y aqui el otro script que nos dice las ordenes de compras que hemos hecho:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from bittrex import Bittrex
import urllib2
from bs4 import BeautifulSoup
import re
from prettytable import PrettyTable
bittrex = Bittrex("Tu KEY", "Tu Token")
url = "http://www.eleconomista.es/cruce/BTCUSD"
page = urllib2.urlopen(url)
soup = BeautifulSoup(page, "lxml")
valor_btc = soup.find_all('span',class_="accion1 Dif_23138 estado_23138" )
value_BTC_dolares = valor_btc[0].get_text()
value_BTC_dolares = float(value_BTC_dolares.replace(',','.'))
print "Valor del Bitcoin: ", value_BTC_dolares, "$"
get_balances = bittrex.get_balances
get_order = bittrex.get_order_history
list_important = get_balances()[u"result"]
list_important_b = get_order('BTC-LTC')[u"result"]
list_balance = []
total_dolares_ask = []
total_dolares_bid = []
total_BTC_ask = []
total_BTC_bid = []
lista_diccionarios_monedas = []
for currency_currency in list_important:
balance = currency_currency[u'Balance']
currency = currency_currency[u'Currency']
balance = float(balance)
if balance>0.00000:
market_search = "BTC-"+currency
list_important_b = get_order(market_search)[u"result"]
if list_important_b != None:
for orden in list_important_b:
diccionarios_monedas = {}
fecha = orden["TimeStamp"]
fecha = fecha[0:10]
total_precio = orden["Price"]
total_precio = float(total_precio)
comision = orden["Commission"]
comision = float(comision)
precio_por_unidad = orden["PricePerUnit"]
precio_por_unidad = float(precio_por_unidad)
cantidad = orden["Quantity"]
cantidad = float(cantidad)
diccionarios_monedas = {'currency':currency,
'total_precio':total_precio,
'fecha':fecha,
'comision':comision,
'precio_por_unidad':precio_por_unidad,
'cantidad':cantidad }
lista_diccionarios_monedas.append(diccionarios_monedas)
lista_totales = []
lista_monedas = []
diccionario_moneda = {}
orders = PrettyTable([u'Moneda', u'Fecha', u'precio por unidad', u'Cantidad',u'Precio Total'])
total_btc = 0
diccionario_currency = {}
for currency_currency in Lista_monedas:
currency =currency_currency["currency"]
total_precio = float(currency_currency["total_precio"])
cantidad = currency_currency["cantidad"]
precio_por_unidad = currency_currency["precio_por_unidad"]
Fecha = currency_currency["fecha"]
total_btc += total_precio
orders.add_row([currency,
Fecha,
precio_por_unidad,
cantidad,
total_precio
])
orders= orders.get_string(sortby=("Fecha"), reversesort=False)
print orders
print total_btc
print diccionario_moneda
Estos 2 sistemas respectivamente arrojan como salida esto:
El Balance es este:
Total Dolars Investment: 713.596823011
Total Dolars, if sell now: 705.652385761
Total Bitcoins Investment: 0.315647453051
Total Bitcoins, if sell now: 0.31213336596
+--------+------------------+----------------+---------------+
| Moneda | Selling in BTC | Selling in USD | Queantity |
+--------+------------------+----------------+---------------+
| ANS | 0.00737446868311 | 16.6717563306 | 11.45495151 |
| BAT | 0.0115850006287 | 26.1906743214 | 160.90278651 |
| BTCD | 0.02798608 | 63.2692504992 | 1.0 |
| DASH | 0.006529884 | 14.7623699542 | 0.1 |
| DGB | 0.01172504546 | 26.5072792732 | 1000.4305 |
| DOGE | 0.0297982039634 | 67.3659916283 | 25911.4817073 |
| ENRG | 0.0080833618933 | 18.2743795667 | 309.47021031 |
| ETH | 0.016885202469 | 38.1730526298 | 0.12388263 |
| FTC | 0.0086848 | 19.634074752 | 320.0 |
| GBG | 0.0011526 | 2.605728924 | 20.0 |
| GNT | 0.0224311982903 | 50.7111072227 | 112.2120975 |
| GOLOS | 0.003392 | 7.66843008 | 80.0 |
| IOC | 0.00427110005374 | 9.65584673549 | 6.48216733 |
| LBC | 0.0287396373695 | 64.9728477867 | 106.83880063 |
| LTC | 0.029588082714 | 66.8909621148 | 2.40553518 |
| NXT | 0.019734 | 44.61344316 | 300.0 |
| RDD | 0.0174 | 39.336876 | 20000.0 |
| SNGLS | 0.0254043201106 | 57.4325626469 | 300.85646744 |
| STRAT | 0.00979376363439 | 22.1411531988 | 3.0605607 |
| SYS | 0.010935 | 24.7211919 | 150.0 |
| XEM | 0.00587475 | 13.281282315 | 75.0 |
| XZC | 0.0082789537812 | 18.7165619713 | 1.67326635 |
+--------+------------------+----------------+---------------+
Las Ordenes de compra son estas:
+--------+------------+-------------------+---------------+--------------+
| Moneda | Fecha | precio por unidad | Cantidad | Precio Total |
+--------+------------+-------------------+---------------+--------------+
| LTC | 2017-05-17 | 0.01427952 | 1.40553518 | 0.02007038 |
| DGB | 2017-05-22 | 5.87e-06 | 1000.4305 | 0.00588253 |
| SNGLS | 2017-05-22 | 7.828e-05 | 33.14582035 | 0.0013811 |
| SNGLS | 2017-05-22 | 8.147e-05 | 14.89822809 | 0.0012139 |
| SYS | 2017-05-22 | 4.035e-05 | 150.0 | 0.0060525 |
| ETH | 2017-05-25 | 0.0793027 | 0.1 | 0.00793027 |
| GNT | 2017-05-25 | 0.00017775 | 15.34240844 | 0.00216603 |
| GNT | 2017-05-25 | 0.00017777 | 19.15522064 | 0.00340541 |
| GOLOS | 2017-05-25 | 3.073e-05 | 80.0 | 0.0024584 |
| ETH | 2017-06-01 | 0.09155 | 0.06 | 0.005493 |
| STRAT | 2017-06-02 | 0.00249999 | 2.1918267 | 0.00547956 |
| GNT | 2017-06-05 | 0.00018519 | 80.87172003 | 0.01497743 |
| BAT | 2017-06-06 | 9.798e-05 | 160.90278651 | 0.01576686 |
| ETH | 2017-06-08 | 0.09325818 | 0.16 | 0.01492131 |
| LBC | 2017-06-08 | 0.00019484 | 3.52985944 | 0.00068779 |
| LBC | 2017-06-08 | 0.00019484 | 92.80984046 | 0.01808399 |
| RDD | 2017-06-08 | 1.04e-06 | 10000.0 | 0.0104 |
| SNGLS | 2017-06-08 | 7.924e-05 | 118.3173653 | 0.00937665 |
| SNGLS | 2017-06-08 | 7.925e-05 | 150.0 | 0.0118875 |
| BTCD | 2017-06-09 | 0.02446544 | 1.0 | 0.02446544 |
| DOGE | 2017-06-09 | 1.22e-06 | 25911.4817073 | 0.03187112 |
| ETH | 2017-06-09 | 0.09799113 | 0.12388263 | 0.0121394 |
| IOC | 2017-06-09 | 0.00054001 | 18.51783267 | 0.00999999 |
| LBC | 2017-06-09 | 0.00018685 | 3.6603001 | 0.00068396 |
| LBC | 2017-06-09 | 0.00018709 | 123.65747862 | 0.00162029 |
| LBC | 2017-06-09 | 0.00018988 | 113.24830294 | 0.0215043 |
| LBC | 2017-06-09 | 0.00023909 | 15.06979241 | 0.00360309 |
| LTC | 2017-06-09 | 0.01059171 | 1.0 | 0.01059171 |
| STRAT | 2017-06-12 | 0.00279946 | 0.868734 | 0.00243199 |
| ANS | 2017-06-13 | 0.00062119 | 11.45495151 | 0.00711581 |
+--------+------------+-------------------+---------------+--------------+
0.28366171
Dios les Bendiga si no entienden algo pueden comentar :D
Como molaaa!!!! Muchas gracias por el pedazo de aporte.
Aun no esta terminado, la idea es hacer una base de datos en Python y un TXT para no instalar nada, y con tu cuenta de Bittrex agregues tus tokens y tengas condicionales mas maleables que lso que tienes en la cuenta Bittrex, seria como tener cuenta premium sin pagarla :D
Que cañaaaaa, muchísimas gracias por el grandísimo aporte.
apenas empieza ya espero poder hacer muchas cosas interesantes con este sistema y por supuesto ganar dinero con un bot jejeje
saludos
Claro que si, en unos días todos forrados jajaja.
Jajaja este pequeño mundo de las Crypto monedas es interesante y si lo haces medio bien te quedas con algunas ganancias pero ya todo como que va a mas dificil llegan los tiburones jajaja.
Asi que tampoco exageremos jeje
Buen trabajo sethroot. Gracias por compartir!
Aun tengo que terminarlo pero ahi vamos!!!
Saludos
Interesante concepto. ¿El tipo de cambio del economista es agregado o cómo determinas la fuente del precio para el par BTCUSD?
Lo saque de una pagina, tambien lo estoy sacando de CoinMarketCap y Bittrex, alguna ves lo hice desde Blockchain pero el del economista es el mas bajo :D
Saludos