Binance Spot lanzó el algoritmo de trading del precio promedio ponderado en el tiempo (TWAP, por sus siglas en inglés) para los usuarios de API. Al utilizar la capacidad de trading algorítmica interna de Binance, los usuarios pueden dividir órdenes grandes en cantidades más pequeñas y ejecutarlas automáticamente a intervalos regulares para minimizar el impacto en el precio.
El precio promedio ponderado de tiempo, o TWAP por sus siglas en inglés, es una estrategia de ejecución de trading algorítmica. Su objetivo es conseguir un precio de ejecución promedio cercano al precio promedio ponderado de un periodo determinado.
Los traders suelen implementar el TWAP para mitigar el impacto del mercado de órdenes grandes. Los algoritmos de trading de TWAP buscan optimizar el precio promedio de una operación dividiendo la ejecución de la orden en un periodo de tiempo específico.
El TWAP suele ofrecer un mejor precio de ejecución en las siguientes situaciones:
Este es un ejemplo de patrones de ejecución del algoritmo de TWAP:

POST /sapi/v1/algo/spot/newOrderTwap
| Parámetros | Descripción |
| Símbolo | Símbolo de trading (p. ej., BTCUSDT) |
| Tipo | Modalidad de trading (p. ej., COMPRA o VENTA) |
| Importe | Importe de trading (debe ser el equivalente a un importe entre 100 y 10 000 000 de USDC) |
| Duración | Duración de la orden TWAP en segundos (300 o 86 400)
|
| limitPrice | Precio límite de la orden TWAP (la orden se ejecutará por defecto al precio del mercado) |
| Endpoint | Descripción | Enlace |
| DELETE /sapi/v1/algo/spot/order | Cancela una orden activa | https://binance-docs.github.io/apidocs/spot/en/#cancel-algo-order-trade-2 |
| GET /sapi/v1/algo/spot/openOrders | Obtener todas las órdenes en ejecución | https://binance-docs.github.io/apidocs/spot/en/#query-current-algo-open-orders-user_data-2 |
| GET /sapi/v1/algo/spot/historicalOrders | Obtener órdenes históricas | https://binance-docs.github.io/apidocs/spot/en/#query-historical-algo-orders-user_data-2 |
| GET /sapi/v1/algo/spot/subOrders | Obtener las subórdenes correspondientes para una Id. de algoritmo específico | https://binance-docs.github.io/apidocs/spot/en/#query-sub-orders-user_data-2 |
Los detalles de la transacción no estarán disponibles hasta que se hayan completado todas las órdenes TWAP. Solamente se mostrarán las órdenes parcialmente completadas. Puedes ver el importe de la transacción, el precio medio de la transacción y la comisión de trading.
Puedes recibir los siguientes mensajes de error después de una consulta inadecuada.
| Código externo | Mensaje externo |
| 0 | OK |
| -1000 | Se produjo un error desconocido durante el procesamiento de la solicitud |
| -1102 | No se envió un parámetro obligatorio, estaba vacío, era nulo o tenía un formato incorrecto |
| -20121 | Símbolo no válido |
| -20130 | Se enviaron datos no válidos para un parámetro |
| -2013 | La orden no existe |
| -5007 | El importe debe ser mayor que cero |
| -20124 | Id. del algoritmo no válida, o la Id. del algoritmo se ha completado |
| -20132 | La Id. del algoritmo del cliente está duplicada |
| -20194 | La duración es demasiado corta para ejecutar todo el importe requerido |
| -20195 | El tamaño total es demasiado pequeño |
| -20196 | El tamaño total es demasiado grande |
| -20198 | Has alcanzado el máximo de órdenes abiertas permitidas |
Efectuar una orden TWAP no garantiza que se vaya a ejecutar. Se hará todo lo posible por ejecutar las órdenes, en función de la liquidez y volatilidad del mercado.
Si el precio de mercado fluctúa de forma considerable o si la liquidez no es suficiente durante la ejecución de la orden, es posible que el algoritmo no llegue a completarse en su totalidad.
Por tanto, la ejecución dependerá siempre de la liquidez y no se garantizará la ejecución al mejor precio. Por ejemplo, si el mercado atraviesa una crisis, el algoritmo puede fallar en completar la orden antes del tiempo final especificado.
Para consultar el estado de una orden TWAP, puedes utilizar puntos de conexión de la orden de consulta (GET /sapi/v1/algo/spot/openOrders or GET /sapi/v1/algo/spot/historicalOrders).
Ten en cuenta que: