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")

Thông báo miễn trừ trách nhiệm

Thông tin và các ấn phẩm này không nhằm mục đích, và không cấu thành, lời khuyên hoặc khuyến nghị về tài chính, đầu tư, giao dịch hay các loại khác do TradingView cung cấp hoặc xác nhận. Đọc thêm tại Điều khoản Sử dụng.