
یہ حکمت عملی ایک رجحان ٹریڈنگ سسٹم ہے جس میں متعدد تکنیکی اشارے شامل ہیں۔ یہ مارکیٹ کے اشاروں کو متعدد جہتوں میں جوڑتا ہے جیسے کہ حرکت پذیر اوسط ((EMA) ، اتار چڑھاؤ کی شرح ((ATR) ، ٹرانزیکشن حجم کا رجحان ((PVT) اور متحرک نوسکھئیے ((Ninja)) ، سگنل کی ہم آہنگی کے ذریعہ تجارت کی درستگی کو بہتر بناتا ہے۔ حکمت عملی میں متحرک اسٹاپ نقصان کا طریقہ کار استعمال کیا جاتا ہے ، جس میں رجحانات کی پیروی کرتے ہوئے خطرے پر سخت کنٹرول ہوتا ہے۔
اس حکمت عملی کی بنیادی منطق چار اہم ستونوں پر مبنی ہے:
ٹریڈنگ سگنل کی تخلیق کے لئے مندرجہ ذیل شرائط کو پورا کرنا ضروری ہے:
اس حکمت عملی نے متعدد اشارے کے ہم آہنگی اور متحرک اسٹاپ نقصان کے طریقہ کار کے ذریعہ ایک نسبتا complete مکمل تجارتی نظام تشکیل دیا ہے۔ اس حکمت عملی کے بنیادی فوائد اس کے کثیر جہتی سگنل کی تصدیق کے طریقہ کار اور سخت خطرے پر قابو پانے میں ہیں۔ اگرچہ کچھ تاخیر اور جعلی سگنل کا خطرہ موجود ہے ، لیکن مسلسل اصلاح اور بہتری کے ذریعہ ، اس حکمت عملی کو مختلف مارکیٹ کے ماحول میں مستحکم کارکردگی برقرار رکھنے کی امید ہے۔ اس سے پہلے کہ اس کا استعمال عملی طور پر کیا جائے ، تاجروں کو مشورہ دیا جاتا ہے کہ وہ کافی حد تک بیک اپ اور پیرامیٹرز کو بہتر بنائیں۔
/*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!")