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