Sistema Experto, Bittrex

in #spanish7 years ago

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

Sort:  

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

Coin Marketplace

STEEM 0.20
TRX 0.18
JST 0.031
BTC 87237.56
ETH 3192.65
USDT 1.00
SBD 2.94