Bueno hoy les traigo otro adelanto del programa que estoy haciendo realmente he mejorado mucho los algoritmos de búsqueda y he maximizado el uso de las estructuras python para hacer la base de datos con diccionarios aunque quizás aun podamos mejorarlo :D
El Script busca el balance de nuestro Bittrex pasa los datos a Dolares y Bitcoins, nos permite crear un diccionario en un archivo TXT que sera llenado con una estructura que se asemeja a una base de datos lo que nos permitirá llevar un histórico de las monedas en las que tenemos alguna inversión, ya eso lo tenemos, mas adelante agregare el comparador para saber cuanto a cambiado y una gráfica histórica y también un proyector para saber que pasaría si 1 moneda sube y la otra no y si suben las al máximo o bajan al mínimo cuanto perderíamos, pero ahora mismo tenemos solo la base de datos que se vería así:
{u'RDD': [{'PrevDay': 1.39e-06, 'Last': 1.45e-06, 'High': 1.55e-06, 'TimeStamp': '2018-01-13T16:45:54.26', 'MarketName': 'BTC-RDD', 'Low': 1.38e-06, 'OpenSellOrders': 15192.0, 'Bid': 1.44e-06, 'fecha_hora': datetime.datetime(2018, 1, 13, 12, 46, 8, 184547), 'Volume': 623835937.9547048, 'Ask': 1.45e-06, 'balance': 0.01257995, 'BaseVolume': 908.81037032}, {'PrevDay': 1.4e-06, 'Last': 1.45e-06, 'High': 1.55e-06, 'TimeStamp': '2018-01-13T16:47:26.61', 'MarketName': 'BTC-RDD', 'Low': 1.38e-06, 'OpenSellOrders': 15194.0, 'Bid': 1.44e-06, 'fecha_hora': datetime.datetime(2018, 1, 13, 12, 47, 36, 447420), 'Volume': 623679670.0259168, 'Ask': 1.45e-06, 'balance': 0.01257995, 'BaseVolume': 908.60422696}], u'XRP': [{'PrevDay': 0.00014649, 'Last': 0.00013797, 'TimeStamp': '2018-01-13T16:45:53.26', 'MarketName': 'BTC-XRP', 'Low': 0.000135, 'OpenSellOrders': 27783.0, 'Volume': 50420273.58727699, 'Bid': 0.0001376, 'fecha_hora': datetime.datetime(2018, 1, 13, 12, 46, 8, 186051), 'High': 0.0001489, 'Ask': 0.00013797, 'balance': 0.01257995, 'BaseVolume': 7274.0315488}, {'PrevDay': 0.0001464, 'Last': 0.0001374, 'OpenSellOrders': 27781.0, 'TimeStamp': '2018-01-13T16:47:26.253', 'MarketName': 'BTC-XRP', 'Low': 0.000135, 'High': 0.0001489, 'Bid': 0.0001374, 'fecha_hora': datetime.datetime(2018, 1, 13, 12, 47, 36, 449150), 'Volume': 50433322.13804882, 'Ask': 0.0001375, 'balance': 0.01257995, 'BaseVolume': 7275.70249334}]}
Aun me Falta el BTC pero el lunes lo agregamos
Necesitas 3 archivos, tener los 3 archivos en el mismo directorio o carpeta.
Necesitas correr el script que muestro a continuación desde un sistema Linux mas adelante lo adecuare a Windows aunque debería funcionar.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from bittrex import Bittrex
import urllib2
from bs4 import BeautifulSoup
import re, datetime
from prettytable import PrettyTable
bittrex = Bittrex("Aqui tus tokens", "Aqui tus 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(',','.'))
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 = []
fichero = open("fichero.txt")
dato = fichero.readline()
dato = dato.strip()
fichero.close()
get_market_summaries = bittrex.get_market_summaries
market_result = get_market_summaries()[u'result']
for currency_currency in list_important:
balance = currency_currency[u'Balance']
currency = currency_currency[u'Currency']
list_currency.append(currency)
balance = float(balance)
market_search = "BTC-"+currency
#steem_bittrex = bittrex.get_ticker(market_search)
if balance>0.00000:
if market_search == "BTC-BTC":
print market_search, "ES BITCOIN "
print " "
print " "
value_ASK_Dolar = balance * value_BTC_dolares
value_Bid_Dolar = balance * value_BTC_dolares
print "Tienes: ", balance , " en " , currency," en dolares serian: ", value_ASK_Dolar
valor_balance = float(balance)
else:
for market_sum in market_result:
market_name = str(market_sum['MarketName'])
if market_search == market_name:
print market_search, market_name
market_search = "BTC-"+currency
Created = str(market_sum['Created'])
PrevDay = float(market_sum['PrevDay'])
Volume = float(market_sum['Volume'])
BaseVolume = float(market_sum['BaseVolume'])
OpenSellOrders = float(market_sum['OpenSellOrders'])
OpenBuyOrders = float(market_sum['OpenBuyOrders'])
TimeStamp = str(market_sum['TimeStamp'])
Last = float(market_sum['Last'])
Bid = float(market_sum['Bid'])
Ask = float(market_sum['Ask'])
High = float(market_sum['High'])
Low = float(market_sum['Low'])
MarketName = str(market_sum['MarketName'])
value_Bid = Bid
value_Last = Last
value_ASK = Ask
value_Last_BTC = value_Last*balance
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
print currency, value_ASK_BTC, value_ASK_Dolar, balance
print "Tienes: ", balance , " en " , currency," en dolares serian: " ,value_ASK_BTC, " value_ASK_BTC"
print "Tienes: ", balance , " en " , currency," en dolares serian: " ,value_ASK_Dolar, " value_ASK_Dolar"
print "Tienes: ", balance , " en " , currency," en dolares serian: ", value_Bid_BTC, " value_Bid_BTC"
print "Tienes: ", balance , " en " , currency," en dolares serian: " ,value_Bid_Dolar, " value_Bid_Dolar"
if dato == "":
fecha_ahora = datetime.datetime.now()
corrency_dato = {
'balance': valor_balance,
'fecha_hora': fecha_ahora,
'Bid': Bid,
'Last': Last,
'Ask': Ask,
'PrevDay': PrevDay,
'Volume': Volume,
'BaseVolume': BaseVolume,
'OpenSellOrders': OpenSellOrders,
'TimeStamp': TimeStamp,
'High': High,
'Low': Low,
'MarketName': MarketName
}
dato = {currency: [corrency_dato]}
elif currency not in dato:
fecha_ahora = datetime.datetime.now()
corrency_dato = {
'balance': valor_balance,
'fecha_hora': fecha_ahora,
'Bid': Bid,
'Last': Last,
'Ask': Ask,
'PrevDay': PrevDay,
'Volume': Volume,
'BaseVolume': BaseVolume,
'OpenSellOrders': OpenSellOrders,
'TimeStamp': TimeStamp,
'High': High,
'Low': Low,
'MarketName': MarketName
}
dato_2 = { currency: [corrency_dato] }
dato = eval(dato)
dato.update(dato_2)
else:
dato = eval(dato)
if currency in dato:
diccionario_nuevo_currency = {}
fecha_ahora = datetime.datetime.now()
corrency_dato = {
'balance': valor_balance,
'fecha_hora': fecha_ahora,
'Bid': Bid,
'Last': Last,
'Ask': Ask,
'PrevDay': PrevDay,
'Volume': Volume,
'BaseVolume': BaseVolume,
'OpenSellOrders': OpenSellOrders,
'TimeStamp': TimeStamp,
'High': High,
'Low': Low,
'MarketName': MarketName
}
diccionario_nuevo_currency = corrency_dato
lista_dict_currency = dato[currency]
lista_dict_currency.append(diccionario_nuevo_currency)
text_archivo = open("fichero.txt" ,"w")
text_archivo.write(str(dato))
text_archivo.close()
fichero = open("fichero.txt")
dato = fichero.readline()
dato = dato.strip()
fichero.close()
print datetime.datetime.now()
La salida del script aparte del archivo TXT que funcionara como Base de datos es esta:
Valor del Bitcoin: 14344.65 $ , a las 2018-01-13 12:47:34.892975
BTC-BTC ES BITCOIN
Tienes: 0.01257995 en BTC en dolares serian: 180.454979767
BTC-RDD BTC-RDD
RDD 4.35e-14 6.23992275e-10 3e-08
Tienes: 3e-08 en RDD en dolares serian: 4.35e-14 value_ASK_BTC
Tienes: 3e-08 en RDD en dolares serian: 6.23992275e-10 value_ASK_Dolar
Tienes: 3e-08 en RDD en dolares serian: 4.32e-14 value_Bid_BTC
Tienes: 3e-08 en RDD en dolares serian: 6.1968888e-10 value_Bid_Dolar
BTC-XRP BTC-XRP
XRP 0.00908893780437 130.377631676 66.10136585
Tienes: 66.10136585 en XRP en dolares serian: 0.00908893780437 value_ASK_BTC
Tienes: 66.10136585 en XRP en dolares serian: 130.377631676 value_ASK_Dolar
Tienes: 66.10136585 en XRP en dolares serian: 0.00908232766779 value_Bid_BTC
Tienes: 66.10136585 en XRP en dolares serian: 130.28281158 value_Bid_Dolar
Mas adelante veremos los datos en HTML no se desesperen y les haré un .ZIP para que no se pierdan de nada, Dios les bendiga espero lo prueben y me cuentan.