Este tutorial explica cómo llamar API de Binance puntos finales en Python usando el python-binance biblioteca y la función de solicitudes de Python.
La API de Binance proporciona una amplia documentación sobre cómo llamar a sus diversos puntos finales. Además, varios blogs en línea explican cómo llamar a la API de Binance usando un cliente de Python. Sin embargo, encuentro que los recursos existentes simplemente explican cómo llamar a una función particular sin proporcionar ejemplos concretos.
Además, me resultó particularmente difícil realizar pedidos de Binance a través de la biblioteca python-binance. Hay varios requisitos que deben cumplirse antes de realizar un pedido. La documentación oficial y los artículos existentes no explican cómo cumplir con los requisitos del pedido.
En este artículo, explicaré cómo llamar a varios puntos finales de Binance con la ayuda de ejemplos concretos. También explicaré cómo verificar los requisitos del pedido antes de realizar un pedido y cómo cumplir con esos requisitos.
¿Qué es Binance?
Binance es un intercambio en línea de criptomonedas trading. También proporciona billeteras electrónicas para almacenar criptomonedas. Binance es el intercambio de criptomonedas más grande del mundo en términos de transacciones diarias. trading volumen.
Chang Peng Zhao fundó Binance en 2017 y está registrado en las Islas Caimán.
Binance.es es una empresa hermana de Binance, construida como un intercambio separado en 2019 debido a una prohibición regulatoria de Binance en los EE. UU. Esta estructura independiente de dos intercambios permite a Binance acceder al mercado estadounidense.
¿Qué es la API de Binance?
La API de Binance es un conjunto de llamadas a la API REST que permite a los usuarios acceder a los puntos finales de Binance en Python u otros lenguajes de programación. Con la API de Binance, puede desarrollar trading bots y aplicaciones de criptomonedas y así automatizar tu cripto trading.
Pros y contras de Binance
ventajas
- Binance ofrece una amplia variedad de criptomonedas.
- Las tasas de comisión de Binance son bajas debido a la alta liquidez y trading volúmenes
- Una billetera fría patentada garantiza la seguridad de sus criptomonedas.
- La API gratuita permite a los usuarios automatizar su trading Tareas.
Contras
- Binance tiene un procedimiento de registro muy complejo que requiere verificación de identidad.
- Ninguno de los reguladores otorga licencias a Binance
- El mecanismo de cálculo de la comisión no es transparente.
- Los usuarios se quejan de problemas técnicos con los servidores de Binance.
Planes de precios de la API de Binance
La API oficial de Binance es de uso gratuito. El acceso a varios puntos finales depende de su tipo de cuenta de Binance. Por ejemplo, solo puede acceder al margen trading extremos de la cuenta si tiene un margen trading cuenta.
La API de Binance permite 1200 pesos de solicitud por minuto, 50 pedidos por 10 segundos y 160 000 pedidos por 24 horas. Ver el documentación oficial para los límites de solicitud de API.
¿Cómo comenzar con la API de Binance en Python?
Hay un par de opciones para acceder a la API de Binance.
Crear un Binance en vivo Trading Cuenta
El primer paso es inscribirse para un binance trading cuenta. Si vive en los EE. UU., debe Regístrese en Binance.us.
Después del registro, recibirá un correo electrónico de verificación. Haga clic en el enlace de verificación para verificar su cuenta.
Vuelva a iniciar sesión en su cuenta API de Binance y verifique su identidad. Debe proporcionar un documento de identidad válido, por ejemplo, una tarjeta de identidad, pasaporte o licencia de conducir para verificar su identidad. Además, también tienes que hacer una fotografía a través de la webcam de tu ordenador o de la cámara de un móvil.
Necesitará una clave de API y un secreto de API para acceder a la API de Binance. Para obtener la clave API y la clave secreta, haga clic en el ícono de su perfil en la esquina superior derecha del tablero de Binance. Haga clic en «Administración de API» en la lista desplegable.
Haga clic en el botón «Crear API».
Ingrese la etiqueta de su clave API y haga clic en el botón «Siguiente».
Debe habilitar la autenticación de dos factores con el Autenticador de Google o una aplicación 2FA similar, o su número de teléfono.
Una vez que habilite la autenticación de dos factores, verá su clave de API, el secreto de API y la URL base para la API de REST. Guarde estas llaves en un lugar seguro. Una vez que actualice la página, nunca podrá volver a ver estas claves. Puede crear varias claves de API si lo desea.
El proceso para generar una clave API para Binance US es similar. Inicie sesión en su cuenta de Binance EE. UU. Haga clic en el ícono de su perfil, seleccione «Administración de API» de la lista desplegable y siga el mismo proceso que siguió al generar una clave de API para Binance.com.
Solo podrá generar una clave API si tiene un mínimo de $ 15 en su billetera spot. Verá el siguiente mensaje si necesita más fondos en su billetera spot.
Crear un Binance de demostración Trading Cuenta
Si desea probar los puntos finales de la API de Binance antes de vivir tradingpuedes crear un Red de pruebas puntuales de Binance cuenta.
Actualmente, la única forma de acceder a Binance Spot Test Network es a través de la integración de su cuenta de GitHub con Spot Test Network. Haga clic en el enlace «Iniciar sesión con GitHub» en la siguiente captura de pantalla.
Haga clic en el botón «Autorizar intercambio de binance» en la página siguiente.
Finalmente, haga clic en el enlace «Generar clave HMAC_SHA256» para generar sus claves de API de Spot Test Network.
Ejemplo simple de obtención de datos mediante la API de Binance en Python
Puede usar una biblioteca de Python de terceros o el módulo de solicitudes de Python para obtener datos de la API de Binance.
Ejemplo de la biblioteca de Python de la API de Binance
Varias bibliotecas de terceros están disponibles para la API de Binance; el más utilizado es python-binance. Binance realizó un concurso en 2017 para las mejores bibliotecas de clientes para diferentes idiomas. La biblioteca python-binance ganó ese concurso.
El siguiente script instala la biblioteca python-binance.
pip install python-binance
La clase de cliente del módulo binance.client contiene métodos que llaman a la API de Binance.
El siguiente script importa la clase de cliente y almacena su clave de API y sus secretos de API en las bibliotecas locales de Python. A continuación, debe crear un objeto de la clase Cliente y pasarle su clave API y su secreto.
Si está utilizando Binance Spot Test Network para probar las llamadas a la API de Binance, debe pasar True como valor para el atributo testnet de la clase Client. Además, debe asignar la URL de la API de Spot Test Network al atributo API_URL de la clase Client.
import os
from binance.client import Client
api_key = os.environ['BCL-Key']api_secret = os.environ['BCL-Secret']
client = Client(api_key, api_secret)
# If using Spot Testnet#client = Client(api_key, api_secret, testnet=True)#client.API_URL = 'https://testnet.binance.vision/api'
Los usuarios de EE. UU. que accedan a los puntos finales de Binance.us deben pasarnos como valor para el parámetro tld de la clase de Cliente, como se muestra a continuación:
client = Client(api_key, api_secret, tld='us')
Una vez que inicialice el objeto de la clase Cliente, puede usar un método de clase para llamar a cualquier punto final de la API de Binance. Por ejemplo, en el siguiente script, el método `get_all_tickers()` devuelve los precios de los tickers de Binance.
tickers = client.get_all_tickers()tickers
Convierta la respuesta del método API de Binance en un marco de datos de Pandas para mejorar la legibilidad:
import pandas as pd
df = pd.DataFrame(tickers)
df.head()
Ejemplo del módulo de solicitudes de la API de Binance
Utilice el módulo de solicitudes de Python para llamar a los puntos finales de la API de Binance si está buscando una respuesta rápida. Además, las bibliotecas de terceros no se actualizan inmediatamente con los cambios de la API REST. Puede usar el módulo de solicitudes de Python si una biblioteca de terceros no tiene la funcionalidad que necesita.
Las URL base para los puntos finales de Binance y Binance US API son las siguientes: BinanceBinance.USBase URLhttps://api1.binance.comhttps://api.binance.us
La siguiente secuencia de comandos utiliza el módulo de solicitudes de Python para obtener precios de cotizaciones de la API de Binance de Python. Observe que la llamada a la API para recuperar los precios de los teletipos es ‘/api/v3/ticker/price’.
import requestsfrom requests.exceptions import ConnectionError, Timeout, TooManyRedirectsimport jsonimport osimport pandas as pd
api_key = os.environ['BCL-Key']api_secret = os.environ['BCL-Secret']
url = 'https://api1.binance.com'
# for US users# url = https://api.binance.us
api_call = '/api/v3/ticker/price'
headers = {'content-type': 'application/json', 'X-MBX-APIKEY': api_key}
response = requests.get(url + api_call, headers=headers)
response = json.loads(response.text)
df = pd.DataFrame.from_records(response)df.head()
Ver el documentación oficial de la API de Binance para otros puntos finales de API REST.
¿Qué son los puntos finales de la API de Binance?
Binance agrupa sus puntos finales en las siguientes categorías principales:
- Puntos finales generales
- Puntos finales de datos de mercado
- Puntos finales de la cuenta
- Puntos finales de la subcuenta
- Margen Trading Puntos finales
Las siguientes secciones explican cómo llamar a algunas de las funciones más comunes desde estos puntos finales.
Punto final general
Las funciones generales del punto final permiten a los usuarios realizar algunas de las tareas más frecuentes de la API de Binance, por ejemplo, obtener la hora y el estado del servidor, precios de cotizaciones, intercambio e información de símbolos, etc.
Obtener la hora y el estado del servidor de Binance
El método ping() de la clase Client indica si el servidor de Binance está en funcionamiento.
Una respuesta vacía o ningún error significa que el servidor se está ejecutando.
Para obtener la hora del servidor de la API de Binance, puede usar el método get_server_time().
time_res = client.get_server_time()print(time_res)
La API de Binance devuelve una marca de tiempo en formato UNIX, como se muestra en el resultado a continuación.
{'serverTime': 1665955501799}
La siguiente secuencia de comandos de Python convierte el formato de hora de UNIX en el formato de fecha y hora estándar ISO.
import datetime
your_dt = datetime.datetime.fromtimestamp(int(time_res['serverTime'])/1000) print(your_dt.strftime("%Y-%m-%d %H:%M:%S"))
Obtenga toda la información de las monedas de Binance
Si estás interesado en conocer la actualidad trading precio de un símbolo de criptomoneda de Binance, utilice el método get_all_tickers():
coin_info = client.get_all_tickers()
df = pd.DataFrame(coin_info)df.head()
Obtenga Binance Exchange e información de símbolos
Puede obtener información general sobre el intercambio de Binance utilizando el método get_exchange_info(). En la respuesta, verá la información de la zona horaria, la hora del servidor, los símbolos, etc.
exchange_info = client.get_exchange_info()
exchange_info
dict_keys(['timezone', 'serverTime', 'rateLimits', 'exchangeFilters', 'symbols'])
Use una clave de diccionario para obtener información sobre una de las entidades mencionadas anteriormente. Por ejemplo, el siguiente script devuelve detalles de todos los símbolos en el intercambio de Binance:
import pandas as pd
df = pd.DataFrame(exchange_info['symbols'])df
Puede obtener información detallada sobre un símbolo utilizando el método get_symbol_info(). El método devuelve información como mínimo y máximo. trading precios para trading el símbolo:
exchange_info_symbol = client.get_symbol_info('BTCBUSD')
exchange_info_symbol
Punto final de datos de mercado
Obtener profundidad de mercado
La profundidad de mercado de un símbolo se refiere a las órdenes que solicitan y ofrecen precios en un punto determinado. Un libro de pedidos enumera la profundidad del mercado.
Con el cliente python-binance, puede recuperar la profundidad de mercado de un símbolo a través del método get_order_book().
market_depth = client.get_order_book(symbol='BTCBUSD')
print(market_depth.keys())print(market_depth)
Obtener transacciones recientes de Binance
El método get_recent_trades() devuelve información sobre las 500 transacciones recientes de un símbolo. El método devuelve información como el precio de la oferta, la cantidad, la hora de la tradeetc.
recent_trades = client.get_recent_trades(symbol='BTCBUSD')
df = pd.DataFrame(recent_trades)
df.head()
Obtenga transacciones históricas en Binance
El método get_historical_trades() devuelve datos históricos de un símbolo trade.
Si no pasas un trade id al atributo fromid del método get_historical_trades(), el método devolverá las transacciones más recientes.
historical_trades = client.get_historical_trades(symbol='BTCBUSD')
df = pd.DataFrame(historical_trades)df.head()
Obtenga el precio promedio del símbolo de Binance
Puede obtener el precio promedio de un símbolo utilizando el método get_avg_price(). El precio promedio le da una idea del precio que debe cotizar al comprar o vender un activo.
avg_price = client.get_avg_price(symbol='BTCBUSD')
avg_price
{'mins': 5, 'price': '19321.59434215'}
Obtenga todos los precios de Binance Tickers
Puede obtener diferentes tipos de información de precios, como cambio de precio, cambio de precio porcentual, precio de cierre anterior, último precio, etc., de un símbolo utilizando el método get_tickers().
tickers = client.get_ticker()
df = pd.DataFrame(tickers)
df
Terminales de cuentas y subcuentas
Usando los puntos finales de la cuenta y la subcuenta, puede obtener información sobre sus activos, operaciones, pedidos, etc.
Punto de conexión de la cuenta
Obtener información de la cuenta de Binance
El método get_account() devuelve información general sobre su cuenta de Binance, por ejemplo, el tipo de su cuenta, los activos que posee, etc.
info = client.get_account()
info
Obtener detalles de los activos de Binance
Puede recuperar detalles de todos los activos de la cuenta utilizando el método get_asset_details(). Verá la tarifa de retiro, el monto mínimo de retiro, el estado de retiro, etc., de todos los activos de su cuenta.
details = client.get_asset_details()
df = pd.DataFrame(details)
df.T
Puede obtener el saldo de un activo de cuenta utilizando el método get_asset_balance(). El símbolo de activo se pasa como parámetro al método, como se muestra en el siguiente script:
asset_balance = client.get_asset_balance(asset='ETH')
asset_balance
Obtener historial de dividendos de activos
Finalmente, para obtener el historial de dividendos de todos los activos de su cuenta, puede llamar a get_asset_dividend_history().
div_history = client.get_asset_dividend_history()
Obtener transacciones de Binance
Puede recuperar información sobre sus transacciones para un símbolo en particular usando el método get_my_trades():
trades = client.get_my_trades(symbol='BTCBUSD')
trades
Punto final del pedido
El punto final del pedido contiene funciones para obtener sus pedidos, crear un nuevo pedido, verificar el estado del pedido, cancelar un pedido, etc.
Obtener todas las órdenes de Binance
Para obtener todas sus órdenes de compra o venta de Binance para un símbolo, puede usar el método get_all_orders().
orders = client.get_all_orders(symbol='BTCBUSD', limit=10)
orders
Realizar pedido de Binance
Realizar un nuevo pedido de binance a través de la API de Python puede ser complicado al principio. La biblioteca de python-binance contiene el método create_test_order() que le permite probar si su pedido cumple con los criterios requeridos para colocarse en el intercambio de Binance. Una vez que pruebe su pedido, puede llamar al método create_order() para realizar un pedido.
Como ejemplo, el siguiente script coloca una orden de compra de tipo de mercado para el símbolo AGIXBUSD.
buy_order = client.create_test_order(
symbol='AGIXBUSD',
side='BUY',
type='MARKET',
quantity=0.5
)
Una vez que ejecute el script anterior, verá el siguiente error.
El error dice que el pedido falló el filtro LOT_SIZE. Solo puede realizar un pedido si pasa todos los filtros. Ver los detalles de diferentes tipos de filtros de órdenes de Binance.
Para obtener valores de símbolo para un filtro específico, puede usar el método get_symbol_info().
info = client.get_symbol_info('AGIXBUSD')
print(info)
En la salida, verá varios valores de filtro. Por ejemplo, en el resultado a continuación, puede ver que el filtro LOT_SIZE especifica 1.00 como el valor de cantidad mínima para el símbolo AGIXBUSD.
Para obtener una mejor vista, puede mostrar todos los valores de filtro en un marco de datos de Pandas usando el siguiente script.
import pandas as pd
new = pd.DataFrame.from_dict(info['filters'])
new.head()
## filter details
## https://binance-docs.github.io/apidocs/spot/en/#filters
Actualicemos la cantidad del pedido a algo mayor que 1.00.
buy_order = client.create_test_order(symbol='AGIXBUSD',
side='BUY',
type='MARKET',
quantity=100,
)
Ahora tenemos otro error. Esta vez, la orden falló el filtro de valor MIN_NOTIONAL.
Binance define el valor nocional mínimo como el producto de la cantidad y el precio del símbolo.
Primero encontremos el precio del símbolo para AGIXBUSD.
coin_info = client.get_all_tickers()
df = pd.DataFrame(coin_info)df = df[df['symbol']== 'AGIXBUSD']
df
Y para encontrar el valor MIN_NOTIONAL, puede usar el siguiente script.
import pandas as pdinfo = client.get_symbol_info('AGIXBUSD')
new = info['filters']
new[3]
Puede ver que el valor nocional mínimo es 10.000
{'filterType': 'MIN_NOTIONAL', 'minNotional': '10.00000000', 'applyToMarket': True, 'avgPriceMins': 5}
Desde,
Cantidad x Símbolo Precio = Valor Nocional Mínimo
Cantidad = Valor Nocional Mínimo / Precio Símbolo
Para el símbolo AGIXBUSD:
Cantidad = 10,0/0,0505 = 198,01
Por lo tanto, para pasar el filtro MIN_NOTIONAL, la cantidad debe ser superior a 198,01.
El siguiente script establece la cantidad en 200, lo que le permite pasar el pedido de prueba con éxito. #10/0.0505 = 198.01
orden_compra = cliente.create_test_order(símbolo=’AGIXBUSD’, lado=’COMPRAR’, tipo=’MERCADO’, cantidad=200, )
Una vez que valide su pedido de prueba, puede realizar un pedido real usando el método create_order(), como se muestra en el siguiente script:buy_order = client.create_order(symbol=’AGIXBUSD’, side=’BUY’, type=’MARKET’ , cantidad=200, )
Los siguientes son algunos otros métodos que le permiten realizar un tipo específico de pedido.
- order_limit_buy()
- order_limit_sell()
- order_market_buy()
- order_market_sell()
- orden_oco_comprar()
- order_oco_sell()
Por ejemplo, el siguiente script coloca una orden de compra de mercado para AGIXBUSD símbolo.pedido = cliente.pedido_mercado_compra( símbolo=’AGIXBUSD’, cantidad=200)
Comprobar el estado del pedido de Binance
Puede verificar el estado actual del pedido que realizó utilizando el método get_order(). Debe pasar el símbolo y la identificación de su pedido como valores de parámetro al método get_order().
# 10/0.0505 = 198.01
buy_order = client.create_test_order(symbol='AGIXBUSD',
side='BUY',
type='MARKET',
quantity=200,
)
order = client.get_order( symbol='AGIXBUSD',
orderId='your_order_id')
Cancelar pedido de Binance
Finalmente, como lo demuestra el siguiente script, puede cancelar su orden de Binance usando el método cancel_order().
order = client.cancel_order( symbol='AGIXBUSD',
orderId='your_order_id')
Obtener la lista de subcuentas de Binance
Binance permite a sus usuarios corporativos e individuales VIP crear subcuentas. Con las subcuentas, los usuarios pueden dividir responsabilidades y administrar transacciones de una manera más organizada.
Puede obtener una lista de todas sus subcuentas usando el método get_sub_account_list(), como se muestra en el siguiente script:
## Functionality only available for Corporate and VIP Individual Users
accounts = client.get_sub_account_list()
print(accounts)
## Funcionalidad solo disponible para cuentas de usuarios corporativos e individuales VIP = client.get_sub_account_list()print(accounts)
Margen Trading Puntos finales
Margen de binance trading puntos finales le permiten realizar varios márgenes trading Tareas. En términos más simples, el margen trading Se refiere a la compra y venta de acciones con dinero prestado.
Para acceder al margen de Binance trading puntos finales, debe crear un margen trading cuenta con Binance.
Puede crear un margen cruzado trading cuenta o un margen aislado trading cuenta. en el margen cruzado trading, todas sus cuentas de margen comparten el riesgo. Por el contrario, en margen aislado tradingel margen de riesgo es independiente para cada trading par.
Margen de Binance Trading Extremo de cuentas
Margen de binance trading los puntos finales de la cuenta le permiten crear márgenes cruzados y márgenes aislados trading cuentas y obtener diversa información sobre su margen trading cuenta.
Obtener cuenta de margen cruzado
Usted puede crear un margen cruzado trading cuenta a través de su tablero de Binance.
Una vez que crea su cuenta de margen cruzado, puede obtener información general sobre la cuenta usando el método get_margin_account().
margin_account_info = client.get_margin_account()
margin_account_info
Crear una cuenta de margen aislado
Puedes crear un margen aislado trading cuenta utilizando el método create_isolated_margin_account() de la biblioteca python-binance. Debe pasar la base y cotizar valores de activos para su margen aislado trading cuenta.
account = client.create_isolated_margin_account(base='BTC', quote='ETH')
Obtener información de cuenta de margen aislado
Puede recuperar detalles de su margen aislado trading cuenta utilizando el método get_isolated_margin_account().
info = client.get_isolated_margin_account()
info
{'assets': [], 'totalAssetOfBtc': '0', 'totalLiabilityOfBtc': '0', 'totalNetAssetOfBtc': '0'}
Margen de Binance Trading Punto final de datos de mercado
Obtener información de activos de margen cruzado
El método get_margin_asset() devuelve detalles de un activo que puede comprar o vender a través del margen trading. Aquí hay un ejemplo:
asset_info = client.get_margin_asset(asset='ETH')
asset_info
{'assetName': 'ETH', 'assetFullName': 'Etherum', 'isBorrowable': True, 'isMortgageable': True, 'userMinBorrow': '0', 'userMinRepay': '0'}
Obtener información de símbolo de margen cruzado
De manera similar, puede usar el método get_margin_symbol() para obtener información sobre si puede trade un símbolo a través del margen trading. Aquí hay un ejemplo:
symbol_info = client.get_margin_symbol(symbol='ETHBTC')
symbol_info
{'id': 351638524530850581, 'symbol': 'ETHBTC', 'base': 'ETH', 'quote': 'BTC', 'isMarginTrade': True, 'isBuyAllowed': True, 'isSellAllowed': True}
Margen Binance-Trading Endpoint de pedidos
La biblioteca python-binance también proporciona funciones para colocar margen trading pedidos. De forma predeterminada, estas funciones de puntos finales crean pedidos utilizando su cuenta de margen cruzado. Para una cuenta de margen aislada, debe pasar True como valor para el parámetro aislado.
Obtener todo el margen Trading Pedidos
El método get_all_margin_orders() devuelve todos sus pedidos involucrados en el margen trading.
orders = client.get_all_margin_orders(symbol='ETHBTC', limit=10)
Coloque un margen Trading Ordenar
Puedes poner un margen trading ordenar usando el método create_margin_order(). La sintaxis es similar a la creación de órdenes de Binance simples, como se muestra a continuación:
from binance.enums import order = client.create_margin_order( symbol='ETHBTC', side=SIDE_BUY, type=ORDER_TYPE_LIMIT, timeInForce=TIME_IN_FORCE_GTC, quantity=100, price='0.0001')
de binance.enums import *
orden = cliente.create_margin_order(
símbolo=’ETHBTC’,
lado=SIDE_COMPRAR,
tipo=ORDER_TYPE_LIMIT,
timeInForce=TIEMPO_EN_FUERZA_GTC,
cantidad=100,
precio=’0.0001′)
Comprobar margen Trading Estado del pedido
De manera similar, puede usar el método get_margin_order() para encontrar el estado de su margen trading ordenar.
order = client.get_margin_order(
symbol='AGIXBUSD',
orderId='your_order_id')
Cancelar un margen Trading Ordenar
Finalmente, puede cancelar su margen trading orden utilizando el método cancel_margin_order().
result = client.cancel_margin_order(
symbol='AGIXBUSD',
orderId='your_order_id')
Punto final de préstamos de Binance
Los puntos finales de los préstamos de Binance le permiten pedir prestado y pagar el margen de Binance trading préstamos
Crear préstamo
El método create_margin_loan() le permite pedir prestado un préstamo por margen trading. Por ejemplo, el siguiente script crea un préstamo de margen de cantidad 1.1 para Ethereum.
transaction = client.create_margin_loan(asset='ETH', amount='1.1')
Reembolsar préstamo
Para pagar un préstamo, puede usar el método repay_margin_loan(), como se muestra en el siguiente script:
transaction = client.repay_margin_loan(asset='ETH', amount='1.1')
Obtener detalles del préstamo
Finalmente, para obtener detalles de un préstamo prestado o reembolsado, puede usar el método get_margin_loan_details(). Debe pasar el nombre del activo y la identificación de la transacción al método get_margin_loan_details().
details = client.get_margin_loan_details(asset='BTC', txId='100001')
Obtenga todas las operaciones de margen de Binance
Finalmente, puede recuperar información sobre sus transacciones de margen para un símbolo en particular usando el método get_margin_trades, como se muestra en el siguiente ejemplo:
trades = client.get_margin_trades(symbol='BTCBUSD')
Problemas y errores comunes al acceder a la API de Binance
Error de sincronización de la hora del servidor
Es posible que obtenga un error de hora del servidor al acceder a la hora del servidor de Binance. Por ejemplo, ejecutar el siguiente script en una máquina con Windows me devolvió un error:
time_res = client.get_server_time()
time_res
"BinanceAPIException: APIError(code=-1021): Timestamp for this request was 1000ms ahead of the server's time."
Puede resolver este error yendo a Windows -> Configuración-> Hora e idioma -> Fecha y hora -> ‘Sincronizar ahora’, como se muestra en la siguiente captura de pantalla:
Error de clave de API no válida
Otro error común que probablemente encontrará es el error de clave de API no válida. Por ejemplo, ejecutar el siguiente script usando Binance Spot Test Network devuelve un error de clave no válida:
historical_trades = client.get_historical_trades(symbol='BTCBUSD')
df = pd.DataFrame(historical_trades)
df.shape
BinanceAPIException: APIError(code=-2015): Invalid API-key, IP, or permissions for action.
Este error generalmente ocurre cuando accede a los puntos finales sapi/wapi de Binance a través de Spot Test Network, ya que Spot Test Network no es compatible con estos puntos finales.
Para ver si un método llama a un punto final sapi/wapi, haga clic en el nombre del método de la API de python-binance; verá la llamada API REST subyacente. Puede ver desde la llamada API REST si el método llama a un punto final sapi/wapi.
Puede acceder a estos puntos finales solo a través de un Binance en vivo trading cuenta.
Alternativas de Binance
Las siguientes son algunas alternativas a Binance:
Preguntas frecuentes
¿Es segura la API de Python-Binance?
Sink.io escaneo de seguridad de python-Binance La API revela una vulnerabilidad o un problema de licencia con la API de python-binance. El puntaje general de salud de la biblioteca es 68/100. Por lo general, la biblioteca se considera segura ya que los usuarios no informan sobre infracciones de seguridad.
¿Puedo compartir mi clave API de Binance?
Binance recomienda que nunca comparta su clave API o secreto con nadie.
¿Binance proporciona claves privadas?
Binance es un intercambio centralizado y no proporciona a sus usuarios una clave privada.
¿Qué clientes están disponibles para la API de Binance?
Cómo eliminar mi clave API de Binance

Para eliminar una clave API de Binance, vaya a su tablero, haga clic en el ícono de su perfil en la esquina superior derecha y haga clic en «Administración de API». Aparecerá una lista de sus claves API. Haga clic en el botón «Eliminar» para la clave API que desea eliminar.
La línea de fondo
Con el mayor diario trading volumen, Binance es el intercambio de criptomonedas líder en el mundo que le permite comprar y vender las criptomonedas más comúnmente negociadas. La billetera fría segura de Binance garantiza la seguridad de sus datos criptográficos. Además de una interfaz GUI fácil de usar, Binance ofrece una rica API REST.
En este artículo, vio algunas opciones para conectarse a la API de Binance a través del lenguaje de programación Python. La información de este tutorial puede ayudarlo a desarrollar software de criptomonedas y automatizar su Binance trading tareas usando un trading bot. Además, los investigadores de ciencia de datos y aprendizaje automático pueden aprovechar la API de python-binance para la investigación de datos financieros.