Esta estrategia se basa en la teoría de la ruptura, comparando los promedios móviles de los precios más altos y más bajos para determinar si la tendencia se está revirtiendo, con el fin de encontrar puntos de ruptura potenciales y el comercio cuando ocurre la ruptura.
Esta estrategia primero calcula los promedios móviles de los precios más altos y más bajos dentro de un período definido por el usuario. El promedio móvil de precios más alto representa la banda superior, y el promedio móvil de precios más bajo representa la banda inferior. Cuando el precio atraviesa la banda superior, señala una tendencia alcista, y la estrategia abrirá una posición larga. Cuando el precio atraviesa la banda inferior, señala una tendencia bajista, y la estrategia abrirá una posición corta. Los usuarios pueden configurar solo larga o solo corta.
La estrategia también proporciona configuraciones opcionales de stop loss y take profit. Cuando es largo, el stop loss se establece en banda superior; cuando es corto, el stop loss se establece en banda inferior. Esto reduce las pérdidas. Los usuarios también pueden elegir establecer el stop loss en el punto de ruptura, es decir, cuando es largo, el stop loss es banda inferior, y cuando es corto, el stop loss es banda superior. Esto permite un mayor potencial de ganancia.
Las ventajas de esta estrategia son:
La lógica es sencilla y directa, fácil de entender e implementar.
Puede capturar rápidamente los puntos de inversión de tendencia y ajustar las posiciones en consecuencia.
Proporciona ajustes opcionales de stop loss y take profit para adaptarse a las preferencias personales de riesgo.
Las señales comerciales son claras, sin demasiadas señales falsas.
Hay pocos parámetros configurables, fáciles de usar.
Flexibilidad para configurar solo el largo o solo el corto.
Los riesgos de esta estrategia incluyen:
La señal de fuga puede ser falsa y no puede sostenerse.
La configuración incorrecta del período de ruptura puede hacer que se pierdan las tendencias a más largo plazo.
No tiene en cuenta el volumen en la ruptura, puede causar perseguir los máximos y matar los mínimos.
Hay cierto retraso, puede perder buena parte del movimiento.
En un mercado volátil, el stop loss puede ser golpeado.
Se basa únicamente en la ruptura para el comercio, el beneficio es incierto.
La estrategia puede mejorarse en los siguientes aspectos:
Incorporar un indicador de volumen para evitar fallas, por ejemplo, el volumen aumentado en la validez de las señales de ruptura.
Optimice el parámetro del período de promedio móvil para que coincida con los cambios de tendencia en diferentes ciclos.
Establezca un umbral de retroceso después de la ruptura para una confirmación adicional para evitar una falsa ruptura.
Añadir Bandas de Bollinger, etc. en la parte superior de la base de ruptura para una guía más direccional.
Incorporar otros indicadores como RSI, MACD para señales comerciales adicionales y mejorar la precisión.
Optimizar las estrategias de stop loss y obtener beneficios para hacer frente mejor a las fluctuaciones del mercado y controlar el riesgo.
La estrategia de negociación de ruptura tiene una lógica clara de seguimiento de la ruptura de precios de las bandas superiores e inferiores para la entrada y salida. Hay un gran margen de mejora, incorporando más información de indicadores y optimizando parámetros para fortalecer la estrategia. Después de familiarizarse con la lógica básica, los operadores pueden personalizar los parámetros en función de sus necesidades y obtener buenos resultados comerciales.
/*backtest start: 2023-10-02 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's Brakeout Strategy v2.0", shorttitle = "Brakeout str 2.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") len = input(4, defval = 4, minval = 1, maxval = 1000, title = "Length") bod = input(false, defval = false, title = "Body mode") rev = input(false, defval = false, title = "Revers") showlines = input(true, defval = true, title = "Show Lines?") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Extremums min = bod ? min(open, close) : low max = bod ? max(open, close) : high upex = highest(max, len) + syminfo.mintick * 10 dnex = lowest(min, len) - syminfo.mintick * 10 col = showlines ? blue : na plot(upex, color = col, linewidth = 2) plot(dnex, color = col, linewidth = 2) //Trading lot = 0.0 lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if (not na(close[len])) and rev == false strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = upex) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dnex) if (not na(close[len])) and rev == true strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, limit = dnex) strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, limit = upex) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()