Estrategia de grid trading de la teoría oceánica
Resumen
Esta estrategia utiliza el método de trading en cuadrícula de la teoría oceánica, distribuyendo uniformemente líneas de cuadrícula dentro de un rango de precios establecido, y realizando operaciones de compra y venta según la relación entre el precio y las líneas de cuadrícula. La estrategia cuenta con funciones como el cálculo automático del rango de precios de la cuadrícula y la distribución uniforme de las líneas de cuadrícula, lo que permite controlar eficazmente el riesgo.
Principio de la estrategia
Esta estrategia primero calcula los límites superior e inferior de la cuadrícula de precios, es decir, el precio más alto y el más bajo de la cuadrícula, según la selección del usuario o la configuración predeterminada. Hay dos formas de cálculo: una es buscar el precio más alto y el más bajo dentro del período de backtesting, y la otra es calcular la media móvil de un cierto período. Luego, según la cantidad de cuadrículas establecida por el usuario, se distribuyen uniformemente las líneas de cuadrícula.
La generación de señales de trading depende de la relación entre el precio y las líneas de cuadrícula. Cuando el precio está por debajo de la línea de cuadrícula inferior, se abre una posición larga en esa línea de cuadrícula con una cantidad fija; cuando el precio está por encima de la línea de cuadrícula superior, se cierra la posición en esa línea de cuadrícula con una cantidad fija. De esta manera, a medida que el precio fluctúa, la posición también fluctúa dentro de la cuadrícula, generando ganancias.
Específicamente, la estrategia mantiene una matriz de precios de líneas de cuadrícula y una matriz booleana que indica si hay una orden pendiente en cada línea. Cuando el precio está por debajo de una línea de cuadrícula y no hay una orden pendiente en esa línea, se abre una posición larga en ese nivel de precio; cuando el precio está por encima de una línea de cuadrícula y hay una orden pendiente en la línea de cuadrícula inferior, se cierra la posición en la línea de cuadrícula inferior. De esta manera, se implementa el trading en cuadrícula.
Ventajas de la estrategia
-
Cálculo automático del rango de la cuadrícula, evitando la dificultad de la configuración manual. Se pueden seleccionar diferentes métodos de cálculo.
-
Distribución uniforme de las líneas de cuadrícula, evitando un exceso de operaciones debido a una cuadrícula densa. El número de líneas de cuadrícula es ajustable.
-
El uso del método de trading en cuadrícula permite controlar eficazmente el riesgo; mientras el precio fluctúe dentro de la cuadrícula, se pueden obtener ganancias.
-
No hay expectativas direccionales sobre el precio, adecuado para mercados con movimientos laterales.
-
Las tasas de comisión y la cantidad de posiciones se pueden personalizar para adaptarse a diferentes instrumentos de trading.
-
Visualización de las líneas de cuadrícula, lo que facilita la comprensión de la situación del trading.
Riesgos de la estrategia
-
Riesgo de ruptura del rango de la cuadrícula. Si el precio supera los límites superior e inferior de la cuadrícula, las pérdidas pueden aumentar.
-
Riesgo de una separación demasiado amplia entre las líneas de cuadrícula. Una cuadrícula demasiado amplia dificulta la obtención de ganancias, pero una demasiado estrecha aumenta las comisiones. Se debe buscar un equilibrio.
-
Riesgo de mantener posiciones durante demasiado tiempo. Mantener posiciones durante mucho tiempo dificulta la obtención de ganancias y aumenta las pérdidas por comisiones.
-
Riesgo de una configuración incorrecta de los parámetros. Por ejemplo, una configuración inadecuada del período de backtesting o del período de la media móvil puede afectar el cálculo del rango de la cuadrícula.
-
Riesgo sistémico del mercado. Esta estrategia es más adecuada para mercados con movimientos laterales, no para tendencias unidireccionales prolongadas.
Optimización de la estrategia
-
Optimizar la configuración de los parámetros de la cuadrícula. Considerando las características del mercado, los costos de transacción y otros factores, optimizar parámetros como el número de cuadrículas y el período de backtesting.
-
Ajuste dinámico del rango de la cuadrícula. Cuando el mercado experimenta cambios significativos, se puede introducir un mecanismo de ajuste dinámico del rango de la cuadrícula.
-
Incorporar un mecanismo de stop loss. Establecer un nivel de stop loss razonable para evitar pérdidas excesivas. El stop loss también puede ajustarse dinámicamente.
-
Combinar con otros indicadores para filtrar operaciones. Por ejemplo, Bandas de Bollinger, indicadores de tendencia, etc., para evitar operaciones inapropiadas.
-
Optimizar la eficiencia del uso del capital. Incorporar análisis de actividad, reduciendo las operaciones cuando la volatilidad es baja.
Conclusión
Esta estrategia utiliza el principio del trading en cuadrícula para lograr operaciones en mercados laterales con riesgo controlable. La estrategia cuenta con ventajas como el cálculo automático de la cuadrícula y la distribución uniforme de las líneas, y puede adaptarse a diferentes entornos de mercado mediante el ajuste de parámetros. El riesgo es controlable y fácil de operar. Sin embargo, la estrategia también tiene ciertas limitaciones y requiere una optimización continua para adaptarse a los cambios del mercado. En general, esta estrategia proporciona una implementación relativamente estandarizada y parametrizable para el trading en cuadrícula.
/*backtest
start: 2023-09-12 00:00:00
end: 2023-10-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("(IK) Grid Script", overlay=true, pyramiding=14, close_entries_rule="ANY", default_qty_type=strategy.cash, initial_capital=100.0, currency="USD", commission_type=strategy.commission.percent, commission_value=0.1)
i_autoBounds = input(group="Grid Bounds", title="Use Auto Bounds?", defval=true, type=input.bool) // calculate upper and lower bound of the grid automatically? This will theorhetically be less profitable, but will certainly require less attention
i_boundSrc = input(group="Grid Bounds", title="(Auto) Bound Source", defval="Hi & Low", options=["Hi & Low", "Average"]) // should bounds of the auto grid be calculated from recent High & Low, or from a Simple Moving Average- 1
