Este artículo presenta un sistema de trading de seguimiento de tendencias que combina Darvas Box y 25 period Moving Average (MA25). La estrategia identifica zonas de consolidación de precios a través de la formación de cajas y confirma tendencias con promedios móviles para capturar fuertes movimientos del mercado durante los breakouts.
La estrategia consta de tres componentes principales:
La estrategia construye un sistema de negociación robusto mediante la combinación de la teoría clásica de la caja de Darvas con la tendencia de la media móvil. Su principal ventaja radica en la captura efectiva de los mercados de tendencia mientras se controla el riesgo a través de múltiples mecanismos de filtrado. Aunque hay algún retraso inherente, la estrategia puede lograr un rendimiento estable en los mercados de tendencia a través de la optimización adecuada de parámetros y la gestión de riesgos. Se aconseja a los operadores que se centren en la selección del entorno del mercado y ajusten dinámicamente los parámetros en función de las condiciones reales al implementar la estrategia.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("DARVAS BOX with MA25 Buy Condition", overlay=true, shorttitle="AEG DARVAS") // Input for box length boxp = input.int(5, "BOX LENGTH") // Calculate 25-period moving average ma25 = ta.sma(close, 25) // Lowest low and highest high within the box period LL = ta.lowest(low, boxp) k1 = ta.highest(high, boxp) k2 = ta.highest(high, boxp - 1) k3 = ta.highest(high, boxp - 2) // New high detection NH = ta.valuewhen(high > k1[1], high, 0) // Logic to detect top and bottom of Darvas Box box1 = k3 < k2 TopBox = ta.valuewhen(ta.barssince(high > k1[1]) == boxp - 2 and box1, NH, 0) BottomBox = ta.valuewhen(ta.barssince(high > k1[1]) == boxp - 2 and box1, LL, 0) // Plot the top and bottom Darvas Box lines plot(TopBox, linewidth=3, color=color.green, title="Top Box") plot(BottomBox, linewidth=3, color=color.red, title="Bottom Box") plot(ma25, color=#2195f31e, linewidth=2, title="ma25") // --- Buy and Sell conditions --- // Buy when price breaks above the Darvas Box AND MA15 buyCondition = ta.crossover(close, TopBox) and close > ma25 // Sell when price drops below the Darvas Box sellCondition = ta.crossunder(close, BottomBox) // --- Buy and Sell Signals --- // Plot BUY+ and SELL labels plotshape(series=buyCondition, title="Buy+ Signal", location=location.abovebar, color=#72d174d3, style=shape.labeldown, text="BUY") plotshape(series=sellCondition, title="Sell Signal", location=location.belowbar, color=color.rgb(234, 62, 62, 28), style=shape.labelup, text="SELL") // --- Strategy execution --- if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.close("Buy")