<html>
<p>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:</p>
<p><br></p>
<p>Solo funciona para @bittrex #bittrex pronto para @poloniex #poloniex</p>
<p><code>#!/usr/bin/env python</code></p>
<p><code># -*- coding: utf-8 -*-</code></p>
<p><code>from bittrex import Bittrex</code></p>
<p><code>import urllib2</code></p>
<p><code>from bs4 import BeautifulSoup</code></p>
<p><code>import re</code></p>
<p><code>from prettytable import PrettyTable</code></p>
<p><code>bittrex = Bittrex("TU KEYS", "TU TOKENS")</code></p>
<p><code>url = "http://www.eleconomista.es/cruce/BTCUSD"</code></p>
<p><code>page = urllib2.urlopen(url)</code></p>
<p><code>soup = BeautifulSoup(page, "lxml")</code></p>
<p><code>valor_btc = soup.find_all('span',class_="accion1 Dif_23138 estado_23138" )</code></p>
<p><code>value_BTC_dolares = valor_btc[0].get_text()</code></p>
<p><code>value_BTC_dolares = float(value_BTC_dolares.replace(',','.'))</code></p>
<p><code>print "Valor del Bitcoin: ", value_BTC_dolares, "$"</code></p>
<p><code>get_balances = bittrex.get_balances</code></p>
<p><code>list_important = get_balances()[u'result']</code></p>
<p><code>list_balance = []</code></p>
<p><code>total_dolares_ask = []</code></p>
<p><code>total_dolares_bid = []</code></p>
<p><code>total_BTC_ask = []</code></p>
<p><code>total_BTC_bid = []</code></p>
<p><code>table_ask = PrettyTable([u'Moneda', u'Selling in BTC', u'Selling in USD', "Queantity"])</code></p>
<p><code>list_currency = []</code></p>
<p><code>for currency_currency in list_important:</code></p>
<p><code> balance = currency_currency[u'Balance']</code></p>
<p><code> currency = currency_currency[u'Currency']</code></p>
<p><code> list_currency.append(currency)</code></p>
<p><code> balance = float(balance)</code></p>
<p><code> if balance>0.00000:</code></p>
<p><code> market_search = "BTC-"+currency</code></p>
<p><code> steem_bittrex = bittrex.get_ticker(market_search)</code></p>
<p><code> if steem_bittrex[u'message'] != u'INVALID_MARKET':</code></p>
<p><code> value_ASK = float(steem_bittrex[u'result'][u'Ask'])</code></p>
<p><code> value_Bid = float(steem_bittrex[u'result'][u'Bid'])</code></p>
<p><code> value_Last = float(steem_bittrex[u'result'][u'Last'])</code></p>
<p><code> value_ASK_BTC = value_ASK*balance</code></p>
<p><code> value_ASK_Dolar = value_ASK_BTC * value_BTC_dolares</code></p>
<p><code> value_Bid_BTC = value_Bid*balance</code></p>
<p><code> value_Bid_Dolar = value_Bid_BTC * value_BTC_dolares</code></p>
<p><code> </code></p>
<p><code> table_ask.add_row([currency,</code></p>
<p><code> value_ASK_BTC,</code></p>
<p><code> value_ASK_Dolar,</code></p>
<p><code> balance</code></p>
<p><code> ])</code></p>
<p><code> </code></p>
<p><code> total_dolares_ask.append(value_Bid_Dolar)</code></p>
<p><code> total_dolares_bid.append(value_ASK_Dolar)</code></p>
<p><code> total_BTC_ask.append(value_Bid_BTC)</code></p>
<p><code> total_BTC_bid.append(value_ASK_BTC)</code></p>
<p><code>print "Total Dolars Investment: ", sum(total_dolares_bid)</code></p>
<p><code>print "Total Dolars, if sell now: ", sum(total_dolares_ask)</code></p>
<p><code>print "Total Bitcoins Investment: ", sum(total_BTC_bid)</code></p>
<p><code>print "Total Bitcoins, if sell now: ", sum(total_BTC_ask)</code></p>
<p><code>print table_ask</code></p>
<p><br></p>
<p>Y aqui el otro script que nos dice las ordenes de compras que hemos hecho:</p>
<p><code>#!/usr/bin/env python</code></p>
<p><code># -*- coding: utf-8 -*-</code></p>
<p><code>from bittrex import Bittrex</code></p>
<p><code>import urllib2</code></p>
<p><code>from bs4 import BeautifulSoup</code></p>
<p><code>import re</code></p>
<p><code>from prettytable import PrettyTable</code></p>
<p><code>bittrex = Bittrex("Tu KEY", "Tu Token")</code></p>
<p><code>url = "http://www.eleconomista.es/cruce/BTCUSD"</code></p>
<p><code>page = urllib2.urlopen(url)</code></p>
<p><code>soup = BeautifulSoup(page, "lxml")</code></p>
<p><code>valor_btc = soup.find_all('span',class_="accion1 Dif_23138 estado_23138" )</code></p>
<p><code>value_BTC_dolares = valor_btc[0].get_text()</code></p>
<p><code>value_BTC_dolares = float(value_BTC_dolares.replace(',','.'))</code></p>
<p><code>print "Valor del Bitcoin: ", value_BTC_dolares, "$"</code></p>
<p><code>get_balances = bittrex.get_balances</code></p>
<p><code>get_order = bittrex.get_order_history</code></p>
<p><code>list_important = get_balances()[u"result"]</code></p>
<p><code>list_important_b = get_order('BTC-LTC')[u"result"]</code></p>
<p><code>list_balance = []</code></p>
<p><code>total_dolares_ask = []</code></p>
<p><code>total_dolares_bid = []</code></p>
<p><code>total_BTC_ask = []</code></p>
<p><code>total_BTC_bid = []</code></p>
<p><code>lista_diccionarios_monedas = []</code></p>
<p><code>for currency_currency in list_important:</code></p>
<p><code> balance = currency_currency[u'Balance']</code></p>
<p><code> currency = currency_currency[u'Currency']</code></p>
<p><code> balance = float(balance)</code></p>
<p><code> if balance>0.00000:</code></p>
<p><code> market_search = "BTC-"+currency</code></p>
<p><code> list_important_b = get_order(market_search)[u"result"]</code></p>
<p><code> if list_important_b != None:</code></p>
<p><code> for orden in list_important_b:</code></p>
<p><code> diccionarios_monedas = {}</code></p>
<p><code> fecha = orden["TimeStamp"]</code></p>
<p><code> fecha = fecha[0:10]</code></p>
<p><code> total_precio = orden["Price"]</code></p>
<p><code> total_precio = float(total_precio)</code></p>
<p><code> comision = orden["Commission"]</code></p>
<p><code> comision = float(comision)</code></p>
<p><code> precio_por_unidad = orden["PricePerUnit"]</code></p>
<p><code> precio_por_unidad = float(precio_por_unidad)</code></p>
<p><code> cantidad = orden["Quantity"]</code></p>
<p><code> cantidad = float(cantidad)</code></p>
<p><code> diccionarios_monedas = {'currency':currency,</code></p>
<p><code> 'total_precio':total_precio,</code></p>
<p><code> 'fecha':fecha,</code></p>
<p><code> 'comision':comision,</code></p>
<p><code> 'precio_por_unidad':precio_por_unidad,</code></p>
<p><code> 'cantidad':cantidad }</code></p>
<p><code> lista_diccionarios_monedas.append(diccionarios_monedas)</code></p>
<p><code>lista_totales = []</code></p>
<p><code>lista_monedas = []</code></p>
<p><code>diccionario_moneda = {}</code></p>
<p><code>orders = PrettyTable([u'Moneda', u'Fecha', u'precio por unidad', u'Cantidad',u'Precio Total'])</code></p>
<p><code>total_btc = 0</code></p>
<p><code>diccionario_currency = {}</code></p>
<p><code>for currency_currency in Lista_monedas:</code></p>
<p><code> </code></p>
<p><code> </code></p>
<p><code> currency =currency_currency["currency"]</code></p>
<p><code> total_precio = float(currency_currency["total_precio"])</code></p>
<p><code> cantidad = currency_currency["cantidad"]</code></p>
<p><code> precio_por_unidad = currency_currency["precio_por_unidad"]</code></p>
<p><code> Fecha = currency_currency["fecha"]</code></p>
<p><code> total_btc += total_precio</code></p>
<p><code> orders.add_row([currency,</code></p>
<p><code> Fecha,</code></p>
<p><code> precio_por_unidad,</code></p>
<p><code> cantidad,</code></p>
<p><code> total_precio</code></p>
<p><code> ])</code></p>
<p><code>orders= orders.get_string(sortby=("Fecha"), reversesort=False)</code></p>
<p><code>print orders </code></p>
<p><code>print total_btc </code></p>
<p><code>print diccionario_moneda</code></p>
<p>Estos 2 sistemas respectivamente arrojan como salida esto:</p>
<p>El Balance es este:</p>
<p><code>Total Dolars Investment: 713.596823011</code></p>
<p><code>Total Dolars, if sell now: 705.652385761</code></p>
<p><code>Total Bitcoins Investment: 0.315647453051</code></p>
<p><code>Total Bitcoins, if sell now: 0.31213336596</code></p>
<p><code>+--------+------------------+----------------+---------------+</code></p>
<p><code>| Moneda | Selling in BTC | Selling in USD | Queantity |</code></p>
<p><code>+--------+------------------+----------------+---------------+</code></p>
<p><code>| ANS | 0.00737446868311 | 16.6717563306 | 11.45495151 |</code></p>
<p><code>| BAT | 0.0115850006287 | 26.1906743214 | 160.90278651 |</code></p>
<p><code>| BTCD | 0.02798608 | 63.2692504992 | 1.0 |</code></p>
<p><code>| DASH | 0.006529884 | 14.7623699542 | 0.1 |</code></p>
<p><code>| DGB | 0.01172504546 | 26.5072792732 | 1000.4305 |</code></p>
<p><code>| DOGE | 0.0297982039634 | 67.3659916283 | 25911.4817073 |</code></p>
<p><code>| ENRG | 0.0080833618933 | 18.2743795667 | 309.47021031 |</code></p>
<p><code>| ETH | 0.016885202469 | 38.1730526298 | 0.12388263 |</code></p>
<p><code>| FTC | 0.0086848 | 19.634074752 | 320.0 |</code></p>
<p><code>| GBG | 0.0011526 | 2.605728924 | 20.0 |</code></p>
<p><code>| GNT | 0.0224311982903 | 50.7111072227 | 112.2120975 |</code></p>
<p><code>| GOLOS | 0.003392 | 7.66843008 | 80.0 |</code></p>
<p><code>| IOC | 0.00427110005374 | 9.65584673549 | 6.48216733 |</code></p>
<p><code>| LBC | 0.0287396373695 | 64.9728477867 | 106.83880063 |</code></p>
<p><code>| LTC | 0.029588082714 | 66.8909621148 | 2.40553518 |</code></p>
<p><code>| NXT | 0.019734 | 44.61344316 | 300.0 |</code></p>
<p><code>| RDD | 0.0174 | 39.336876 | 20000.0 |</code></p>
<p><code>| SNGLS | 0.0254043201106 | 57.4325626469 | 300.85646744 |</code></p>
<p><code>| STRAT | 0.00979376363439 | 22.1411531988 | 3.0605607 |</code></p>
<p><code>| SYS | 0.010935 | 24.7211919 | 150.0 |</code></p>
<p><code>| XEM | 0.00587475 | 13.281282315 | 75.0 |</code></p>
<p><code>| XZC | 0.0082789537812 | 18.7165619713 | 1.67326635 |</code></p>
<p><code>+--------+------------------+----------------+---------------+</code></p>
<p>Las Ordenes de compra son estas:</p>
<p><code>+--------+------------+-------------------+---------------+--------------+</code></p>
<p><code>| Moneda | Fecha | precio por unidad | Cantidad | Precio Total |</code></p>
<p><code>+--------+------------+-------------------+---------------+--------------+</code></p>
<p><code>| LTC | 2017-05-17 | 0.01427952 | 1.40553518 | 0.02007038 |</code></p>
<p><code>| DGB | 2017-05-22 | 5.87e-06 | 1000.4305 | 0.00588253 |</code></p>
<p><code>| SNGLS | 2017-05-22 | 7.828e-05 | 33.14582035 | 0.0013811 |</code></p>
<p><code>| SNGLS | 2017-05-22 | 8.147e-05 | 14.89822809 | 0.0012139 |</code></p>
<p><code>| SYS | 2017-05-22 | 4.035e-05 | 150.0 | 0.0060525 |</code></p>
<p><code>| ETH | 2017-05-25 | 0.0793027 | 0.1 | 0.00793027 |</code></p>
<p><code>| GNT | 2017-05-25 | 0.00017775 | 15.34240844 | 0.00216603 |</code></p>
<p><code>| GNT | 2017-05-25 | 0.00017777 | 19.15522064 | 0.00340541 |</code></p>
<p><code>| GOLOS | 2017-05-25 | 3.073e-05 | 80.0 | 0.0024584 |</code></p>
<p><code>| ETH | 2017-06-01 | 0.09155 | 0.06 | 0.005493 |</code></p>
<p><code>| STRAT | 2017-06-02 | 0.00249999 | 2.1918267 | 0.00547956 |</code></p>
<p><code>| GNT | 2017-06-05 | 0.00018519 | 80.87172003 | 0.01497743 |</code></p>
<p><code>| BAT | 2017-06-06 | 9.798e-05 | 160.90278651 | 0.01576686 |</code></p>
<p><code>| ETH | 2017-06-08 | 0.09325818 | 0.16 | 0.01492131 |</code></p>
<p><code>| LBC | 2017-06-08 | 0.00019484 | 3.52985944 | 0.00068779 |</code></p>
<p><code>| LBC | 2017-06-08 | 0.00019484 | 92.80984046 | 0.01808399 |</code></p>
<p><code>| RDD | 2017-06-08 | 1.04e-06 | 10000.0 | 0.0104 |</code></p>
<p><code>| SNGLS | 2017-06-08 | 7.924e-05 | 118.3173653 | 0.00937665 |</code></p>
<p><code>| SNGLS | 2017-06-08 | 7.925e-05 | 150.0 | 0.0118875 |</code></p>
<p><code>| BTCD | 2017-06-09 | 0.02446544 | 1.0 | 0.02446544 |</code></p>
<p><code>| DOGE | 2017-06-09 | 1.22e-06 | 25911.4817073 | 0.03187112 |</code></p>
<p><code>| ETH | 2017-06-09 | 0.09799113 | 0.12388263 | 0.0121394 |</code></p>
<p><code>| IOC | 2017-06-09 | 0.00054001 | 18.51783267 | 0.00999999 |</code></p>
<p><code>| LBC | 2017-06-09 | 0.00018685 | 3.6603001 | 0.00068396 |</code></p>
<p><code>| LBC | 2017-06-09 | 0.00018709 | 123.65747862 | 0.00162029 |</code></p>
<p><code>| LBC | 2017-06-09 | 0.00018988 | 113.24830294 | 0.0215043 |</code></p>
<p><code>| LBC | 2017-06-09 | 0.00023909 | 15.06979241 | 0.00360309 |</code></p>
<p><code>| LTC | 2017-06-09 | 0.01059171 | 1.0 | 0.01059171 |</code></p>
<p><code>| STRAT | 2017-06-12 | 0.00279946 | 0.868734 | 0.00243199 |</code></p>
<p><code>| ANS | 2017-06-13 | 0.00062119 | 11.45495151 | 0.00711581 |</code></p>
<p><code>+--------+------------+-------------------+---------------+--------------+</code></p>
<p><code>0.28366171</code></p>
<p>Dios les Bendiga si no entienden algo pueden comentar :D</p>
</html>