
এই কৌশলটি একটি প্রবণতা ট্র্যাকিং ট্রেডিং সিস্টেম যা একাধিক প্রযুক্তিগত সূচকগুলিকে একত্রিত করে। এটি একাধিক মাত্রার বাজার সংকেত যেমন মুভিং এভারেজ (ইএমএ), অস্থিরতা ট্র্যাকিং (এটিআর), ট্রেডিং ভলিউম প্রবণতা (পিভিটি) এবং গতিশীল দোলক (নিনজা) এর সংমিশ্রণ করে, সংকেত সমন্বয়ের মাধ্যমে ট্রেডিংয়ের নির্ভুলতা বাড়ানোর জন্য। কৌশলটি গতিশীল স্টপ লস মেশিন ব্যবহার করে এবং প্রবণতা অনুসরণ করার সময় ঝুঁকি কঠোরভাবে নিয়ন্ত্রণ করে।
এই কৌশলটি চারটি মূল স্তম্ভের উপর ভিত্তি করে তৈরি করা হয়েছেঃ
ট্রেডিং সিগন্যালের জন্য নিম্নলিখিত শর্তগুলি পূরণ করতে হবেঃ
এই কৌশলটি মাল্টি-ইনডিকেটর সমন্বয় এবং গতিশীল স্টপ লস মেশিনের মাধ্যমে একটি অপেক্ষাকৃত সম্পূর্ণ ট্রেডিং সিস্টেম তৈরি করে। কৌশলটির মূল সুবিধা হ’ল এর বহু-মাত্রিক সংকেত নিশ্চিতকরণ ব্যবস্থা এবং কঠোর ঝুঁকি নিয়ন্ত্রণ। যদিও কিছু পিছিয়ে পড়া এবং মিথ্যা সংকেতের ঝুঁকি রয়েছে, তবে ক্রমাগত অপ্টিমাইজেশন এবং পরিমার্জনের মাধ্যমে এই কৌশলটি বিভিন্ন বাজারের পরিবেশে স্থিতিশীল পারফরম্যান্স বজায় রাখার আশা করা যায়। ব্যবসায়ীদের পরামর্শ দেওয়া হয় যে তারা রিয়েল-টেবিল ব্যবহারের আগে পর্যাপ্ত ফিডব্যাক এবং প্যারামিটার অপ্টিমাইজেশন চালিয়ে যান।
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Triple Indicator Strategy", shorttitle="TIS", overlay=true)
// --- Inputs ---
var string calcGroup = "Calculation Parameters"
atrLength = input.int(22, title="ATR Period", group=calcGroup)
atrMult = input.float(3.0, title="ATR Multiplier", step=0.1, group=calcGroup)
emaLength = input.int(200, title="EMA Length", group=calcGroup)
// --- ATR and EMA Calculations ---
atr = atrMult * ta.atr(atrLength)
ema200 = ta.ema(close, emaLength)
// --- Chandelier Exit Logic ---
longStop = ta.highest(high, atrLength) - atr
shortStop = ta.lowest(low, atrLength) + atr
var int dir = 1
dir := close > shortStop ? 1 : close < longStop ? -1 : dir
buySignal = dir == 1 and dir[1] == -1
sellSignal = dir == -1 and dir[1] == 1
// --- Price Volume Trend (PVT) ---
pvt = ta.cum((close - close[1]) / close[1] * volume)
pvtSignal = ta.ema(pvt, 21)
pvtBuy = ta.crossover(pvt, pvtSignal)
pvtSell = ta.crossunder(pvt, pvtSignal)
// --- Ninja Indicator ---
ninjaOsc = (ta.ema(close, 3) - ta.ema(close, 13)) / ta.ema(close, 13) * 100
ninjaSignal = ta.ema(ninjaOsc, 24)
ninjaBuy = ta.crossover(ninjaOsc, ninjaSignal)
ninjaSell = ta.crossunder(ninjaOsc, ninjaSignal)
// --- Strategy Conditions ---
longCondition = buySignal and close > ema200 and (pvtBuy or ninjaBuy)
shortCondition = sellSignal and close < ema200 and (pvtSell or ninjaSell)
if longCondition
strategy.entry("Buy", strategy.long)
strategy.exit("Exit Long", "Buy", stop=low - atr)
if shortCondition
strategy.entry("Sell", strategy.short)
strategy.exit("Exit Short", "Sell", stop=high + atr)
// --- Plotting ---
plot(ema200, title="EMA 200", color=color.blue, linewidth=2)
plotshape(buySignal, title="Chandelier Buy", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Chandelier Sell", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// --- Labels for Buy/Sell with price ---
if buySignal
label.new(bar_index, low, "Buy: " + str.tostring(close), color=color.green, style=label.style_label_up, yloc=yloc.belowbar, size=size.small)
if sellSignal
label.new(bar_index, high, "Sell: " + str.tostring(close), color=color.red, style=label.style_label_down, yloc=yloc.abovebar, size=size.small)
// --- Alerts ---
alertcondition(longCondition, title="Buy Alert", message="Buy Signal Triggered!")
alertcondition(shortCondition, title="Sell Alert", message="Sell Signal Triggered!")