diff --git a/pinescripts/Three_ATR_EMA.pine b/pinescripts/Three_ATR_EMA.pine index 202a24d..46686be 100644 --- a/pinescripts/Three_ATR_EMA.pine +++ b/pinescripts/Three_ATR_EMA.pine @@ -1,10 +1,11 @@ //@version=5 -strategy(title="Three ATR EMA Strategy", shorttitle="3ATR-EMA Strategy", overlay=true, currency=currency.USD, initial_capital=10000, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.1) +strategy(title="Three ATR EMA Strategy w/ Trailing", shorttitle="3ATR-EMA Trailing", overlay=true, currency=currency.USD, initial_capital=10000, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.1) // Inputs ema_length = input.int(21, "EMA Length", minval=1) atr_multiplier = input.float(3.0, "ATR Multiplier", step=0.1) show_bulls = input.bool(true, "Show Bullish Markers") +trail_percent = input.float(2.0, "Trailing Stop %", step=0.1) // Calculate EMA and ATR-based bands ema = ta.ema(close, ema_length) @@ -16,15 +17,39 @@ bullish_entry = (close < ema) and (close[1] <= lower_band[1]) and (close > close[1]) -// Execute strategy orders +// Trailing Stop Logic +var float trail_price = na +var bool trail_active = false + if bullish_entry strategy.entry("Long", strategy.long) + trail_price := na // Reset on new entry + trail_active := false -// Visual elements (optional) +if strategy.position_size > 0 + // Activate trailing when price hits upper band + if close >= upper_band + trail_active := true + + // Update trailing price when active + if trail_active + trail_price := math.max(high, nz(trail_price, high)) + + // Calculate stop price + stop_price = trail_active ? trail_price * (1 - trail_percent/100) : na + + // Submit exit order + if trail_active + strategy.exit("Trail Exit", "Long", stop=stop_price) + +// Visual elements plot(ema, "EMA", color=color.new(#4A90E2, 0)) plot(upper_band, "Upper", color=color.new(#F5A623, 0)) plot(lower_band, "Lower", color=color.new(#7ED321, 0)) +// Plot trailing stop line +plot(strategy.position_size > 0 and trail_active ? stop_price : na, "Trailing Stop", color=color.red, style=plot.style_linebr) + plotshape(show_bulls and bullish_entry ? low : na, style=shape.triangleup, location=location.belowbar,