Serie API de Binance Pt. I - Comercio al contado con cartero

Serie API de Binance Pt. I - Comercio al contado con cartero

Introducción

Comprender y usar una API para el comercio de criptomonedas puede abrir un mundo de posibilidades cuando se trata de ingresar y salir de posiciones. Con un simple conocimiento de codificación, puede conectarse a un backend de intercambios para automatizar sus estrategias comerciales . Al eludir el sitio web, puede tomar un camino mucho más rápido hacia el motor de búsqueda de aplicaciones de alto rendimiento.

El propósito de esta serie es presentarle la API REST de Binances y enseñarle cómo interactuar con ella. Al final, debe confiar en su capacidad para consultar información sobre los mercados y su posición y para colocar una variedad de diferentes tipos de órdenes.

En este artículo, usaremos Postman para comunicarnos con el intercambio. No se preocupe, no pondremos en riesgo fondos reales.

Prerrequisitos

Claves de Testnet

Vamos a utilizar la red de pruebas para nuestros propósitos. Esto nos dará algunos fondos sin valor real para jugar. Funcionan exactamente de la misma manera que las monedas y tokens reales, por lo que una vez que se sienta cómodo con la API, puede comenzar a usarla para intercambiar fondos reales.

  1. Empiece por dirigirse a Spot Test Network .
  2. Para obtener acceso, deberá iniciar sesión con una cuenta de GitHub . Cree uno si aún no lo ha hecho.
  3. Haga clic en Autenticar e inicie sesión a través de GitHub.
  4. En Claves API, se le informará que no tiene claves registradas. Haga clic en Generar clave HMAC_SHA256 para crear un par.
  5. En la siguiente pantalla, asigne una etiqueta a las teclas. Llámalos como quieras y presiona Generar .
  6. Se le presentan dos claves: la clave API y la clave secreta . Es importante que los registre ahora. Deberá volver a iniciar el proceso de creación de claves si no lo hace. Recomendamos almacenarlos en la aplicación de notas de su máquina para poder copiarlos y pegarlos fácilmente más tarde.

Nota: etiquetar sus claves es algo que vale la pena hacer cuando se usa el intercambio real para administrar diferentes claves. Su cuenta puede tener varias claves con diferentes permisos. Si está ejecutando varios bots comerciales, el uso de claves separadas con etiquetas descriptivas facilita la administración de permisos o la eliminación de claves individuales sin cambiar todos sus bots.

Descarga e instalación de Postman

Postman es una plataforma de colaboración API. Es un punto de partida perfecto para que tengamos acceso a colecciones de solicitudes de Binance que se prueban sin necesidad de escribir una sola línea de código.

El programa está disponible para Mac, Windows y Linux . Dirígete a la página de Descargas y descarga el archivo .zip.

Una vez que se haya completado, ubíquelo en su explorador de archivos e instálelo. Inicie la aplicación y ¡listo! Tenga en cuenta que puede crear una cuenta para iniciar sesión, pero no es necesario. Si desea omitir ese paso, simplemente seleccione la opción para hacerlo en la parte inferior de la ventana.

Creando el medio ambiente

En esta etapa, debe tener una interfaz similar a la siguiente.

Serie API de Binance Pt. I - Comercio al contado con cartero

Primero queremos crear nuestro entorno. Esta es solo una forma de agregar variables al conjunto de solicitudes con las que vamos a trabajar. Para hacer eso, primero necesitamos obtener información del repositorio de Binance GitHub. Dirígete aquí y descarga el archivo .zip.

Serie API de Binance Pt. I - Comercio al contado con cartero

La descarga no debería tardar mucho. Encuéntrelo en su explorador de archivos y descomprímalo. Luego, podemos regresar a Postman.

Serie API de Binance Pt. I - Comercio al contado con cartero

Haga clic en el ícono de ajustes en la esquina superior derecha (ilustrado arriba). Será recibido con una ventana emergente Administrar entornos .

  1. Seleccione Importar y navegue hasta la carpeta que acaba de extraer (binance-postman-api).
  2. Ingrese, luego ingrese a la carpeta de entornos.
  3. Ahora verá dos archivos (uno para mainnet y otro para testnet). El que buscamos es binance_com_spot_testnet_api.postman_environment.json . Asegúrese de tener la correcta porque nuestras claves no funcionarán con la otra.

