//@version=5 strategy("SMC Orderblock Strategy with Exit on Signal", overlay=true) // Parameter für Orderblocks var float supplyOrderBlock = na var float demandOrderBlock = na // Funktion zum Zeichnen von Orderblocks drawOrderBlock() => if (not na(demandOrderBlock) and close > demandOrderBlock) line.new(bar_index[1], demandOrderBlock, bar_index, demandOrderBlock, color=color.green, width=2, style=line.style_solid) if (not na(supplyOrderBlock) and close < supplyOrderBlock) line.new(bar_index[1], supplyOrderBlock, bar_index, supplyOrderBlock, color=color.red, width=2, style=line.style_solid) // Identifikation von Orderblocks if (low[1] < low[2] and high[1] < high[2]) demandOrderBlock := low[2] // Identifiziere Nachfrage-Orderblock if (high[1] > high[2] and low[1] > low[2]) supplyOrderBlock := high[2] // Identifiziere Angebots-Orderblock drawOrderBlock() // Einstiegsbedingungen longCondition = close > demandOrderBlock and close[1] < demandOrderBlock shortCondition = close < supplyOrderBlock and close[1] > supplyOrderBlock // Gegensignalbedingungen exitLongCondition = shortCondition exitShortCondition = longCondition // Eingänge und Ausgänge if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Automatischer Ausstieg bei Gegensignal if (exitLongCondition) strategy.close("Long") if (exitShortCondition) strategy.close("Short") // Stop-Loss und Take-Profit stopLossLong = demandOrderBlock - (ta.atr(14) * 1.5) // Stop-Loss unter dem Demand-Orderblock takeProfitLong = close + (ta.atr(14) * 3) // Take-Profit über dem aktuellen Preis stopLossShort = supplyOrderBlock + (ta.atr(14) * 1.5) // Stop-Loss über dem Supply-Orderblock takeProfitShort = close - (ta.atr(14) * 3) // Take-Profit unter dem aktuellen Preis // Stop-Loss und Take-Profit setzen strategy.exit("TP/SL Long", "Long", stop=stopLossLong, limit=takeProfitLong) strategy.exit("TP/SL Short", "Short", stop=stopLossShort, limit=takeProfitShort)