La Estrategia Dinámica de Breakout de Canales de Soporte y Resistencia es una estrategia poderosa para identificar los niveles clave de soporte y resistencia y señales de ruptura.
La estrategia calcula dinámicamente los niveles de soporte y resistencia basados en barras izquierdas y derechas definidas por el usuario. Esto proporciona flexibilidad para adaptarse a las condiciones cambiantes del mercado. Genera señales de compra y venta cuando el precio de cierre cruza estos niveles de soporte y resistencia, junto con la confirmación de volumen. Además, la estrategia integra la ejecución automatizada de posiciones LONG / SHORT basadas en las condiciones definidas de soporte y resistencia, agilizando el proceso de negociación en general.
Específicamente, la estrategia calcula los niveles de soporte y resistencia dinámicos utilizando las funciones ta.pivotlow y ta.pivothigh. Estas líneas de soporte y resistencia se trazan en colores rojos y azules en el gráfico. Cuando el precio de cierre rompe estos niveles, se dibujan marcas de forma
La estrategia tiene las siguientes ventajas:
En general, la estrategia identifica, visualiza y capitaliza de manera exhaustiva los puntos clave de ruptura de soporte y resistencia, lo que facilita en gran medida a los operadores la selección del momento óptimo de negociación y mejora significativamente las posibilidades de éxito comercial.
Los riesgos potenciales de la estrategia incluyen principalmente:
El riesgo de ruptura no válido: los puntos de ruptura pueden formar rupturas falsas, lo que conduce a pérdidas innecesarias. Esto puede mitigarse estableciendo requisitos de confirmación de volumen y fluctuación de precios más estrictos.
El riesgo de optimización de parámetros. Se pueden calcular niveles de soporte y resistencia inexactos si las barras izquierda/derecha, etc., se establecen de manera inadecuada. Las barras izquierda/derecha adecuadas deben seleccionarse de acuerdo con las características comerciales de diferentes productos.
Riesgo de sobreoptimización. La optimización excesiva de parámetros puede conducir a un sobreajuste. Se debe realizar una verificación y validación adecuadas para evitar la sobreoptimización en datos limitados.
El riesgo de costes de transacción. Las operaciones frecuentes pueden dar lugar a comisiones más altas. Se deben considerar factores de obtención de ganancias u otros medios para controlar la frecuencia de las operaciones.
La estrategia puede mejorarse en los siguientes aspectos:
Añadir condiciones de stop loss para controlar pérdidas individuales.
Optimizar los factores de obtención de beneficios para determinar los puntos óptimos de obtención de beneficios.
Prueba diferentes combinaciones de parámetros para determinar los parámetros óptimos.
Ajuste la barra izquierda/derecha basado en diferentes productos.
Añadir otros filtros, por ejemplo, la volatilidad de los precios para medir mejor la probabilidad de ruptura.
Pruebe con diferentes indicadores de confirmación de volumen, por ejemplo, los despegos de alto volumen.
Incorporar otras estrategias o indicadores para lograr una mejor integración.
La estrategia de ruptura del canal de soporte y resistencia dinámico aprovecha los conceptos de soporte y resistencia del análisis de gráficos técnicos, junto con el análisis de volumen para confirmar la importancia de las rupturas, para descubrir efectivamente los puntos críticos de inflexión en el mercado. Su diseño de interfaz simple pero elegante, el trazado del indicador y la señal solicitan barreras técnicas mucho más bajas. Mientras tanto, las configuraciones de parámetros personalizables e integrables hacen que sea fácil de incorporar con las propias estrategias de los operadores. En resumen, esta es una estrategia comercial cuantitativa integral y altamente práctica.
/*backtest start: 2024-01-10 00:00:00 end: 2024-01-17 00:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Support and Resistance channel with Breaks p5", shorttitle="Support and Resistance channel with Breaks [cryptoonchain]", overlay=true, max_bars_back=1000) // Input variables toggleBreaks = input(true, title="Show Breaks") leftBars = input(15, title="Left Bars") rightBars = input(15, title="Right Bars") volumeThresh = input(20, title="Volume Threshold") // Calculate pivot levels highUsePivot = fixnan(ta.pivothigh(leftBars, rightBars)[1]) lowUsePivot = fixnan(ta.pivotlow(leftBars, rightBars)[1]) // Plot resistance and support lines r1 = plot(highUsePivot, color=color.new(na(highUsePivot) ? na : #FF0000, 0), linewidth=3, offset=-(rightBars + 1), title="Resistance") s1 = plot(lowUsePivot, color=color.new(na(lowUsePivot) ? na : #233dee, 0), linewidth=3, offset=-(rightBars + 1), title="Support") // Volume % short = ta.ema(volume, 5) long = ta.ema(volume, 10) osc = 100 * (short - long) / long // Plot shapes for breaks with volume plotshape(toggleBreaks and ta.crossunder(close, lowUsePivot) and not (open - close < high - open) and osc > volumeThresh, title="Break", text='B', style=shape.labeldown, location=location.abovebar, color=color.red, textcolor=color.white, transp=0, size=size.tiny) plotshape(toggleBreaks and ta.crossover(close, highUsePivot) and not (open - low > close - open) and osc > volumeThresh, title="Break", text='B', style=shape.labelup, location=location.belowbar, color=color.green, textcolor=color.white, transp=0, size=size.tiny) // Alert conditions alertcondition(ta.crossunder(close, lowUsePivot) and osc > volumeThresh, title="Support Broken", message="Support Broken") alertcondition(ta.crossover(close, highUsePivot) and osc > volumeThresh, title="Resistance Broken", message="Resistance Broken") // Strategy conditions with filter longCondition = low > highUsePivot and osc > volumeThresh shortCondition = high < lowUsePivot and osc > volumeThresh // Strategy entries strategy.entry("My Long Entry Id", strategy.long, when=longCondition) strategy.entry("My Short Entry Id", strategy.short, when=shortCondition)