• ¿Quieres apoyar a nuestro foro haciendo una donación?, entra aquí.

El tema de las criptomonedas (BTC , la nueva economia que cambiara el viejo paradigma financiero

Lo prometido es deuda: Aquí les dejo un código sencillo para que puedan ver algunos indicadores para un par en particular o todos los pares de criptos que deseen.


Instrucciones:

  • pip install Pandas
  • pip install Pandas-Ta
  • pip install Python-Binance
  • pip install warnings
  • pip install sys (por si no les carga pero debería)
  • pip install os (por si no les carga pero debería)
  • pip install time (por si no les carga pero debería)
  • Sacar claves API en la cuenta de Binance, si no tienen cuenta en Binance sacar una, es gratis.
  • Crear un archivo llamado "clave.py" donde tiene que ir las claves:
    • API_KEY = ''"
    • API_SECRET = ''"
  • Luego copien y peguen el código que está en el spoiler de abajo en otro archivo nuevo de python (extensión *.py), da lo mismo el nombre, la idea es que puedan ejecutarlo. Crear el archivo en la misma carpeta donde crearon clave para que puedan ser leídas las claves.
  • Ejecutar en el terminal (o línea de comandos si es Windows) python3 nombredelprograma.py
  • Seguir las instrucciones

Código:

'''
Ejemplo de código para quienes están interesados en hacer un bot sencillo con los indicadores.
'''
# llamado de Librerías
from binance.client import Client
from binance.enums import *
import time
from time import sleep
import warnings
import pandas as pd
import pandas_ta as ta
import clave
import sys
import os
client = Client(clave.API_KEY, clave.API_SECRET) # Deben crear en un archivo llamado clave las api keys
# Variables
pares = []
hinicial = time.perf_counter()

# Funciones
def borrarPantalla(): # Borrado de Pantalla en función del SO
if os.name == "posix":
os.system ("clear")
elif os.name == "ce" or os.name == "nt" or os.name == "dos":
os.system ("cls")

def seleccionar_pares():
info = client.get_exchange_info()
symbols = [x['symbol'] for x in info['symbols']]
exclude = ['UP','DOWN','BEAR','BULL', 'EURUSDT', 'USDUSDT', 'GBRUSDT', 'AUDUSDT', 'PAXG', 'GBPUSDT','BRLUSDT','MIRUSDT', 'USDCUSDT','USDP','BTTC'] # Excluí las Fiats y criptos poco atractivas
non_lev = [symbol for symbol in symbols if all(excludes not in symbol for excludes in exclude)]
relevantes = [symbol for symbol in non_lev if symbol.endswith('USDT')]
print("cargando pares... ")
for i in range(0,len(relevantes)):
pares.append(relevantes)


def getminutedata(symbol,interval,lookback):
frame = pd.DataFrame(client.get_historical_klines(symbol, interval, lookback))
frame = frame.iloc[:,:6]
frame.columns = ['Time', 'Open', 'High', 'Low', 'Close', 'Volume']
frame = frame.set_index('Time')
frame.index = pd.to_datetime(frame.index, unit='ms')
frame = frame.astype('float')
return frame
def applytechnicals(df):
'''Dejo una EMA, RSI MACD y ADX como ejemplos'''
df['ema'] = df.ta.ema(length=100)
df['rsi'] = df.ta.rsi(length=14)
macd = df.ta.macd() # Llamada a MACD antes de obtener MACD, señal e histograma
df['macd'] = macd['MACD_12_26_9']
df['senal'] = macd['MACDs_12_26_9']
df['histo'] = macd['MACDh_12_26_9']
adx = df.ta.adx() # Llamada a ADX
df['adx'] = adx['ADX_14']

############## Principal #################
warnings.filterwarnings('ignore') # Ignorar advertencias
ho = input('Ingrese el número de horas que va a Operar [1h por defecto] ')
if not ho.isdigit():
ti = hinicial + 3600
else:
ti = hinicial + (float(ho) * 3600)

seleccion = input("Indique que par va a testear [dejar la respuesta vacía significa que todos los pares serán testeados en Tether], si va a elegir una hágalo en mayusculas Ej. BTCUSDT ")
rango = input("ingrese el tamaño de vela, [1m, 5m, 15m, 1h, 4h, 1d] ")
# Periodo en función del tamaño de la vela, podría usar case o algún otro condicional de selección pero prefiero ir por lo simple
if rango == "1m":
periodo = "102m"
elif rango == "5m":
periodo = "502m"
elif rango == "15m":
periodo = "26h"
elif rango == "1h":
periodo = "102h"
elif rango == "4h":
periodo = "17d"
elif rango == "1d":
periodo = "101d"
else:
print("Por no elegír un tamaño de vela evaluable tendrás que hacer correr el programa de nuevo")
sys.exit()
if seleccion == "":
seleccionar_pares()


while (ti - time.perf_counter()) > 0:

print("paso")

if seleccion == "":


for i in range(0,len(pares)):
try:
borrarPantalla()
b = getminutedata(pares, rango, periodo)
applytechnicals(b)
data = pd.DataFrame({'Par':[pares], 'Valor':[b.Close.iloc[-1]], 'EMA 100': [b.ema.iloc[-1]], 'RSI':[b.rsi.iloc[-1]],
'MACD':[b.macd.iloc[-1]], 'Señal MACD':[b.senal.iloc[-1]], 'Histo MACD':[b.histo.iloc[-1]],
'ADX':[b.adx.iloc[-1]]})
print(data)
sleep(2) # Pausa para ver la data en segundos, se puede borrar o dejar como comentario si no quieren pausas



except Exception as e:
print("Problemas con la data...")
continue

else:

try:
borrarPantalla()
b = getminutedata(seleccion, rango, periodo)
applytechnicals(b)
data = pd.DataFrame({'Par':[seleccion], 'Valor':[b.Close.iloc[-1]], 'EMA 100': [b.ema.iloc[-1]], 'RSI':[b.rsi.iloc[-1]],
'MACD':[b.macd.iloc[-1]], 'Señal MACD':[b.senal.iloc[-1]], 'Histo MACD':[b.histo.iloc[-1]],
'ADX':[b.adx.iloc[-1]]})
print(data)
sleep(2) # Pausa para ver la data en segundos


except Exception as e:
print("La calidad de la data no permite operar, por favor ejecute nuevamente el programa")
sys.exit()

No soy informático, deben haber miles de maneras de codificar mejor que la mía. El programa es mejorable, me gusta que corra bien y no me interesa que esté perfecto, lo perfecto es enemigo de lo bueno. Hay muchos mejores ejemplos en Internet, este código lo uso habitualmente como parte de otros programas mas completos cuando programo mis bots de trading así que está archi-probado. Este código corre hasta en una Raspberry Pi 2 (no tengo la 1 como para ejecutarlo) así que no debería haber problema que corra en casi cualquier cosa.
Hagan lo que les plazca con el código, si se mandan una cagada es responsabilidad única y exclusiva de ustedes.

Besos.
 
uta, que siga subiendo BTC, total ya salto el stop loss en 65k y duplique los btc que compre el año pasado...del resto, que siga subiendo no mas porque esta arrastrando a las otras criptos, ahora tengo casi una luca verde en DOT, gracias a que aproveche el bajon y que el año pasado el tio benancio estaba dando hasta 60% de interes anual cuando la wea apenas se afirmaba por los 4 dolares. Estoy que compro mas, recien esta en 11 dolares y el ATH esta sobre los 50, o sea su potencial puede multiplicar por 5 :sisi3:
 
uta, que siga subiendo BTC, total ya salto el stop loss en 65k y duplique los btc que compre el año pasado...del resto, que siga subiendo no mas porque esta arrastrando a las otras criptos, ahora tengo casi una luca verde en DOT, gracias a que aproveche el bajon y que el año pasado el tio benancio estaba dando hasta 60% de interes anual cuando la wea apenas se afirmaba por los 4 dolares. Estoy que compro mas, recien esta en 11 dolares y el ATH esta sobre los 50, o sea su potencial puede multiplicar por 5 :sisi3:
Pienso igual, primero la distribución de BTC a a ETH y luego a las ALTS. Hay hartas regaladas aun.
 
Última edición:
Yo mientras aprendo trading estoy en un copytrade re weno, me ha dado buenos profits

ojo, muchos parten re bien pero se cagan en un negocio y te quedaste con 0 dolares en un rato. si sacaste ganancia, retira y busca otro. recuerda que en futuros aunque pongas stop loss en 50%, mientras no se cierre puedes perder todo de una.
 
ojo, muchos parten re bien pero se cagan en un negocio y te quedaste con 0 dolares en un rato. si sacaste ganancia, retira y busca otro. recuerda que en futuros aunque pongas stop loss en 50%, mientras no se cierre puedes perder todo de una.
Si cacho, pero ha soportado muy bien las subidas y caídas de estos últimos meses, esta basado en Hedge trading. Me deja 100 usd semanales con 1000k iniciales
Performance
90 Days
ROI
+145.30‎%
Master's PnL
+19,551.05
Win Rate
89.60‎%
Followers' PnL
+154,117.83
Max. Drawdown
7.51‎%
Avg. PnL per Trade
+1.11
Win16,658
Lose1,767

Profit-to-Loss Ratio
0.35 : 1
Weekly Trades
1,423.42
Avg. Holding Time
22.50Hours
ROI Volatility
3.06%
Sharpe Ratio
5.00
Sortino Ratio
25.92
Last Traded at
2024-03-12 16:49:10
 
No entiendo ni mierda. Sólo quiero saber si conviene comprar BTC ahora o espero (mi estrategia (si es que se puede llamar así) es HODL
 
No entiendo ni mierda. Sólo quiero saber si conviene comprar BTC ahora o espero (mi estrategia (si es que se puede llamar así) es HODL
Si vas a holdear hasta 2030 vale la pena comprar. Si baja un 50% vale la pena comprar, todo depende de cuanta plata tengas y cuanto tiempo quieras esperar.
 
Si vas a holdear hasta 2030 vale la pena comprar. Si baja un 50% vale la pena comprar, todo depende de cuanta plata tengas y cuanto tiempo quieras esperar.
La verdad yo lo veo como una forma de proteger mi patrimonio. Estoy asumiendo que eventualmente el país se va a ir a la mierda con los zurdos qls.
Así que ahí estoy en la duda. Obviamente es imposible comprar en el mejor momento, pero tampoco quiero comprar y que después se vaya a pique (porque con la misma plata podría haber comprado más)
 
La verdad yo lo veo como una forma de proteger mi patrimonio. Estoy asumiendo que eventualmente el país se va a ir a la mierda con los zurdos qls.
Así que ahí estoy en la duda. Obviamente es imposible comprar en el mejor momento, pero tampoco quiero comprar y que después se vaya a pique (porque con la misma plata podría haber comprado más)
Si lo ves de esa forma compra BTC pero no a tontas y a locas, infórmate, estudia y compra. Luego, cuando acumules una cantidad que consideres interesante cómprate una cripto wallet Ledger NUEVA y almacena tus BTC ahí, ojo con la clave porque si se te olvida cagaste.
 
compré RickCoin en preventa ya que leí varios análisis que dicen que ese proyecto tiene un buen respaldo

Seguiré leyendo a ver si compro alguna otra
 
Si lo ves de esa forma compra BTC pero no a tontas y a locas, infórmate, estudia y compra. Luego, cuando acumules una cantidad que consideres interesante cómprate una cripto wallet Ledger NUEVA y almacena tus BTC ahí, ojo con la clave porque si se te olvida cagaste.
me recomienda un libro o un sitio para wns noobs, cipa? Mi intención es solamente aprender cuándo comprar, es decir, no estoy interesado en la parte informática (el cómo funciona). Y tampoco planeo vender, porque al ser un ignorante, lo más probable es que me termine arrepintiendo :B
 
Volver
Arriba