La estrategia de compra de la caja de Darvas es una versión modificada de la estrategia de la caja de Darvas que solo se hace larga durante un mercado alcista.
Esta estrategia se basa en la teoría de la caja de Darvas. La teoría de la caja de Darvas cree que cuando el precio sale de la caja después de una consolidación, es una buena señal de entrada larga.
Específicamente, la estrategia primero calcula el mínimo más bajo en los últimos 5 días para trazar la banda inferior de la caja. Luego calcula el máximo más alto en los últimos 5 días para trazar la banda superior. Cuando el precio de cierre se rompe por encima de la banda superior, indica que la tendencia se ha vuelto alcista y va largo en el precio de cierre.
Después de ir largo, la estrategia establece el stop loss cerca de la banda inferior de la caja, y el take profit en 5 veces el tamaño del stop loss.
Las ventajas de esta estrategia incluyen:
Usar la teoría de la caja para identificar las entradas largas de persecución puede filtrar efectivamente algo de ruido.
Solo ir largo en la señal de ruptura clara evita muchas operaciones al azar innecesarias.
Tener un stop loss y un take profit predefinidos puede controlar bien el riesgo.
Sólo comprar breakouts durante el mercado alcista evita los riesgos de mercados agitados y bajistas.
También hay algunos riesgos con esta estrategia:
La teoría de la caja no es perfecta, la ruptura no garantiza un mayor aumento.
En el caso de los instrumentos financieros, el riesgo de pérdida se calcula en función de la situación de los activos financieros.
No hay mecanismo de salida, la retención a largo plazo puede ser riesgosa.
Los parámetros pueden necesitar ajustes para diferentes mercados.
Algunos métodos para optimizar y mejorar en función de los riesgos:
Combinar con más indicadores para confirmar la fiabilidad de las señales de ruptura.
Considere esperar a que vuelva a hacerse la prueba o el segundo escape para confirmarlo antes de entrar.
Agregue el stop loss para bloquear las ganancias.
Prueba y optimización de parámetros utilizando diferentes datos de mercado.
Algunas direcciones en las que esta estrategia puede mejorarse son:
Optimizar el parámetro de la caja, probar si diferentes parámetros del día pueden obtener mejores resultados.
Añadir indicadores de filtrado para garantizar que las compras se ajusten a una tendencia al alza.
Optimizar el stop loss y obtener ganancias para diferentes mercados.
Agregue el stop loss para seguir las ganancias.
Agregue señales de salida para obtener ganancias cuando haya una retirada.
La estrategia de compra de la caja Darvas es una estrategia simple pero efectiva de búsqueda de tendencias basada en la teoría de Darvas. Solo se utiliza para señales de compra claras para evitar operaciones al azar innecesarias. También tiene un stop loss predefinido y toma ganancias para controlar el riesgo.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Darvas Box Strategy - Buy Only", overlay=true) start_date = timestamp(2023, 10, 15, 0, 0) boxp = input(5, "BOX LENGTH") LL = lowest(low, boxp) k1 = highest(high, boxp) k2 = highest(high, boxp - 1) k3 = highest(high, boxp - 2) NH = valuewhen(high > k1[1], high, 0) box1 = k3 < k2 TopBox = valuewhen(barssince(high > k1[1]) == boxp - 2 and box1, NH, 0) BottomBox = valuewhen(barssince(high > k1[1]) == boxp - 2 and box1, LL, 0) plot(TopBox, linewidth=2, color=color.green, title="TopBox") plot(BottomBox, linewidth=2, color=color.red, title="BottomBox") // Define entry conditions enterLong = crossover(close, TopBox) // Define exit conditions exitLong = false // No specific exit condition mentioned in the original script // Define stop loss level stopLoss = BottomBox // Define take profit level (2 times the stop loss) takeProfit = stopLoss * 5 // Execute buy trade and set stop loss and take profit strategy.entry("Buy", strategy.long, when = enterLong) strategy.exit("Exit", "Buy", stop = stopLoss, limit = takeProfit) // Plot buy signal arrow plotshape(enterLong, title = "Buy Signal", style = shape.labelup, location = location.belowbar, color = color.green) // Plot stop loss level plot(stopLoss, linewidth=2, color=color.red, title="Stop Loss Level") // Plot take profit level plot(takeProfit, linewidth=2, color=color.rgb(19, 202, 111), title="Take Profit Level") // Hide sell signal arrow plotshape(false, title = "Sell Signal", style = shape.labeldown, location = location.abovebar, color = color.red, transp = 100)