
La estrategia es un sistema de negociación basado en rupturas de líneas de tendencia, que combina los conceptos de promedios móviles y rupturas de precios. El núcleo de la estrategia es generar señales de negociación mediante la monitorización de las rupturas de los precios de cierre y cierre con respecto a las medias móviles, y establecer paros para administrar el riesgo en función de los mínimos más recientes y las paradas en proporción de 2: 1. La estrategia utiliza una simple media móvil como indicador de tendencia y juzga el cambio de dirección de la tendencia a través de la cruz de los precios con la línea media.
La estrategia utiliza una media móvil simple (SMA) de 20 períodos como indicador de tendencia. Cuando el precio de cierre se rompe desde debajo de la línea media hacia arriba, el sistema genera una señal múltiple. El punto de parada se establece en el punto más bajo de las últimas 7 líneas K, para evitar estar demasiado cerca del punto de entrada. La configuración de la posición de parada adopta la clásica pérdida de 2: 1, es decir, la distancia de parada es el doble de la distancia de parada.
Esta es una estrategia de seguimiento de tendencias estructurada y con claridad lógica. Generar señales a través de la ruptura de las medias móviles, junto con un mecanismo de gestión de riesgos razonable, tiene una buena utilidad. Aunque existen algunos riesgos inherentes, la estabilidad y rentabilidad de la estrategia se pueden mejorar aún más mediante la orientación de optimización recomendada.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Trend Breakout with SL and TP", overlay=true)
// Parametrlar
length = input(25, title="Length for SL Calculation")
trendLength = input(20, title="Trend Line Length")
// Trend chizig'ini hisoblash
trendLine = ta.sma(close, trendLength)
// Yopilish narxi trend chizig'ini yorib o'tganda signal
longSignal = close > trendLine and close[1] <= trendLine
// Oxirgi 7 shamning minimumini hisoblash
lowestLow = ta.lowest(low, 7)
// Stop Loss darajasini belgilash
longSL = lowestLow // SL oxirgi 7 shamning minimumiga teng
// Take Profit darajasini SL ga nisbatan 2 baravar ko'p qilib belgilash
longTP = longSL + (close - longSL) * 2 // TP 2:1 nisbatida
// Savdo bajarish
if longSignal
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit", "Long", limit=longTP)
strategy.exit("Stop Loss", "Long", stop=longSL)
// Grafikda trend chizig'ini chizish
plot(trendLine, title="Trend Line", color=color.blue, linewidth=2)
// Signal chizish
plotshape(longSignal, style=shape.labelup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
// SL va TP darajalarini ko'rsatish
// if longSignal
// // SL chizig'i
// line.new(bar_index, longSL, bar_index + 1, longSL, color=color.red, width=2, style=line.style_dashed)
// // TP chizig'i
// line.new(bar_index, longTP, bar_index + 1, longTP, color=color.green, width=2, style=line.style_dashed)
// // SL va TP label'larini ko'rsatish
// label.new(bar_index, longSL, "SL: " + str.tostring(longSL), color=color.red, style=label.style_label_down, textcolor=color.white, size=size.small)
// label.new(bar_index, longTP, "TP: " + str.tostring(longTP), color=color.green, style=label.style_label_up, textcolor=color.white, size=size.small)