
এই কৌশলটি মেরু পয়েন্ট সুপারট্রেন্ডিং সূচক এবং ডাবল ইন্ডেক্স মুভিং এভারেজ (ডিইএমএ) সূচককে একত্রিত করে এবং দামের এই দুটি সূচকের মধ্যে অবস্থানগত সম্পর্কের বিশ্লেষণ করে ট্রেডিং সংকেত নির্ধারণ করে। যখন দাম মেরু পয়েন্ট সুপারট্রেন্ডিং সূচকটি অতিক্রম করে এবং ডিইএমএ সূচকের উপরে থাকে, তখন একাধিক সংকেত উত্পন্ন হয়। যখন দাম মেরু পয়েন্ট সুপারট্রেন্ডিং সূচকটি অতিক্রম করে এবং ডিইএমএ সূচকের নীচে থাকে, তখন একটি ফাঁকা সংকেত উত্পন্ন হয়। এই কৌশলটি বাজারের মাঝারি-মেয়াদী প্রবণতা ক্যাপচার করতে পারে, তবে স্বল্পমেয়াদী মূল্যের ওঠানোয়ও প্রতিক্রিয়া জানাতে পারে।
এই কৌশলটি মূলধারার সুপার ট্রেন্ড সূচক এবং ডিইএমএ সূচকগুলির সংমিশ্রণের মাধ্যমে বাজারের প্রবণতাকে আরও ভালভাবে ক্যাপচার করতে পারে এবং স্বল্পমেয়াদী ওঠানামা মোকাবেলা করতে পারে। কৌশলটি প্রবণতা ট্র্যাকিং ক্ষমতা, দৃ strong় অভিযোজনযোগ্যতা এবং ঝুঁকি নিয়ন্ত্রণের ক্ষমতা রয়েছে, তবে একই সাথে প্যারামিটার সেটিং, অস্থির বাজার এবং প্রবণতা ঘুরিয়ে দেওয়ার মতো ঝুঁকির মুখোমুখি। প্যারামিটার অপ্টিমাইজেশন, সিগন্যাল ফিল্টারিং, পজিশন ম্যানেজমেন্ট এবং পোর্টফোলিও অপ্টিমাইজেশনের মাধ্যমে কৌশলটির স্থিতিশীলতা এবং লাভজনকতা আরও উন্নত করতে পারে এবং বিভিন্ন বাজারের পরিবেশের সাথে আরও ভালভাবে খাপ খাইয়ে নিতে পারে।
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Simple Combined Strategy: Pivot Point SuperTrend and DEMA", overlay=true)
// Pivot Point SuperTrend settings
prd = input.int(2, title="Pivot Point Period", minval=1, maxval=50)
Factor = input.float(3.0, title="ATR Factor", minval=1, step=0.1)
Pd = input.int(10, title="ATR Period", minval=1)
// Double EMA settings
demaLength = input.int(200, title="DEMA Length", minval=1)
src = input(close, title="Source")
// Pip settings
pipValue = input.float(0.0001, title="Pip Value")
stopLossPips = input.int(15, title="Stop Loss (pips)")
takeProfitPips = input.int(35, title="Take Profit (pips)")
// Pivot Point SuperTrend Calculation
float ph = ta.pivothigh(prd, prd)
float pl = ta.pivotlow(prd, prd)
var float center = na
if not na(ph)
center := na(center) ? ph : (center * 2 + ph) / 3
if not na(pl)
center := na(center) ? pl : (center * 2 + pl) / 3
Up = center - (Factor * ta.atr(Pd))
Dn = center + (Factor * ta.atr(Pd))
var float TUp = na
var float TDown = na
var int Trend = na
if na(Trend)
TUp := Up
TDown := Dn
Trend := close > Dn ? 1 : -1
else
TUp := close[1] > TUp[1] ? math.max(Up, TUp[1]) : Up
TDown := close[1] < TDown[1] ? math.min(Dn, TDown[1]) : Dn
Trend := close > TDown[1] ? 1 : close < TUp[1] ? -1 : nz(Trend[1], 1)
Trailingsl = Trend == 1 ? TUp : TDown
linecolor = Trend == 1 ? color.lime : color.red
plot(Trailingsl, color=linecolor, linewidth=2, title="PP SuperTrend")
// Double EMA Calculation
e1 = ta.ema(src, demaLength)
e2 = ta.ema(e1, demaLength)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=color.new(#43A047, 0))
// Strategy Logic
longCondition = close > Trailingsl and close > dema and strategy.position_size <= 0
shortCondition = close < Trailingsl and close < dema and strategy.position_size >= 0
// Plot signals
plotshape(series=longCondition, title="Long", location=location.belowbar, color=color.green, style=shape.labelup, text="Long")
plotshape(series=shortCondition, title="Short", location=location.abovebar, color=color.red, style=shape.labeldown, text="Short")
// Strategy Entry and Exit
if (longCondition)
strategy.entry("Long", strategy.long, stop=close - (stopLossPips * pipValue), limit=close + (takeProfitPips * pipValue))
if (shortCondition)
strategy.entry("Short", strategy.short, stop=close + (stopLossPips * pipValue), limit=close - (takeProfitPips * pipValue))
alertcondition(longCondition, title="Long Alert", message="Long Signal")
alertcondition(shortCondition, title="Short Alert", message="Short Signal")