Qué es el Grid Trading de Futuros

2020-12-23 11:22
Tutorial
Cómo agregar/eliminar margen de un grid en ejecución
Preguntas frecuentes

Video tutorial

Última actualización: 11 de diciembre de 2024

Aviso legal: De conformidad con los requisitos del reglamento MiCA, las stablecoins no autorizadas están sujetas a determinadas restricciones para usuarios del EEE. Para obtener más información, haz clic aquí.

El grid trading es un bot de trading que automatiza la compra y venta de contratos de futuros. Está diseñado para generar órdenes en el mercado a intervalos preestablecidos dentro de un rango de precios configurado.

El grid trading consiste en generar órdenes por encima y por debajo de un precio establecido, lo que crea un grid de órdenes a precios crecientes y decrecientes. De esta forma, se construye el grid de trading. Por ejemplo, un trader podría generar órdenes de compra de BTC cada 1,000 USDT por debajo del precio de mercado y generar órdenes de venta cada 1,000 USDT por encima del precio de mercado para aprovechar las condiciones variables.

El grid trading es ideal para los mercados volátiles y laterales cuando los precios fluctúan en un rango determinado. Esta técnica intenta obtener beneficios de los pequeños cambios en el precio. Cuantos más grids se creen, mayor será la frecuencia de los trades. Sin embargo, conlleva un costo: la ganancia que obtengas de cada orden será menor. 

Por lo tanto, con esta estrategia estás eligiendo obtener pequeños beneficios por muchos trades en lugar de optar por una estrategia con menor frecuencia, pero que genere una ganancia por orden más alta.

¿Cómo funciona el grid trading de Binance?

El grid trading de Binance ya está en funcionamiento para los futuros USDⓈ-M y COIN-M. Puedes personalizar y establecer los límites máximo y mínimo del grid y la cantidad de grids. Una vez que se haya creado el grid, el sistema comprará y venderá órdenes de manera automática a los precios preestablecidos. 

Veamos cómo funciona.

Supongamos que piensas que, en las siguientes 24 horas, el Bitcoin va a oscilar en un rango entre 50,000 USDT y 60,000 USDT. En este caso, podrías configurar un sistema de grid trading para operar dentro de este rango previsto. 

En el panel de grid trading, puedes establecer parámetros del bot, que incluyen:

  • Los límites máximos y mínimos del precio, correspondiente al rango;
  • La cantidad de órdenes que se van a generar dentro del rango de precios configurado;
  • La amplitud entre cada orden limit de compra y venta.

En este escenario, a medida que el precio del BTC cae hacia los 55,000 USDT, el bot de grid trading irá acumulando posiciones de compra a un precio inferior al del mercado. Cuando el precio se recupere, el bot venderá al alza a un precio superior al del mercado. En esencia, esta estrategia intenta generar ganancias con los cambios de precio.

Si deseas conocer más detalles, lee ¿Qué es el Grid Trading en long o short?

Advertencia de riesgo: El grid es una herramienta estratégica de trading y no debe considerarse como un asesoramiento financiero por parte de Binance. El uso que hagas del grid trading queda a tu criterio y bajo tu propio riesgo. Binance no se hace responsable de pérdidas que puedan surgir al utilizar esta función. Es recomendable que los usuarios lean y entiendan plenamente el tutorial de grid trading, que establezcan estrategias de control del riesgo y practiquen el trading racional dentro de su capacidad financiera.

¿Cómo configurar una estrategia de grid trading?

1. Inicia sesión en tu cuenta de Binance e ingresa a [Futuros]. Haz clic en [Bots de trading] - [Grid de futuros].

Si estás usando la aplicación Binance, ve a [Futuros] - [USDⓈ-M] o [COIN-M]. Toca [Grid] en la parte inferior izquierda.

2. Selecciona un símbolo para ejecutar la estrategia y establece los parámetros del grid. Selecciona la dirección del grid (long, short o neutro), el rango, la cantidad de gris y el tamaño de la orden. Luego, selecciona [Crear] para confirmar. 

