Tutorial de Binance API Python – Análisis de alfa

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.

  • Al crear un Binance en vivo trading cuenta.
  • Al crear un Red de pruebas puntuales de Binance cuenta.
  • 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».API de creación de Binance

    Ingrese la etiqueta de su clave API y haga clic en el botón «Siguiente».Etiqueta API de Binance Clave API

    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. Mensaje de depósito al contado de la API de Binance

    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.Cuenta de red de prueba puntual de demostración de la API de Binance

    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. Clave de API de la red de prueba puntual de la API de Binance

    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

    API de Binance Python Binance Obtener la lista de todos los teletipos

    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()

    Solicitudes de Binance API Python Obtener todos los tickers DataFrame

    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()

    Binance API Python Binance Obtener todos los tickers DataFrame

    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()

    Binance API Python Binance Obtener todos los tickers DataFrame

    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

    Binance API Python Binance Module Obtener información de símbolos para el diccionario BTCUSD

    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)

    Módulo Binance API Python Obtener libro de pedidos para el diccionario BTCUSD

    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()

    Binance API Python Binance Obtenga operaciones recientes para BTCUSD DataFrame

    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()

    El módulo Python API de Binance obtiene intercambios históricos para el marco de datos BTCUSD

    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

    API de Binance Python Binance Obtener tickers DataFarme

    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

    Binance API Python Binance Módulo Obtener diccionario de cuenta

    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

    Binance API Módulo Python Binance Obtener detalles de activos DataFrame

    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.Binance API Python Binance Module Crear mensaje de error de pedido de prueba

    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. Binance API Python Binance Module Obtener información de símbolos para el diccionario 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

    Binance API Python Binance Módulo Símbolo Información Filtros DataFrame

    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 API Módulo Python Binance Crear orden de prueba Mensaje de error Mínimo nocional

    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

    Binance API Python Binance Obtener información de símbolo AGIXBUSD Filtros DataFrame

    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:Resolución de tiempo de sincronización de la API de Binance

    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.Binance API SAPI WAPI Llamadas

    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?

    Además de Python, los clientes de Binance están disponibles en el Java, PHP, Nodo, .NORDESTET y Ir lenguajes de programación.

    Cómo eliminar mi clave API de Binance

    Binance API Eliminar clave de API

    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.

    Deja un comentario