//@version=5 strategy("Effortless Small Account Strategy", overlay=true, initial_capital=500, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.075) // --- Inputs --- lookback = input.int(20, title="S/R Lookback Period", minval=5) rr_ratio = input.float(2.0, title="Risk to Reward Ratio", minval=1.0, step=0.1) atr_period = input.int(14, title="ATR Period") atr_mult = input.float(0.5, title="Proximity Threshold (ATR Multiplier)", minval=0.1, step=0.1) risk_perc = input.float(1.0, title="Risk Per Trade (%)", minval=0.1, maxval=5.0, step=0.1) // --- Indicators --- atr = ta.atr(atr_period) sup = ta.lowest(low, lookback)[1] res = ta.highest(high, lookback)[1] // --- Entry Logic --- // Price hits or comes close to support/resistance level near_support = (low[1] <= sup + (atr * atr_mult)) near_resistance = (high[1] >= res - (atr * atr_mult)) // Entry triggers: breakout above signal bar high for long, or below signal bar low for short long_condition = near_support and (close > high[1]) short_condition = near_resistance and (close < low[1]) // --- Risk Management & Position Sizing --- var float stop_loss_price = na var float take_profit_price = na if (strategy.position_size == 0) if (long_condition) stop_loss_price := math.min(low[1], low) - (atr * 0.2) risk_per_share = close - stop_loss_price if (risk_per_share > 0) take_profit_price := close + (risk_per_share * rr_ratio) capital_at_risk = strategy.equity * (risk_perc / 100) qty_to_buy = capital_at_risk / risk_per_share strategy.entry("Long", strategy.long, qty=qty_to_buy) strategy.exit("Exit Long", "Long", stop=stop_loss_price, limit=take_profit_price) else if (short_condition) stop_loss_price := math.max(high[1], high) + (atr * 0.2) risk_per_share = stop_loss_price - close if (risk_per_share > 0) take_profit_price := close - (risk_per_share * rr_ratio) capital_at_risk = strategy.equity * (risk_perc / 100) qty_to_sell = capital_at_risk / risk_per_share strategy.entry("Short", strategy.short, qty=qty_to_sell) strategy.exit("Exit Short", "Short", stop=stop_loss_price, limit=take_profit_price) // --- Plotting --- plot(sup, title="Support Level", color=color.green, linewidth=2, style=plot.style_line) plot(res, title="Resistance Level", color=color.red, linewidth=2, style=plot.style_line) plot(strategy.position_size > 0 ? stop_loss_price : na, title="Long SL", color=color.red, style=plot.style_linebr) plot(strategy.position_size > 0 ? take_profit_price : na, title="Long TP", color=color.green, style=plot.style_linebr) plot(strategy.position_size < 0 ? stop_loss_price : na, title="Short SL", color=color.red, style=plot.style_linebr) plot(strategy.position_size < 0 ? take_profit_price : na, title="Short TP", color=color.green, style=plot.style_linebr)