Ten en cuenta que las siguientes condiciones pueden impedir que se cree un nuevo grid correctamente:

  • Si existe un bot de grid trading activo para el símbolo elegido.
  • Si hay órdenes o posiciones abiertas asociadas al símbolo seleccionado.
  • Si la cuenta está configurada en el modo de Cobertura; debe configurarse en el modo Unidireccional.
  • Si alcanzaste el límite máximo para las estrategias de grid:
    • Puedes tener hasta 54 estrategias de grid para Futuros USDⓈ-M: 50 en margen Cruzado y 4 en margen Aislado.
    • Esto es independiente de los Futuros COIN-M, que tienen un límite de 50 estrategias de grid utilizando el mecanismo de grid trading en el margen Cruzado.

Mecanismo del Grid Trading

Utilicemos el contrato perpetuo de Futuros USDⓈ-M de BTCUSDT como ejemplo para entender el proceso de grid trading.

  • Establecer un activador del grid (opcional)
  • Definir la estructura inicial de tu estrategia del grid
  • Proceso de creación inicial del grid
  • Actualización del grid
  • Establecer un activador de stop (opcional)
  • Cancelación de la orden
Establecer un activador del grid (opcional)

Para los parámetros 10 y 11:

Puedes generar tus órdenes limit del grid de inmediato o activarlas cuando el precio de mercado alcance un valor determinado. Las órdenes del grid se activarán cuando el precio de mercado (último precio o precio de marca) esté por encima o por debajo del precio de activación que hayas ingresado.

Definir la estructura inicial de la estrategia del grid

Para los parámetros 1, 2, 3, 4 y 6:

Puedes determinar una serie de niveles de precio de acuerdo con el último precio de mercado (compra, venta, precio medio) y generar órdenes limit de venta a un precio más alto que el precio de mercado, y una orden limit de compra a un precio más bajo que el precio de mercado. Después de eso, puedes esperar a que las órdenes limit se activen y ejecuten.

¿Cómo crear el grid inicial?

En cuanto a los grids en dirección neutra, la estrategia no incluye una posición inicial. La posición inicial se establece solo cuando el mercado supera el punto de precio más cercano después de la configuración inicial.

Ejemplo:

Supongamos que estableciste los parámetros de tu estrategia como:

  • Contrato: BTCUSDT perpetuo
  • Precio mínimo: 20,000 USD
  • Precio máximo: 45,000 USD
  • Cantidad de grids: 5
  • Modo: aritmético

La distribución de los precios será la siguiente: 20,000 USDT, 25,000 USDT, 30,000 USDT, 35,000 USDT, 40,000 USDT, 45,000 USDT

Las órdenes de venta iniciales para el grid neutro se generarán por encima del precio de mercado actual. En cambio, las órdenes de compra se completarán por debajo del precio de mercado actual. Ten en cuenta que el precio más cercano al precio de mercado quedaría excluido. En este escenario, las órdenes limit iniciales del grid se completarán de la siguiente manera: 

DirecciónPrecio
Venta45,000 USDT
Venta40,000 USDT
Compra30,000 USDT
Compra25,000 USDT
Compra20,000 USDT
Actualización del grid

La actualización del grid se refiere a que, cada vez que se toca un punto de precio, es decir, se completa una orden limit, la orden limit del grid se actualizará al momento. El precio de la orden que se ejecutó más recientemente siempre será el que esté desactivado, lo que significa que no activará ninguna orden. Luego, las órdenes limit de compra y venta se completan de nuevo según los parámetros ya establecidos para seguir manteniendo el número de órdenes limit en el grid.

Por ejemplo, el precio de mercado inicial es 10,010 USDT y el precio límite del grid en cada unidad es el siguiente:

Precio

Dirección

10,200 USDT

Venta

10,100 USDT

Venta

10,000 USDT

Compra

9,900 USDT

Compra

9,800 USDT

Compra

Suponiendo que el precio baje a 10,000 USDT y se ejecute la orden de compra (la posición abierta inicial), las órdenes limit del grid pasarán a ser así:

Precio

Dirección

10,200 USDT

Venta

10,100 USDT

Venta

10,000 USDT

-

9,900 USDT

Compra

9,800 USDT

Compra

Supongamos que el precio luego aumenta a 10,100 USDT, lo que activaría la ejecución de la orden de venta de 10,100 USDT. De ser así, las órdenes limit del grid se actualizarán de la siguiente manera:

Precio

Dirección

10,200 USDT

Venta

10,100 USDT

-

10,000 USDT

Compra

9,900 USDT

Compra

9,800 USDT

Compra

Si después de eso el precio cae a 9,900 USDT, se ejecutan entonces las dos órdenes de compra (de 10,000 USDT y 9,900 USDT) y las órdenes limit del grid se actualizarán posteriormente de esta manera:

Precio

Dirección

10,200 USDT

Venta

10,100 USDT

Venta

10,000 USDT

Venta

9,900 USDT

-

9,800 USDT

Compra

Y así sucesivamente.

Establecer un activador de stop (opcional)

Para el parámetro 12:

Puedes finalizar manualmente la operación de grid o establecer un activador Stop. Hay tres opciones para configurar los activadores de Stop:

  • Activador de precio: se activa cuando el último precio o el precio de referencia del grid alcanza el precio take-profit o stop-loss que hayas establecido, lo que hace que el grid finalice.
  • Activador de PnL: se activa cuando las ganancias totales del grid (calculadas por el precio de referencia) alcanzan las PnL de take-profit o stop-loss que hayas establecido, lo que provoca la finalización del grid.
  • Activador del porcentaje de ROI: el sistema calcula las PnL correspondientes en función del porcentaje de ROI que hayas establecido, y el grid finaliza cuando las ganancias totales (calculadas por el precio de referencia) alcanzan el nivel de take-profit o stop-loss especificado.

También puedes establecer si quieres mantener la posición abierta cuando el take-profit y el stop-loss del grid activen la finalización. Esta configuración es independiente de otras situaciones de finalización, como la finalización por margen insuficiente.

Para el parámetro n.º 13:

Habilita [Abrir una posición con la creación] para abrir una posición automáticamente al precio de mercado cuando se cree el grid. Si no se habilita, el sistema no abrirá una posición después de la creación del grid. Esta funcionalidad es solo para los grids sin Trailing.

Ten en cuenta que, mientras el grid esté en funcionamiento, los siguientes escenarios provocarán la finalización del grid:

  • Cierre manual del grid.
  • El margin insuficiente puede ocasionar que algunas posiciones se liquiden o no se coloquen.
  • Cuando se entrega el contrato, el producto deja de existir y la estrategia del grid se detendrá automáticamente. Durante el proceso de entrega, el sistema eliminará automáticamente tus órdenes limit y liquidará las posiciones abiertas.

El sistema te notificará si un grid se encuentra actualmente en funcionamiento. Por ejemplo, el apalancamiento recomendado para el grid trading es inferior a 20x. Si el apalancamiento sigue siendo superior a 20x, verás un segundo recordatorio para bajarlo.

¿Cómo se configuran los parámetros de Grid Trading?

Selecciona el contrato en el que se usará el bot de trading. 

1. Apalancamiento para el grid trading

Primero ajusta el apalancamiento. Ten en cuenta que el apalancamiento aumenta tanto las probabilidades de ganancias como de pérdidas. Con él, podrás aumentar los movimientos de precio relativamente pequeños para generar ganancias. Sin embargo, el apalancamiento es un arma de doble filo; úsalo con prudencia.

2. Precio mínimo o máximo 

* No se puede modificar después de generar la orden del grid.

Establece los precios mínimo y máximo del grid. Si se superan estos precios, no se abrirán más posiciones. Por ejemplo, si el precio actual del futuro perpetuo BTCUSDT es 48,000 USDT y crees que el precio caerá cuando supere los 49,000 USDT, puedes establecer el precio máximo en 49,000 USDT. Una vez que el precio alcance los 49,000 USDT, el grid dejará de abrir posiciones.

