//@version=5
strategy("Engulfing Candle Strategy with Signal-based Exit", overlay=true)
// Function to identify bullish engulfing candle
bullishEngulfing = [Link](close[1], open[1]) and close > open and open <=
close[1] and close >= open[1]
// Function to identify bearish engulfing candle
bearishEngulfing = [Link](close[1], open[1]) and close < open and open >=
close[1] and close <= open[1]
// Generate long and short signals
longSignal = bullishEngulfing
shortSignal = bearishEngulfing
// Plot long and short signals on the chart
plotshape(longSignal, style=[Link], color=[Link], text="Long",
location=[Link], size=[Link])
plotshape(shortSignal, style=[Link], color=[Link], text="Short",
location=[Link], size=[Link])
// Strategy entries and exits
if (longSignal)
// Close short position if open, then enter long
if (strategy.position_size < 0)
[Link]("Short")
[Link]("Long", [Link])
if (shortSignal)
// Close long position if open, then enter short
if (strategy.position_size > 0)
[Link]("Long")
[Link]("Short", [Link])