Serie API de Binance Pt. I - Comercio al contado con cartero

Casi ahí. Haga clic en Binance Spot Testnet API y verá las variables a continuación. Edite los dos parámetros delineados en rojo pegando las claves que guardó anteriormente. Haga clic en actualizar y salga de la ventana emergente.

Serie API de Binance Pt. I - Comercio al contado con cartero

En esta pantalla, deje en blanco los campos de marca de tiempo y firma. Estos dos valores se crearán automáticamente en cada solicitud.

Hay una última cosa que hacer. A la derecha del icono de engranaje en el que hicimos clic para configurar el entorno antes, verá un menú desplegable que actualmente dice Sin entorno . Haga clic en él y seleccione Binance Spot Testnet API .

Importando la colección

Ahora que íbamos a importar la colección, esta es una amplia variedad de solicitudes que hacen el trabajo pesado por nosotros cuando hacemos llamadas. Para cargarlo en nuestro entorno:

  1. Haga clic en Importar en la esquina superior izquierda.
  2. En la ventana emergente, en la pestaña Archivo , seleccione Cargar archivos .
  3. Estamos buscando de nuevo la carpeta binance-postman-api . Ubícalo y ábrelo.
  4. Esta vez, ingrese colecciones en el subdirectorio.
  5. Aquí hay dos archivos de nuevo. Uno es para trabajar con la API de futuros. Pero estábamos trabajando con el spot one, por lo que deberá seleccionar el archivo binance_spot_api_v1.postman_collection.json .
  6. Ahora debería ver una pantalla de confirmación que identifica la importación como en el formato Postman Collection. Seleccione Importar.

En la pestaña Colección a la izquierda de la ventana, ahora notará que tenemos una carpeta con más de 100 solicitudes. ¡Felicidades! Estamos listos para irnos. En la siguiente sección, echaremos un vistazo a los tipos de solicitudes que podemos realizar.

Haciendo peticiones

Si expande las carpetas bajo la pestaña Colección, verá que tenemos un montón de solicitudes diferentes que podemos realizar. De la codificación de colores, puede notar que hay tres tipos de métodos que podemos usar:

  • GET : elmétodo GET se usa para recuperar cosas de un servidor. Use esto para obtener información sobre el saldo de su cuenta, los precios de los activos, etc.
  • POST : Bueno, generalmente use elmétodo POST para crear información en un servidor. Esto es necesario para cosas como realizar pedidos, solicitar retiros, etc.
  • DELETE : Elmétodo DELETE es una solicitud para que el servidor elimine información. Será útil para cancelar pedidos.

Encuentre la lista de símbolos y las reglas comerciales

¡Es hora de nuestra primera solicitud! Vamos a obtener los símbolos que podemos intercambiar en el intercambio y las reglas comerciales:

GET / exchangeInfo

Este no toma ningún parámetro adicional, puedes copiarlo y pegarlo en tu barra de direcciones y obtendrás una respuesta. Pero para las solicitudes en las que incluimos varios parámetros, Postman facilita su visualización y modificación.

Para cargar esta solicitud, seleccione Información de intercambio de mercado . Aparecerá una pestaña como la siguiente:

Serie API de Binance Pt. I - Comercio al contado con cartero

No es necesario que hagamos nada más aquí, así que continúe y presione Enviar . Entonces obtendrás una respuesta:

Serie API de Binance Pt. I - Comercio al contado con cartero

En la sección resaltada en la parte superior, verá información importante:

  • el estado de la respuesta ( 200 significa que hemos tenido éxito, 400-499 significa que hemos tenido un problema)

  • el tiempo necesario para recibir la respuesta (menos de un segundo)

  • el tamaño de la respuesta (~ 22 KB).

En el segundo recuadro está la mayor parte de la respuesta. Ha sido bastante impreso para que sea un poco más agradable a la vista. Contiene información sobre el intercambio en sí, así como los pares que puede comerciar y sus cantidades mínimas / máximas.

