𝑴𝒂𝒓𝒊𝒐𝒍𝒖𝒊𝒔\o/ :
//@version=5
strategy("Estrategia de Ruptura de Rango", overlay=true, initial_capital=10000)
// ---- Parámetros de Entrada ----
longitudRango = input.int(20, "Períodos del Rango", minval=5)
multiplicadorATR = input.float(1.5, "Multiplicador ATR (Stop Loss)", step=0.1)
// ---- Cálculo del Rango ----
// Calculamos el máximo y mínimo de los últimos 'n' períodos
rangoAlto = ta.highest(high, longitudRango)
rangoBajo = ta.lowest(low, longitudRango)
// ---- Visualización ----
plot(rangoAlto, color=color.green, title="Resistencia del Rango")
plot(rangoBajo, color=color.red, title="Soporte del Rango")
// ---- Lógica de Entrada (Breakout) ----
// Compramos si el precio cierra por encima del rango
longCondition = ta.crossover(close, rangoAlto)
if (longCondition)
strategy.entry("Compra", strategy.long)
// Vendemos (corto) si el precio cierra por debajo del rango
shortCondition = ta.crossunder(close, rangoBajo)
if (shortCondition)
strategy.entry("Venta", strategy.short)
// ---- Gestión de Riesgo (Salidas) ----
// Usamos el ATR para un Stop Loss dinámico o cerramos cuando toque el lado opuesto
if (ta.crossunder(close, rangoAlto) and strategy.position_size > 0)
strategy.close("Compra", comment="Cierre por regreso")
if (ta.crossover(close, rangoBajo) and strategy.position_size < 0)
strategy.close("Venta", comment="Cierre por regreso")
2026-04-23 05:21:41