En la primera parte sobre esta guía de Binance vimos como crearnos una cuanta en Binance y los aspectos más importante sobre la seguridad, si es tu primera vez en las inversiones de criptomonedas te recomiendo que leas esa primera parte en el siguiente link:
Guía de Binance and Moneytoday Parte I
Si lograste guardar las claves API como variables de entorno ¡Muchas Felicidades! eso quiere decir que eres un usuario avanzado, pero no te preocupe puedes trabajar con tus propias API en tu código, pero te recomiendo no compartirlo con nadie y si lo hace borra primero tu clave API este es el ejemplo:
from binance.client import Client client = Client(api_key, api_secret)
Para comprobar si todo esta bien, podemos obtener el ultimo precio del BTCUSDT
# Get latest price from Binance API btc_price = client.get_symbol_ticker(symbol="BTCUSDT") print(btc_price)
Puedes obtener más información aquí sobre Python Binance
Ahora vamos a la parte más interesante de esta guía que no se recoge en la documentación de Binance, que es guardar los datos históricos del precio en un archivo JSON o CSV para crear sistemas de inversión:
Importar los datos históricos del precio de Binance en archivo JSON and CSV
Lo primero que necesitamos hacer:
Es importar las librerías de json y csv para guardar nuestro archivo en este tipo de formato, podemos usar cualquiera de las dos
import json import csv
También debes importar la librería Pandas para crear DataFrame y Data Time para trabajar con el formato de las fechas.
import pandas as pd from datetime import datetime
Creamos la variable timestamp donde vamos a almacenar las diferente temporalidades o timeframe (periodo de tiempo)
# Ejemplo:1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, timestamp = client._get_earliest_valid_timestamp('BTCUSDT', '1d')
Creamos otra variable data donde guardamos el precio del BTCUSDT en temporalidad de un día (‘1d’) . Si quieres otro timeframe con cambiar este parámetro ya tienes.
data = client.get_historical_klines('BTCUSDT', '1d', timestamp, limit=1000)
Ahora vamos a crear nuestra DataFrame con las cabeceras de nuestras columnas, aquí es cuando entra a jugar la librería de Pandas, quédate con este concepto, que es muy importante para el análisis de datos y Machine Learning tema fundamentar de nuestro proyecto moneytoday.es
Nuestras columnas serán las siguientes:
df = pd.DataFrame(data, columns=['Open_Time','Open', 'High', 'Low','Close','Volume','Close_Time','Quote','Trades','Takers_buy_base','Takers_buy_quote','Ignore'])
Ahora escogemos la columnas del precio de apertura ( Open Time) para trabajar las fechas, recuerda que importamos la librería date time la cual nos permite convertir las fechas en formato legible a la que estamos a conturbados, de lo contario, seria un número largo que no sabíamos que tipo de fecha es.
df['Open_Time'] = pd.to_datetime(df1['Open_Time'], unit='ms')
Por último guardamos nuestros datos en un fichero JSON con el siguiente comando:
df1.to_json(‘BTCUSDT_1d.json’)
Para guardarlo en formato CSV seria:
df2.to_csv(‘BTCUSDT_1d.csv’)
Para imprimir las primeras filas de nuestra tabla, usamos el comando de Pandas
df.head()
El cual nos muestra las primeras 5 filas
Aquí el resultado:
Puedes consultar todo el código en Github de Moneytoday si necesitas ayuda por el Whatsapp de esta página web, para estar al día sobre nuestras publicaciones síguenos por Facebook.
Estoy actualizando está quía de Binance en la fecha domingo 28/05/2023
Les dejo las capturas de pantallas usando los pasos descritos más arriba, con todo lo aprendido en el últimos años, puedo mejorar mi Script Trading