3. Modo aritmético/geométrico:

* No se puede modificar después de generar la orden del grid.

Aritmético: cada grid tendrá una diferencia de precios equitativa.

El grid aritmético divide el rango de precios de grid_lower_limit a grid_upper_limit entre grid_count por una diferencia de precios igual.

El diferencial de precios entre cada grid es:

price_diff = (grid_upper_limit - grid_lower_limit) / grid_count

Luego se construye una serie de intervalos entre precios:

price_1 = grid_lower_limit

price_2 = grid_lower_limit + price_diff

price_3 = grid_lower_limit + price_diff * 2

...

price_n = grid_lower_limit + price_diff * (n-1)

En grid_upper_limit, n = grid_count

Ejemplo: price_diff aritmético = 100: 1,000, 1,100, 1,200, 1,300, 1,400,... (el siguiente precio es 100 más alto que el anterior)

Geométrico: cada grid tendrá una proporción diferencial de precio equitativa.

El grid geométrico divide el rango de precios de grid_lower_limit a grid_upper_limit entre el grid_count por un ratio de precios igual.

El precio promedio en cada grid sería de:

price_ratio = (grid_upper_limit / grid_lower_limit) ^ (1/grid_count)

El diferencial de precios entre cada grid es:

price_diff_percentage = ( (grid_upper_limit / grid_lower_limit) ^ (1/grid_count) - 1) * 100%

Luego se construye una serie de intervalos entre precios:

price_1 = grid_lower_limit

price_2 = grid_lower_limit * price_ratio

price_3 = grid_lower_limit * price_ratio ^ 2

...

price_n = grid_lower_limit * price_ratio ^ (n-1)

En grid_upper_limit, n = grid_count

Ejemplo: price_diff_percentage geométrico = 10%: 1,000, 1,100, 1,210, 1,331, 1,464.1... (el siguiente precio es un 10% más alto que el anterior)

4. Grids (es decir, cantidad de órdenes limit) 

* No se puede modificar después de generar la orden del grid.

  • Mínimo: 2 
  • Máximo: 169

Nota: La diferencia de precios no puede ser menor al tamaño de tick, de lo contrario, se requerirá un ajuste en el Grid_count o en el límite mínimo/máximo del grid.

¿Cómo se calcula?

1) Grid aritmético, price_diff = (grid_upper_limit - grid_lower_limit) ÷ gridCount

2) Grid geométrico, min_price_diff = grid_lower_limit x price_ratio

5. Ganancia/Grid (después de deducir las comisiones de trading)

Si la ganancia o el grid es inferior a la comisión de maker, se te notificará que la ganancia total del grid podría no cubrir las comisiones de trading.

¿Cómo se calcula? (La ganancia/grid que se muestra es solo de referencia)

1) Grid aritmético

d = (grid_upper_limit - grid_lower_limit) / grid_count

c = TradingFeeRate (tu tasa de comisión de maker actual)

profit_per_grid_lower = (grid_upper_limit * (1-c)) / (grid_upper_limit-d) - 1 - c

profit_per_grid_higher = (1-c) * d / grid_lower_limit-2c

Ejemplo: Intervalo de precios = 1,000 - 2,000, Grid_count = 10, Comisión = 0.1%

La diferencia de precio de cada grid es = (2000-1000) / 10 = 100

profit_per_grid_lower = (2000*(1-0.1%)) / (2000-100) - 1 - 0.1% = 5.05%

profit_per_grid_higher = (1-0.1%) * 100 / 1,000 - 2 * 0.1% = 9.79%

2) Grid geométrico

r = (grid_upper_limit/grid_lower_limit) ^ (1/grid_count)

c = TradingFeeRate (tu tasa de comisión de maker actual)

profit_per_grid_geo = (1-c) x r - 1 - c

Ejemplo: Intervalo de precios = 1,000 - 2,000, Grid_count = 10, Comisión = 0.1%

La relación de precios de cada grid es = (2,000 ÷ 1,000) ^ (1 ÷ 10) = 107.18%

Ganancia/grid = (1 - 0.1%) * 107.18% - 1 - 0.1% = 6.97%

6. Inversión

* No se puede modificar después de generar la orden del grid.

Inversión = valor_inicial/apalancamiento

Puedes ajustar el porcentaje de la cantidad invertible hasta el 100% (Margen inicial = porcentaje * balance de margen). Te en cuenta que debe estar dentro del intervalo entre el min_initial_margin y el balance de margen.

Para el grid de Futuros USDⓈ-M:

Cálculo de min grid qty:

min grid qty = max(minQty, minNotional/grid_lower_limit)

  • Dirección neutra

min_initial_margin= min grid qty x sum (price)/(leverage x adjust_coef)

  • Grid con dirección short o long

El “assuming price” (precio supuesto) se define según estas fórmulas: 

assuming_price (COMPRA) = price* 

assuming_price (VENTA) = max (mark_price, price)

* “price” se refiere al precio de cada orden de la estrategia de grid trading establecido automáticamente según los parámetros del grid. Esta definición aplica para cada caso en que “price” aparezca entre comillas en este artículo.

min_initial_margin = sum (min grid qty * assuming price + leverage * min grid qty * abs {min [0, side * (mark price - price)]}) / (leverage * adjust_coef)

Nota: Si estableciste un precio de activación, el precio de marca debe ser sustituido por el precio de activación.

Para el grid de Futuros COIN-M:

Calcula la cantidad mínima de grids:

cant. mín. grid = minQty

  • Dirección neutra

min_initial_margin = min grid qty * sum (contract_multiplier / price) / (leverage * adjust_coef)

  • Grid con dirección short o long

Define el precio supuesto: 

precio supuesto (COMPRA)= min.(precio de referencia, precio) 

precio supuesto (VENTA) = precio