Parece mucha información, pero el formato hace que sea muy fácil trabajar con programación. Al escribir scripts para interactuar con él, podrá seleccionar fácilmente propiedades específicas de elementos específicos de la respuesta.

Consultar los saldos de la cuenta

Veamos qué activos tenemos y cuánto de cada uno:

OBTENER / cuenta

Este se puede encontrar en Información de la cuenta comercial . Haga clic en él y verá un diseño similar al anterior. Sin embargo, también notará que tenemos dos nuevas variables: marca de tiempo y firma . La firma es una medida de seguridad. Debido a que ahora estamos solicitando información sensible, se probará que era el titular de la cuenta.

La marca de tiempo le dice al servidor cuándo se envió la solicitud. Debido a que las redes pueden ser poco confiables o enfrentar tiempo de inactividad, el servidor puede recibir nuestra solicitud mucho más tarde de lo previsto. Si ha pasado demasiado tiempo, rechazará la solicitud. Puede especificar cuánto tiempo desea esperar con el parámetro recvWindow , cuyo valor predeterminado es 5000 milisegundos.

Postman se encarga de la generación de ambos campos por nosotros. Haga clic en enviar y obtendrá una respuesta. Debajo de los saldos, debería ver seis activos BNB, BTC, BUSD, ETH, LTC y TRX. El saldo se dividirá entre libre y bloqueado . Todavía no hemos cerrado ninguno, por lo que todos sus activos deberían ser gratuitos.

¡Felicitaciones por su nueva riqueza (inexistente)!

Cómo obtener el precio actual de un símbolo

Podemos obtener el precio actual de un activo de diferentes formas. Quizás el más simple sea con la siguiente solicitud:

GET / api / v3 / ticker / 24 horas

Como puede adivinar, esto nos dará información sobre los precios de los activos de las últimas veinticuatro horas. Encuéntrelo en Market 24hr Ticker Price Change Statistics . El par predeterminado fue recibido ya que la variable de símbolo es BTCUSDT .

Puede enviarlo de inmediato para ver un desglose de la información de precios. También puede cambiar el símbolo (a BNBBUSD , LTCUSDT , etc.), o puede desmarcar la variable para devolver datos para 40 pares.

También tenemos una llamada más simple ( Market Symbol Price Ticker ) que devuelve el precio actual al que se cotiza un activo:

GET / api / v3 / price

Al igual que con el anterior, puede cambiar la variable de símbolo o eliminarla por completo y obtener el último precio para todos los símbolos.

Verifique la profundidad del libro de pedidos actual

La profundidad de la cartera de pedidos (también denominada profundidad de mercado o DOM) puede decirnos mucho sobre el mercado. Vamos a hacer una llamada que nos devolverá información útil:

OBTENER api / v3 / depth

Cuando enviamos esto con los valores predeterminados (Market Order Book), se nos devolvió una respuesta que nos informa sobre las ofertas y solicita BTCUSDT. El servidor de testnet no producirá tantos datos como el real, por lo que a continuación se muestra una captura de pantalla de lo que esperaría ver en un entorno real:

Serie API de Binance Pt. I - Comercio al contado con cartero

En la sección resaltada arriba, podemos ver la primera oferta. Dado que estábamos mirando el libro por BTCUSDT, el número superior es el precio que alguien está dispuesto a pagar por su BTC. A continuación se muestra la cantidad que están dispuestos a comprar. Lo que esto dice, por lo tanto, es que esta orden pide 0.999 BTC a una tasa de 9704.65 USDT por BTC. Si continuamos desplazándonos hacia abajo, veríamos que el precio de oferta disminuye, lo que representa a los compradores que pagarían menos.

La oferta superior será, naturalmente, la más atractiva si está buscando una buena relación calidad-precio. Dicho esto, si está tratando de vender en el mercado, digamos, 3 BTC, solo podrá vender 0.999 BTC al mejor precio. Deberá aceptar las ofertas posteriores (más baratas) hasta que se complete la totalidad de su pedido.

Serie API de Binance Pt. I - Comercio al contado con cartero

Siga desplazándose y verá las preguntas. Son funcionalmente similares a las ofertas, excepto que representan órdenes para vender BTC por USDT.

Realizar un pedido de prueba

Ahora vamos a publicar un pedido de prueba.

POST api / v3 / order / test

Aunque solo usamos fondos de la red de prueba, esta solicitud en realidad no hará un pedido. Puede resultar útil para probar pedidos antes de enviarlos. Encuéntrelo en Trade Test New Order (TRADE) .

Serie API de Binance Pt. I - Comercio al contado con cartero

Puede ver que tenemos muchos más parámetros involucrados. Repasemos los marcados:

  • símbolo con el que nos hemos encontrado con este anteriormente. Este es el par que desea intercambiar.
  • lado aquí, usted estipulará si quiere COMPRAR o VENDER. Con el par BTCUSDT, COMPRAR indica que desea comprar BTC por USDT, mientras que vender venderá BTC por USDT.
  • escriba el tipo de pedido que desea enviar. Valores posibles (detallados aquí ):
    • LÍMITE
    • MERCADO
    • DETENER LA PÉRDIDA DE
    • STOP_LOSS_LIMIT
    • SACA PROVECHO
    • TAKE_PROFIT_LIMIT
    • LIMIT_MAKER
  • timeInForce este parámetro expresa cómo desea que se ejecute la orden:
    • GTC (válido hasta que se cancele), quizás la configuración más popular, GTC se asegurará de que su pedido sea válido hasta que se complete o hasta que lo cancele.
    • FOK (llenar o matar) FOK indica al intercambio que ejecute una orden de una vez. Si el intercambio no puede hacerlo, el pedido se cancela inmediatamente.
    • IOC (inmediata o cancelada) ya sea la totalidad o parte de la orden debe ejecutarse inmediatamente o se cancelará. A diferencia de FOK, los pedidos no se cancelan si se pueden completar parcialmente.
  • cantidad simplemente, la cantidad del activo que desea comprar o vender.
  • price el precio al que desea vender. Para el par BTCUSDT, esto se expresa en USDT.
  • newClientOrderId un identificador para el pedido. Este no es un campo obligatorio, pero puede establecerlo en un identificador que facilitará la consulta más adelante. De lo contrario, el intercambio lo genera aleatoriamente.

¡Okey! Creemos una orden de prueba ahora. Vamos a ir con los valores generados automáticamente: una orden de límite para vender 0.1 BTC por USDT a $ 9000. Presiona Enviar . Si esto tuvo éxito, simplemente obtendremos {} como respuesta.

Haz un pedido real

Es hora de realizar un pedido falso real.

POST / api / v3 / order

Vaya a Negociar nuevo pedido . Ya está familiarizado con los pedidos de prueba, por lo que los parámetros aquí no serán una sorpresa. Dejemos todos los valores como están, pero como eran permabulls, cambiaremos el precio al que se vendía a $ 40.000. Modifique el valor del precio para reflejar esto. Luego, presione Enviar .

Su respuesta devuelve un montón de detalles sobre el pedido si se realiza correctamente.

Verificar el estado de un pedido abierto

Recibimos la confirmación de que el pedido se realizó en la sección anterior, pero ¿y si queremos verificarlo nuevamente más tarde? Tenemos algunas solicitudes a nuestra disposición.

GET / api / v3 / openOrders

Lo encontrará en Negociar órdenes abiertas actuales (USER_DATA) . BTCUSDT está seleccionado de forma predeterminada. Si presiona Enviar , obtendrá todas sus órdenes BTCUSDT abiertas (hasta ahora, solo debería ver la que configuramos anteriormente). Puede optar por no especificar un símbolo, que devolverá todas sus órdenes abiertas en su lugar.

GET / api / v3 / allOrders

Trade All Orders (USER_DATA) le brinda una descripción general de todos los pedidos, no solo los abiertos. Aquí, debe proporcionar un símbolo. orderId , startTime , endTime y limit son parámetros opcionales que pueden ayudarlo a refinar su búsqueda. Bueno, déjalos aquí, así que desmarcalos. Pulse Enviar y verá la misma respuesta que antes. Si tenía pedidos cerrados o cancelados, también los verá aquí.

Por último, podemos consultar pedidos específicos con:

OBTENER / api / v3 / order

Obtenga esto en Orden de consulta comercial (USER_DATA) . Deberá proporcionar el orderId o el origClientOrderId (la etiqueta opcional newClientOrderId que puede agregar a los pedidos). Desmarque orderId . Para origClientOrderId , íbamos a proporcionar la etiqueta predeterminada de my_order_id_1 anterior. Complete el campo y presione Enviar para obtener la respuesta.

Cancelar un pedido

Después de un tiempo, podríamos decidir que el objetivo de $ 40,000 es demasiado optimista, por lo que queremos cancelarlo. En ese caso, usaríamos:

BORRAR / api / v3 / order

En Trade Cancel Order hay una solicitud que nos permitirá seleccionar pedidos para su cancelación. Desmarque orderId y newClientOrderId y pase my_order_id_1 como el valor de origClientOrderId .

Cuando envíe esta solicitud, se devolverá el pedido. Si se desplaza hacia abajo hasta el estado , verá que de hecho está cancelado. Para confirmar esto, use el punto final GET / api / v3 / openOrders nuevamente (lo que le brinda una lista vacía) o GET / api / v3 / order con origClientOrderId .

Realice un pedido que se llene al instante

Nuestro pedido anterior no se completó porque era un pedido límite que solo se activaría cuando el precio de BTC alcanzara los $ 40,000. Con una orden de mercado, básicamente decíamos comprar / vender a cualquier precio al que se cotiza actualmente el activo. Esto se llenará instantáneamente.

Para eso, volvamos a Trade New Order . Vamos a demostrar el tipo de respuesta ( newOrderRespType ), que es un parámetro que podemos modificar dependiendo de la respuesta que queramos obtener del servidor. Hay tres opciones aquí: ACK , RESULT o FULL . Puede ver ejemplos de cada respuesta aquí . Vamos a optar por ACK , que nos dará un simple reconocimiento de que se recibió el pedido.

A continuación, puede ver que estaban a punto de enviar una orden de mercado para vender BNB por BUSD al precio de mercado actual.

Serie API de Binance Pt. I - Comercio al contado con cartero

Tenga en cuenta que la respuesta nos da información mínima:

Serie API de Binance Pt. I - Comercio al contado con cartero

Puede verificar que el pedido se completó con el punto final / api / v3 / allOrders .

Comprobando sus operaciones

Por último, veamos el punto final para verificar sus operaciones:

OBTENER / api / v3 / myTrades

Se encuentra en la lista comercial de la cuenta comercial (USER_DATA) . Le permite verificar cada operación para un símbolo en particular. Si desea ver todas sus operaciones para el símbolo predeterminado ( BTCUSDT ), simplemente desmarque startTime , endTime y fromId . La respuesta devolverá hasta 500 operaciones, simplemente modifique el límite si desea ver más.

Depurando con Postman

En Postman, es posible revelar aún más la solicitud y respuesta HTTP sin procesar.

Serie API de Binance Pt. I - Comercio al contado con cartero

Este menú abrirá la consola Postman, que imprime los detalles de cada solicitud.

Serie API de Binance Pt. I - Comercio al contado con cartero

Pensamientos finales

El propósito de esta guía fue presentarle suavemente la API de Binance sin escribir una sola línea de código. Si lo ha seguido, ahora debería tener una idea de cómo podemos solicitar y enviar información.

En las próximas entregas de esta serie, presentaremos algunos conceptos básicos de codificación que nos permiten automatizar la compra y venta de criptomonedas y otros activos digitales.

¿Preguntas mientras tanto? Dirígete a nuestro creciente foro de la comunidad de desarrolladores de Binance o echa un vistazo a la documentación.

Thank you for rating.
RESPONDER UN COMENTARIO Cancelar respuesta
¡Por favor, escriba su nombre!
¡Por favor introduzca un correo electrónico valido!
Por favor ingrese su comentario!
¡Se requiere el campo g-recaptcha!

Deja un comentario

¡Por favor, escriba su nombre!
¡Por favor introduzca un correo electrónico valido!
Por favor ingrese su comentario!
¡Se requiere el campo g-recaptcha!