सुपरट्रेंड रणनीति औसत सच्ची रेंज की गणना के आधार पर एक प्रवृत्ति के बाद की रणनीति है। यह स्टॉप लॉस लाइनों को सेट करने के लिए एटीआर का उपयोग करता है और स्टॉप लॉस लाइनों के माध्यम से कीमत को तोड़ता है या नहीं, इस प्रकार ट्रेडिंग सिग्नल उत्पन्न करके प्रवृत्ति दिशा निर्धारित करता है।
रणनीति पहले एक निश्चित अवधि में औसत सच्ची सीमा (एटीआर) की गणना करती है। फिर यह लंबी स्टॉप लॉस लाइन और छोटी स्टॉप लॉस लाइन की गणना करने के लिए एक स्केलिंग कारक से गुणा एटीआर मूल्य का उपयोग करती है। विशिष्ट गणना निम्नानुसार हैः
atr = mult * atr(length)
longStop = hl2 - atr
shortStop = hl2 + atr
जहां लंबाई एटीआर की गणना करने के लिए अवधि है, और मल्टी एटीआर के लिए स्केलिंग कारक है।
स्टॉप लॉस लाइनों की गणना करने के बाद, रणनीति ट्रेंड की दिशा निर्धारित करने के लिए यह आंकना जारी रखती है कि क्या कीमत पिछले बार की स्टॉप लॉस लाइन को तोड़ती हैः
dir := dir == -1 and close > shortStopPrev ? 1 :
dir == 1 and close < longStopPrev ? -1 : dir
जब लंबी स्टॉप लॉस लाइन टूट जाती है, तो प्रवृत्ति तेजी की होती है। जब छोटी स्टॉप लॉस लाइन टूट जाती है, तो प्रवृत्ति मंदी की होती है।
प्रवृत्ति की दिशा में परिवर्तन के अनुसार, खरीद और बिक्री संकेत उत्पन्न होते हैंः
buySignal = dir == 1 and dir[1] == -1
sellSignal = dir == -1 and dir[1] == 1
अंत में, खरीदारी या बिक्री संकेत दिखाई देने पर संबंधित व्यापारिक क्रियाएं की जाती हैं।
स्टॉप लॉस लाइनों की गणना करने के लिए एटीआर का उपयोग करने से प्रभावी रूप से बाजार शोर को फ़िल्टर किया जा सकता है और अधिक विश्वसनीय रुझान संकेतों को कैप्चर किया जा सकता है।
रणनीति में कुछ पैरामीटर हैं जो समझने और संचालित करने में आसान हैं। विभिन्न बाजार स्थितियों के अनुकूल एटीआर अवधि और गुणक को समायोजित किया जा सकता है।
रुझान दिशा परिवर्तन निर्धारित करने के लिए स्टॉप लॉस लाइन ब्रेकआउट का उपयोग करके जोखिमों को प्रभावी ढंग से नियंत्रित किया जा सकता है और समय पर स्टॉप लॉस किया जा सकता है।
विभिन्न व्यापारिक शैलियों के अनुरूप केवल लंबी या दो दिशा व्यापार के लिए विन्यस्त करने योग्य।
इसका उपयोग किसी भी समय सीमा और विभिन्न व्यापारिक साधनों के लिए किया जा सकता है।
रेंजिंग बाजारों में, एटीआर को उच्चतर खींचा जा सकता है जिससे व्यापक स्टॉप लॉस और अधिक झूठे संकेत होते हैं।
इष्टतम पैरामीटर संयोजन अनिश्चित है। एटीआर अवधि और गुणक को बाजार की स्थितियों के आधार पर अनुकूलन की आवश्यकता है।
प्रत्येक व्यापारिक साधन के लिए इष्टतम समय सीमा ज्ञात नहीं है और इसका परीक्षण किया जाना आवश्यक है।
सबसे अच्छा प्रवेश समय स्पष्ट नहीं है और कुछ विलंब मौजूद है।
जब प्रवृत्ति कमजोर होती है तो बाजार में नहीं होने का जोखिम होता है।
स्टॉप-लॉस को मारने के जोखिम हैं। व्यापक स्टॉप-लॉस पर विचार किया जा सकता है।
एमएसीडी, आरएसआई जैसे अन्य संकेतकों को फ़िल्टरिंग के लिए शामिल किया जा सकता है ताकि बाजारों में गलत संकेतों से बचा जा सके।
इष्टतम पैरामीटर सेट खोजने के लिए मशीन लर्निंग या आनुवंशिक एल्गोरिदम का उपयोग किया जा सकता है।
सर्वोत्तम एटीआर अवधि और गुणक खोजने के लिए प्रत्येक साधन के लिए पैरामीटर अनुकूलन किया जा सकता है।
वॉल्यूम संकेतकों का उपयोग बेहतर प्रवेश समय निर्धारित करने और समय से पहले प्रवेश से बचने के लिए किया जा सकता है।
बाजार में नहीं होने पर स्थिति रखने के लिए लॉक करने की रणनीति का उपयोग करने पर विचार करें।
स्टॉप लॉस की चौड़ाई को ट्रेंड स्ट्रेंथ इंडिकेटर के साथ आराम से और अनुकूलित किया जा सकता है।
सुपरट्रेंड रणनीति एटीआर से गणना की गई गतिशील स्टॉप लॉस लाइनों का उपयोग करती है जब मूल्य ब्रेकआउट होता है तो ट्रेंड परिवर्तन का पता लगाने के लिए। यह एक अपेक्षाकृत विश्वसनीय और जोखिम-नियंत्रित ट्रेंड फॉलोइंग सिस्टम है। रणनीति का उपयोग करना सरल है और विभिन्न उपकरणों पर लागू होता है, लेकिन विभिन्न बाजारों में बेहतर प्रदर्शन के लिए मापदंडों और नियमों को अनुकूलित करने की आवश्यकता होती है। अन्य तकनीकी संकेतकों और रणनीतियों के साथ संयोजन से ट्रेडिंग परिणामों में और सुधार हो सकता है। सामान्य तौर पर, सुपरट्रेंड वैज्ञानिक रूप से ध्वनि अवधारणाओं पर आधारित है और व्यापारियों द्वारा आगे के शोध और अनुप्रयोग के लायक है।
/*backtest start: 2023-09-12 00:00:00 end: 2023-10-12 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // strategy("SuperTrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000) LongOnly = input(title="Long Only ?", type=input.bool, defval=true) length = input(title="ATR Period", type=input.integer, defval=22) mult = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0) showLabels = input(title="Show Buy/Sell Labels ?", type=input.bool, defval=true) //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date Inputs fromDay = input(defval=1, title="From Day", minval=1, maxval=31) fromMonth = input(defval=1, title="From Month", minval=1, maxval=12) fromYear = input(defval=2019, title="From Year", minval=1970) // To Date Inputs toDay = input(defval=1, title="To Day", minval=1, maxval=31) toMonth = input(defval=1, title="To Month", minval=1, maxval=12) toYear = input(defval=2020, title="To Year", minval=1970) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true //////////////////////////////////////////////////////////////////////////////// atr = mult * atr(length) longStop = hl2 - atr longStopPrev = nz(longStop[1], longStop) longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop shortStop = hl2 + atr shortStopPrev = nz(shortStop[1], shortStop) shortStop := close[1] < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop dir = 1 dir := nz(dir[1], dir) dir := dir == -1 and close > shortStopPrev ? 1 : dir == 1 and close < longStopPrev ? -1 : dir longColor = color.green shortColor = color.red plot(dir == 1 ? longStop : na, title="Long Stop", style=plot.style_linebr, linewidth=2, color=longColor) buySignal = dir == 1 and dir[1] == -1 plotshape(buySignal ? longStop : na, title="Long Stop Start", location=location.absolute, style=shape.circle, size=size.tiny, color=longColor, transp=0) plotshape(buySignal and showLabels ? longStop : na, title="Buy Label", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=longColor, textcolor=color.white, transp=0) plot(dir == 1 ? na : shortStop, title="Short Stop", style=plot.style_linebr, linewidth=2, color=shortColor) sellSignal = dir == -1 and dir[1] == 1 plotshape(sellSignal ? shortStop : na, title="Short Stop Start", location=location.absolute, style=shape.circle, size=size.tiny, color=shortColor, transp=0) plotshape(sellSignal and showLabels ? shortStop : na, title="Sell Label", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=shortColor, textcolor=color.white, transp=0) if LongOnly if buySignal and time_cond strategy.entry("Long", strategy.long, comment="Long") if(sellSignal and time_cond) strategy.close("Long") else if buySignal and time_cond strategy.entry("Long", strategy.long, comment="Long") else strategy.cancel("Long") if sellSignal and time_cond strategy.entry("Short", strategy.short, comment="Short") else strategy.cancel("Short") if not time_cond strategy.close_all()