INVITE-ONLY SCRIPT

Leg-In | Boring (Small/Medium) | Leg-Out Strategy jayendra

14
//version=5
indicator("Leg-In | Boring (Small/Medium) | Leg-Out Strategy", overlay=true)

// ================= INPUTS =================
emaLen = input.int(50, "EMA Length")
atrLen = input.int(14, "ATR Length")
slMult = input.float(1.0, "Stop-Loss ATR x", step=0.1)
tpMult = input.float(2.0, "Take-Profit ATR x", step=0.1)

// ================= COLORS =================
legInColor = color.black
boringColor = color.blue
legOutColor = color.purple

// ================= CALCULATIONS =================
emaVal = ta.ema(close, emaLen)
atrVal = ta.atr(atrLen)

// Candle body sizes
legInSize = math.abs(close[2] - open[2])
boringSize = math.abs(close[1] - open[1])
legOutSize = math.abs(close - open)

// ================= RULES =================
// Leg-In: strong directional candle
legInValid = legInSize >= boringSize * 2

// Boring: small or medium size (flexible)
boringValid = (boringSize > atrVal * 0.3) and (boringSize <= legInSize)

// Leg-Out: breakout candle
legOutValid = legOutSize >= boringSize * 4
breakUp = high > high[1]
breakDown = low < low[1]

// Pattern valid
patternValid = legInValid and boringValid and legOutValid

// ================= DIRECTION =================
buySignal = patternValid and close > open and breakUp and close > emaVal
sellSignal = patternValid and close < open and breakDown and close < emaVal

setupFound = buySignal or sellSignal

// ================= CANDLE COLORING =================
barcolor(setupFound ? legOutColor : na)
barcolor(setupFound ? boringColor : na, offset=-1)
barcolor(setupFound ? legInColor : na, offset=-2)

// ================= PLOTS =================
plot(emaVal, color=color.orange, linewidth=2, title="EMA")

plotshape(buySignal, title="BUY", text="BUY",
style=shape.labelup, location=location.belowbar,
color=color.green, textcolor=color.white)

plotshape(sellSignal, title="SELL", text="SELL",
style=shape.labeldown, location=location.abovebar,
color=color.red, textcolor=color.white)

// ================= ALERTS =================
alertcondition(buySignal, title="BUY Alert", message="BUY: Leg-In (Black) → Boring (Blue, small/medium) → Leg-Out (Purple)")
alertcondition(sellSignal, title="SELL Alert", message="SELL: Leg-In (Black) → Boring (Blue, small/medium) → Leg-Out (Purple)")

// ================= STOP LOSS / TAKE PROFIT =================
var float buySL = na
var float buyTP = na
var float sellSL = na
var float sellTP = na

if buySignal
buySL := close - atrVal * slMult
buyTP := close + atrVal * tpMult

if sellSignal
sellSL := close + atrVal * slMult
sellTP := close - atrVal * tpMult

plot(buySL, color=color.red, style=plot.style_linebr, title="Buy SL")
plot(buyTP, color=color.green, style=plot.style_linebr, title="Buy TP")
plot(sellSL, color=color.red, style=plot.style_linebr, title="Sell SL")
plot(sellTP, color=color.green, style=plot.style_linebr, title="Sell TP")

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.