version=6 strategy('KN - Smart TP SL Strategy (Toggle & Visuals)'… — TRADING SIGNAL FREE — TG.ME

//@version=6 strategy('KN - Smart TP SL Strategy (Toggle & Visuals)', overlay = true, max_labels_count = 500, max_lines_count = 500, initial_capital = 1000000, default_qty_type = strategy.cash, default_qty_value = 100000) // ═══════════════════════════════════════ // INPUTS // ═══════════════════════════════════════ emaFastLen = input.int(5, 'Fast EMA', minval = 1) emaSlowLen = input.int(13, 'Slow EMA', minval = 1) atrLen = input.int(14, 'ATR Period', minval = 1) slAtrMult = input.float(1.5, 'SL ATR Multiplier', step = 0.1) // TARGET CHECKBOXES (TP TOGGLES) useTp1 = input.bool(true, 'Enable TP1') rr1 = input.float(1.0, 'TP1 RR', step = 0.1) useTp2 = input.bool(true, 'Enable TP2') rr2 = input.float(2.0, 'TP2 RR', step = 0.1) useTp3 = input.bool(true, 'Enable TP3') rr3 = input.float(3.0, 'TP3 RR', step = 0.1) showRisk = input.bool(true, 'Show TP/SL') labelOffset = input.int(15, 'Initial Line Length', minval = 5) showOnlyLatest = input.bool(true, 'Show Only Latest Signal') // COLORS bullColor = input.color(color.lime, 'Buy Color') bearColor = input.color(color.red, 'Sell Color') tpColor = input.color(color.aqua, 'TP Color') slColor = input.color(color.orange, 'SL Color') profitFillColor = input.color(color.new(color.green, 85), 'Profit Fill') lossFillColor = input.color(color.new(color.red, 85), 'Loss Fill') // ═══════════════════════════════════════ // EMA SIGNAL // ═══════════════════════════════════════ emaFast = ta.ema(close, emaFastLen) emaSlow = ta.ema(close, emaSlowLen) atrVal = ta.atr(atrLen) buySignal = ta.crossover(emaFast, emaSlow) sellSignal = ta.crossunder(emaFast, emaSlow) plot(emaFast, color = color.green, title = 'EMA Fast') plot(emaSlow, color = color.red, title = 'EMA Slow') // ═══════════════════════════════════════ // SIGNAL LABELS // ═══════════════════════════════════════ var label buyLbl = na var label sellLbl = na if buySignal if showOnlyLatest and not na(buyLbl) label.delete(buyLbl) buyLbl := label.new(bar_index, low, "BUY", style = label.style_label_up, color = bullColor, textcolor = color.white, size = size.small) if sellSignal if showOnlyLatest and not na(sellLbl) label.delete(sellLbl) sellLbl := label.new(bar_index, high, "SELL", style = label.style_label_down, color = bearColor, textcolor = color.white, size = size.small) // ═══════════════════════════════════════ // TRADE VARIABLES // ═══════════════════════════════════════ var int tradeDir = 0 var float tradeEntry = na var float tradeSl = na var float tradeTp1 = na var float tradeTp2 = na var float tradeTp3 = na var bool tp1Hit = false var bool tp2Hit = false var bool tp3Hit = false var bool slHit = false var int tradeStartBar = na // LINES var line lineEntry = na var line lineSL = na var line lineTp1 = na var line lineTp2 = na var line lineTp3 = na // LABELS var label lbEntry = na var label lbSL = na var label lbTp1 = na var label lbTp2 = na var label lbTp3 = na // BOXES var box profitBox = na var box lossBox = na // ═══════════════════════════════════════ // BUY EXECUTION & EXITS // ═══════════════════════════════════════ if buySignal risk = atrVal * slAtrMult tradeDir := 1 tradeEntry := close tradeSl := close - risk tradeTp1 := close + risk * rr1 tradeTp2 := close + risk * rr2 tradeTp3 := close + risk * rr3 tradeStartBar := bar_index tp1Hit := false tp2Hit := false tp3Hit := false slHit := false strategy.entry("Buy", strategy.long) if useTp1 strategy.exit("TP1_Buy", "Buy", qty_percent = (useTp2 or useTp3) ? 33 : 100, limit = tradeTp1, stop = tradeSl)

August 14, 2026 44