
এটি একটি উচ্চমানের ট্রেডিং কৌশল যা সুপারট্রেন্ড সূচক এবং গ্রাসকারী মোডের সাথে মিলিত। কৌশলটি বাজারে গ্রাসকারী মোডের স্ক্র্যাপিং প্যাটার্নগুলি সনাক্ত করে এবং সুপারট্রেন্ড সূচকের সাথে মিলিত ট্রেন্ডের দিকনির্দেশ নিশ্চিত করে, সঠিক ট্রেডিং সিগন্যাল ফিল্টারিংয়ের জন্য। কৌশলটি গতিশীল স্টপ-অফ এবং লাভের সেটিংসকে সংহত করে, ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করে এবং একই সাথে লাভের গ্যারান্টি দেয়।
এই কৌশলটি মূলত নিম্নলিখিত মূল নীতির উপর ভিত্তি করে তৈরি করা হয়েছেঃ
এটি একটি কঠোর, যুক্তিসঙ্গতভাবে সুস্পষ্ট কৌশল যা প্রযুক্তিগত সূচক এবং মোডাল বিশ্লেষণের সাথে মিলিত হয়ে ভাল সংকেত মানের নিয়ন্ত্রণ অর্জন করে। কৌশলটির ঝুঁকি ব্যবস্থাপনা ব্যবস্থাটি উন্নত, দৃশ্যমান প্রভাবটি দুর্দান্ত, রিয়েল-টাইম পরীক্ষার এবং অপ্টিমাইজেশনের জন্য উপযুক্ত। ব্যবসায়ীদের বাস্তব প্রয়োগে প্যারামিটার অপ্টিমাইজেশন এবং বাজার পরিবেশের নির্বাচনের দিকে মনোযোগ দেওয়ার পরামর্শ দেওয়া হয়।
/*backtest
start: 2024-02-21 00:00:00
end: 2024-06-01 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy('Strategy Engulfing', overlay=true)
// Inputs
Periods = input(title='ATR Period', defval=5)
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=1.0)
highlighting = input(title='Highlighter On/Off?', defval=true)
boringThreshold = input.int(5, title='Boring Candle Threshold (%)', minval=1, maxval=100, step=1)
engulfingThreshold = input.int(50, title='Engulfing Candle Threshold (%)', minval=1, maxval=100, step=1)
OpenPosisi = input.int(2000, title='OpenPosisi (Pips)', minval=-25000)
stoploss = input.int(10000, title='Stop Loss (Pips)', minval=-25000)
takeprofit = input.int(20000, title='Take Profit (Pips)', minval=-25000)
// ATR Calculation
atr = ta.atr(Periods)
// Supertrend Calculation
up = src - Multiplier * atr
up := close[1] > nz(up[1]) ? math.max(up, nz(up[1])) : up
dn = src + Multiplier * atr
dn := close[1] < nz(dn[1]) ? math.min(dn, nz(dn[1])) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn[1] ? 1 : trend == 1 and close < up[1] ? -1 : trend
// Plotting Supertrend
plot(trend == 1 ? up : na, color=color.new(color.green, 0), linewidth=1, style=plot.style_linebr, title='Supertrend Up')
plot(trend == -1 ? dn : na, color=color.new(color.red, 0), linewidth=1, style=plot.style_linebr, title='Supertrend Down')
// Engulfing Candlestick
isBoringCandle = math.abs(open[1] - close[1]) <= (high[1] - low[1]) * boringThreshold / 100
isEngulfingCandle = math.abs(open - close) * 100 / math.abs(high - low) <= engulfingThreshold
bullEngulfing = strategy.opentrades == 0 and trend == 1 and close[1] < open[1] and close > open[1] and not isBoringCandle and not isEngulfingCandle
bearEngulfing = strategy.opentrades == 0 and trend == -1 and close[1] > open[1] and close < open[1] and not isBoringCandle and not isEngulfingCandle
// Calculate Limit Price
limitbull = bullEngulfing ? close + OpenPosisi * syminfo.mintick : na
limitbear = bearEngulfing ? close - OpenPosisi * syminfo.mintick : na
// Calculate Stop Loss
bullishStopLoss = bullEngulfing ? limitbull - stoploss * syminfo.mintick : na
bearishStopLoss = bearEngulfing ? limitbear + stoploss * syminfo.mintick : na
// Calculate Take Profit
bullishTakeProfit = bullEngulfing ? limitbull + takeprofit * syminfo.mintick : na
bearishTakeProfit = bearEngulfing ? limitbear - takeprofit * syminfo.mintick : na
// Alerts for Engulfing Candles (Trigger Immediately)
if bullEngulfing
alert('Bullish Engulfing Candle Formed!')
if bearEngulfing
alert('Bearish Engulfing Candle Formed!')
// Plot shapes
plotshape(bullEngulfing, style=shape.triangleup, location=location.abovebar, color=color.new(color.green, 0))
plotshape(bearEngulfing, style=shape.triangledown, location=location.belowbar, color=color.new(color.red, 0))
plot(limitbull, title='Bullish Limit Price', color=color.new(color.purple, 0), style=plot.style_linebr, linewidth=1)
plot(limitbear, title='Bearish Limit Price', color=color.new(color.purple, 0), style=plot.style_linebr, linewidth=1)
plot(bullishStopLoss, title='Bullish Stop Loss', color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1)
plot(bearishStopLoss, title='Bearish Stop Loss', color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1)
plot(bullishTakeProfit, title='Bullish Take Profit', color=color.new(color.blue, 0), style=plot.style_linebr, linewidth=1)
plot(bearishTakeProfit, title='Bearish Take Profit', color=color.new(color.blue, 0), style=plot.style_linebr, linewidth=1)
// Label Stop Loss and Take Profit
label.new(bullEngulfing ? bar_index : na, bullishStopLoss, text='SL: ' + str.tostring(bullishStopLoss), color=color.red, textcolor=color.white, style=label.style_label_up, size=size.tiny)
label.new(bearEngulfing ? bar_index : na, bearishStopLoss, text='SL: ' + str.tostring(bearishStopLoss), color=color.red, textcolor=color.white, style=label.style_label_down, size=size.tiny)
label.new(bullEngulfing ? bar_index : na, bullishTakeProfit, text='TP: ' + str.tostring(bullishTakeProfit), color=color.green, textcolor=color.white, style=label.style_label_down, size=size.tiny)
label.new(bearEngulfing ? bar_index : na, bearishTakeProfit, text='TP: ' + str.tostring(bearishTakeProfit), color=color.green, textcolor=color.white, style=label.style_label_up, size=size.tiny)
// Strategy execution
if bullEngulfing
strategy.entry('BUY', strategy.long, stop=limitbull)
strategy.exit('TP/SL', from_entry='BUY', limit=bullishTakeProfit, stop=bullishStopLoss)
if bearEngulfing
strategy.entry('SELL', strategy.short, stop=limitbear)
strategy.exit('TP/SL', from_entry='SELL', limit=bearishTakeProfit, stop=bearishStopLoss)