// === PARÁMETROS ===
periodoTP = 50
periodoSL = 150
emaTP = ExponentialAverage[periodoTP](close)
emaSL = Average[periodoSL,1](close)
// === VARIABLES DE CONTROL ===
ONCE enPosicion = 0
ONCE tipoSalida = 0 // 1 = TP, -1 = SL
// === DETECCIÓN DE ENTRADA ===
entradaAlcista = emaTP CROSSES OVER emaSL
IF enPosicion = 0 AND entradaAlcista THEN
enPosicion = 1
precioEntrada = close
barEntrada = barindex
tipoSalida = 0
drawarrowup(barindex,emaSL)coloured("green")
ENDIF
// === GESTIÓN DE SALIDA ===
IF enPosicion = 1 THEN
// Stop Loss si toca la EMA150
IF low <= emaSL THEN
enPosicion = 0
tipoSalida = -1
precioSalida = emaSL
barSalida = barindex
drawarrowdown(barindex,emaTP)coloured("red")
// Take Profit si toca la EMA50 (tras haber subido)
ELSIF high >= precioEntrada AND low <= emaTP THEN
enPosicion = 0
tipoSalida = 1
precioSalida = emaTP
barSalida = barindex
drawarrowdown(barindex,high)coloured("red")
ENDIF
ENDIF
// === VISUALIZACIÓN ===
IF enPosicion = 1 THEN
transparencia=255
else
transparencia=30
ENDIF
// === DEVOLVER CURVAS PARA EL CHART ===
RETURN emaTP AS "EMA 50 (TP)"coloured("blue",transparencia), emaSL AS "EMA 150 (SL)"coloured("red",transparencia)