//@version=5
indicator("EMA Crossover with Volume", overlay=true)
// Definir EMAs
emaShort = ema(close, 9)
emaLong = ema(close, 21)
// Identificar cruces de EMAs
emaCrossUp = crossover(emaShort, emaLong)
emaCrossDown = crossunder(emaShort, emaLong)
// Definir condiciones de entrada y salida
longCondition = emaCrossUp and volume > sma(volume, 20)
shortCondition = emaCrossDown and volume > sma(volume, 20)
// Dibujar rectángulos en el gráfico
bgcolor(longCondition ? color.new(color.green, 90) : na, transp=0)
bgcolor(shortCondition ? color.new(color.red, 90) : na, transp=0)
// Mostrar señales de entrada y salida en el gráfico
plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar, size=size.small)