min_initial_margin = min grid qty * sum (contract_multiplier /assuming price + leverage * contract_multiplier * abs {min [0, side * (1 / Order's Price - 1 / mark price)]}) / (leverage * adjust_coef)43

* "min grid qty” es el monto mínimo de trading del símbolo. Puedes encontrar más detalles en la página de las Reglas de trading.

* Si estableciste un precio de activación, el precio de marca debe ser sustituido por el precio de activación.

* Actualmente, adjust_coef tiene un valor predeterminado de 0.8. Se ajustará según las condiciones de mercado.

7. Inversión total

No se puede modificar una vez generada la orden de grid
Inversión total = Margen inicial x apalancamiento

8. Cantidad/Orden

Para el grid de Futuros USDⓈ-M:

Dirección neutra:

grid_qty = adjust_coef * initial_margin * leverage / sum (price)

Grid con dirección short o long:

“assuming price” se define según esta fórmula: 

assuming_price (COMPRA) = price

assuming_price (VENTA) = max (mark_price, price)

grid qty = adjust_coef x initial_margin x Leverage ÷ sum (assuming_price + leverage x abs (min (0, side x (mark_price-price)) ) )

* Si estableciste un precio de activación, el precio de marca debe ser sustituido por el precio de activación.

Para el grid de futuros COIN-M:

Dirección neutra:

grid qty = adjust_coef * initial_margin * leverage / sum (1 / price)

Grid con dirección short o long:

El “assuming price” (precio supuesto) se define según esta fórmula: 

assuming_price (COMPRA)  = min(mark price, price)

assuming_price (VENTA) = price

grid qty = adjust_coef x initial_margin x Leverage ÷ sum(contract_multiplier ÷ assuming_price + leverage x contract_multiplier x abs(min(0, side x (1 ÷ price - 1 ÷ mark price)) ) )

* Si estableciste un precio de activación, el precio de marca debe ser sustituido por el precio de activación.

9. Balance de margen disponible

En el modo Predeterminado, se mostrará el saldo de margen de tu cuenta de Futuros USDⓈ-M o COIN-M. En el modo de Margen de cartera, verás el saldo disponible en tu billetera Spot.

10. Trigger_type: Último precio / Precio de marca

* Opcional, se puede modificar antes de que se active el grid.

1) Tipo de activador del grid: Cuando el último precio o el precio de mercado que elijas alcance el precio de activación, el grid comenzará a funcionar.

2) Tipo de activador de stop: Cuando el último precio o el precio de mercado alcance el precio stop máximo o mínimo, el grid se detendrá.

11. Trigger_price

* Opcional, se puede modificar después de generar una orden de grid.

Tu orden del grid se activará cuando el último precio o el precio de marca suba o baje del precio de activación que hayas establecido.

12. Activador Stop

* Opcional, se puede modificar después de generar la orden del grid.

1. Activador de precio

  • Para un grid en dirección neutral, se llama precio Stop Top
  • Para un grid en long, se llama precio Take Profit
  • Para un grid en short, se llama precio Stop Loss

El precio stop_upper_limit debe ser mayor que el precio máximo, el último precio y el precio de activación. Cuando el último precio de mercado alcanza el Stop_upper_limit, el grid dejará de funcionar.

Stop_lower_limit price

  • Para un grid en dirección neutral, se llama precio Stop Bottom
  • Para un grid en long, se llama precio Stop Loss
  • Para un grid en short, se llama precio Take Profit

El precio stop_lower_limit debe ser menor que el precio mínimo, el último precio y el precio de activación. Cuando el último precio de mercado alcance el Stop_lower_limit, el grid dejará de funcionar.

2. Activador de PnL

El cálculo de la ganancia total será según el precio de referencia, que puede no ser coherente con los datos que se muestran en la página (los datos que se muestran en la página se calculan en función del último precio).

3. Activador de porcentaje de ROI

El sistema calculará las PnL correspondientes al porcentaje de ROI que hayas ingresado y determinará si se cumplen las condiciones para activar el TP/SL en función de las PnL estimadas.

4. Cerrar todas las posiciones en Stop TP/SL

También puedes establecer si quieres o no mantener la posición abierta cuando el take profit o el stop loss del grid activen la finalización. Esta configuración es independiente de otras situaciones de finalización, como la finalización por margen insuficiente.

13. Abre una posición en el momento de la creación

Los usuarios pueden crear un grid de futuros en largo o corto con o sin abrir una posición. Si esta casilla está marcada, las posiciones se abrirán cuando se cree el grid. Si no está marcada, no se abrirá ninguna posición. Para obtener más información, consulta estas Preguntas frecuentes.

14. Cerrar todas las posiciones en stop

* Opcional, se puede modificar después de generar la orden del grid.

Puedes activar esta función para cerrar automáticamente todas las posiciones abiertas del símbolo al precio de mercado cuando se detenga el grid. Esta opción no afectará a tu configuración de TP/SL. Si el precio alcanza el TP o el SL, tus posiciones se cerrarán o permanecerán abiertas en función de la configuración de tu TP/SL.

* Ten en cuenta que las sugerencias de configuración de parámetros anteriores son solo de referencia. El trading de futuros conlleva un riesgo sustancial y la posibilidad de incurrir en ganancias y pérdidas significativas. Las ganancias anteriores no son indicativas de ganancias futuras. Todo tu balance de margen podría ser liquidado en caso de un movimiento extremo de los precios. Binance no será responsable de ninguna de tus pérdidas.

¿Cómo calcular el margen actual?

position_notional = Latest_Mark_Price * size

position_notional_value = abs (position notional)

present notional = max (abs (position_notional + bid_notional de la orden abierta), abs (position_notional - ask_notional de la orden abierta))

*Abs: valor absoluto

ask_notional de la orden abierta = askNotional

bid_notional de la orden abierta = bidNotional

  • Margen cruzado:
    Margen actual = nocional actual ÷ apalancamiento actual
     
  • Margen aislado:
    Margen actual = (nocional actual - position_notional_value) ÷ apalancamiento + isolatedWalletBalance