यह रणनीति एक प्रवृत्ति के बाद ट्रेडिंग प्रणाली है जो कई तकनीकी संकेतकों को जोड़ती है। यह ट्रेडिंग सटीकता में सुधार के लिए चलती औसत (ईएमए), अस्थिरता ट्रैकिंग (एटीआर), वॉल्यूम ट्रेंड (पीवीटी), और गति दोलन (निंजा) सहित विभिन्न आयामों के बाजार संकेतों को एकीकृत करती है। यह रणनीति रुझानों को ट्रैक करते समय जोखिम को सख्ती से नियंत्रित करने के लिए एक गतिशील स्टॉप-लॉस तंत्र को नियोजित करती है।
मूल तर्क चार मुख्य स्तंभों पर आधारित हैः
ट्रेडिंग सिग्नल निम्नलिखित शर्तों के तहत उत्पन्न किए जाते हैं:
यह रणनीति बहु-सूचक तालमेल और गतिशील स्टॉप-लॉस तंत्र के माध्यम से एक अपेक्षाकृत पूर्ण ट्रेडिंग प्रणाली का निर्माण करती है। इसके मुख्य फायदे बहु-आयामी संकेत पुष्टि और सख्त जोखिम नियंत्रण में निहित हैं। जबकि देरी और झूठे संकेतों के जोखिम हैं, निरंतर अनुकूलन और सुधार के माध्यम से, रणनीति में विभिन्न बाजार वातावरणों में स्थिर प्रदर्शन बनाए रखने की क्षमता है। व्यापारियों को लाइव ट्रेडिंग से पहले गहन बैकटेस्टिंग और पैरामीटर अनुकूलन करने की सलाह दी जाती है।
/*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!")