पिवोट पॉइंट सुपरट्रेंड रणनीति एक अभिनव ट्रेंड फॉलोइंग रणनीति है जो दो लोकप्रिय संकेतकों
रणनीति की नींव पिवोट पॉइंट्स और सुपरट्रेंड संकेतकों के संलयन में निहित है, साथ ही एक मजबूत प्रवृत्ति फ़िल्टर का जोड़। यह एक निर्दिष्ट अवधि में पिवोट हाई और लो की गणना करके शुरू होता है, जो प्रवृत्ति विश्लेषण के लिए महत्वपूर्ण संदर्भ बिंदुओं के रूप में कार्य करता है। भारित औसत गणना के माध्यम से, ये पिवोट पॉइंट एक केंद्र रेखा बनाते हैं, समग्र संकेतक को परिष्कृत करते हैं।
इसके बाद, केंद्र रेखा और उपयोगकर्ता-परिभाषित कारक के साथ औसत सच्ची रेंज (एटीआर) के आधार पर, ऊपरी और निचले बैंड उत्पन्न किए जाते हैं। ये बैंड बाजार की अस्थिरता के अनुकूल होते हैं, जिससे रणनीति में लचीलापन बढ़ता है।
रणनीति में जो अतिरिक्त ट्रेंड फिल्टर पेश किया गया है, वह इसकी क्षमताओं को और बढ़ाता है। यह फिल्टर एक चलती औसत पर आधारित है, जो ट्रेंड की ताकत और दिशा का गतिशील आकलन प्रदान करता है। इस ट्रेंड फिल्टर को मूल पिवोट पॉइंट सुपरट्रेंड संकेतों के साथ जोड़कर, रणनीति का उद्देश्य अधिक सूचित और विश्वसनीय ट्रेडिंग निर्णय लेना है।
बढ़ी हुई सटीकता: एक प्रवृत्ति फ़िल्टर का समावेश संकेत उत्पन्न करने से पहले समग्र प्रवृत्ति दिशा की पुष्टि करके रणनीति की सटीकता में सुधार करता है।
प्रवृत्ति निरंतरता: प्रवृत्ति फ़िल्टर के साथ पिवोट पॉइंट्स और सुपरट्रेंड का एकीकरण, मजबूत बाजार प्रवृत्तियों के दौरान ट्रेडों को लम्बा करने का लक्ष्य रखता है, संभावित रूप से लाभ के अवसरों को अधिकतम करता है।
घटाया गया Whipsaws: रणनीति की भारित औसत गणना, ट्रेंड फिल्टर के साथ मिलकर, गलत संकेतों को कम करने में मदद करती है और अनिश्चित या पक्षीय बाजार स्थितियों के दौरान whipsaws को कम करती है।
समर्थन और प्रतिरोध अंतर्दृष्टिः रणनीति पिवोट पॉइंट्स के आधार पर अतिरिक्त समर्थन और प्रतिरोध स्तर प्रदान करना जारी रखती है, जो व्यापारियों को मूल्यवान संदर्भ जानकारी प्रदान करती है।
पैरामीटर निर्भरताः रणनीति एटीआर अवधि और गुणक जैसे मापदंडों के प्रति संवेदनशील है। अनुचित सेटिंग्स से ओवरट्रेडिंग या खोए हुए अवसर हो सकते हैं।
रुझान उलटाः रुझान उलटा होने के करीब, रणनीति गलत संकेत उत्पन्न कर सकती है जिसके परिणामस्वरूप अनावश्यक नुकसान हो सकता है। स्टॉप लॉस का उपयोग करके जोखिम का प्रबंधन किया जाना चाहिए।
अति-अनुकूलनः सर्वोत्तम परिणामों के लिए मापदंडों का अनुकूलन किया जा सकता है लेकिन आगे की व्यवहार्यता की कमी है। मापदंड चयन पर बाजार और उपकरण मतभेदों के प्रभाव पर विचार किया जाना चाहिए।
गैप जोखिमः जब कीमतें बैंड के बाहर चलती हैं, तो रणनीति एक फ्लैट स्थिति में प्रवेश करती है। यह अवसरों को याद कर सकता है जब रुझान एक गैप के बाद फिर से शुरू होते हैं।
अतिरिक्त फ़िल्टरः रणनीति की मजबूती बढ़ाने के लिए वॉल्यूम, अस्थिरता फ़िल्टर आदि जोड़े जा सकते हैं।
गतिशील मापदंडः बदलती बाजार स्थितियों के आधार पर मापदंडों के स्वतः अनुकूलन या अनुकूलन के लिए विधियां रणनीति को अधिक बहुमुखी बना सकती हैं।
स्टॉप लॉस: डाउनसाइड को प्रभावी ढंग से नियंत्रित करने के लिए रणनीति तर्क को बनाए रखते हुए स्टॉप लॉस तंत्रों को डिजाइन करने के तरीकों का शोध करें।
क्रॉस-एसेट ऑप्टिमाइजेशनः विभिन्न बाजारों और साधनों में रणनीति मापदंडों का मूल्यांकन करें। प्रत्येक की विशिष्टताओं के अनुसार मापदंडों का अनुकूलन करें।
पिवोट पॉइंट सुपरट्रेंड रणनीति सरलता और ट्रेंड फॉलो करने की क्षमता जैसे आयामों में अद्वितीय ताकत प्रदर्शित करती है। साथ ही, पैरामीटर, स्टॉप लॉस, क्रॉस-एसेट ऑप्टिमाइजेशन जैसे पहलू इसे और भी अधिक सार्वभौमिक और विश्वसनीय उपकरण में सुधारने के लिए जगह प्रदान करते हैं। कुल मिलाकर, यह व्यापारियों को बाजार के रुझानों को कैप्चर करने का एक कुशल साधन प्रदान करता है।
/*backtest start: 2023-02-19 00:00:00 end: 2024-02-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © Julien_Eche // Strategy based on "Pivot Point Supertrend" Indicator by LonesomeTheBlue //@version=4 strategy("PPS", overlay=true, initial_capital=500000, currency=currency.USD, default_qty_type=strategy.cash, default_qty_value=50000) prd = input(defval = 2, title="Pivot Point Period", minval = 1, maxval = 50) Factor=input(defval = 3, title = "ATR Factor", minval = 1, step = 0.1) Pd=input(defval = 10, title = "ATR Period", minval=1) showpivot = input(defval = false, title="Show Pivot Points") showlabel = input(defval = true, title="Show Buy/Sell Labels") showcl = input(defval = false, title="Show PP Center Line") showsr = input(defval = false, title="Show Support/Resistance") // get Pivot High/Low float ph = pivothigh(prd, prd) float pl = pivotlow(prd, prd) // drawl Pivot Points if "showpivot" is enabled plotshape(ph and showpivot, text="H", style=shape.labeldown, color=na, textcolor=color.red, location=location.abovebar, transp=0, offset = -prd) plotshape(pl and showpivot, text="L", style=shape.labeldown, color=na, textcolor=color.lime, location=location.belowbar, transp=0, offset = -prd) // calculate the Center line using pivot points var float center = na float lastpp = ph ? ph : pl ? pl : na if lastpp if na(center) center := lastpp else //weighted calculation center := (center * 2 + lastpp) / 3 // upper/lower bands calculation Up = center - (Factor * atr(Pd)) Dn = center + (Factor * atr(Pd)) // get the trend float TUp = na float TDown = na Trend = 0 TUp := close[1] > TUp[1] ? max(Up, TUp[1]) : Up TDown := close[1] < TDown[1] ? min(Dn, TDown[1]) : Dn Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1) Trailingsl = Trend == 1 ? TUp : TDown // plot the trend linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na plot(Trailingsl, color = linecolor , linewidth = 2, title = "PP SuperTrend") plot(showcl ? center : na, color = showcl ? center < hl2 ? color.blue : color.red : na) // check and plot the signals bsignal = Trend == 1 and Trend[1] == -1 ssignal = Trend == -1 and Trend[1] == 1 plotshape(bsignal and showlabel ? Trailingsl : na, title="Buy", text="Buy", location = location.absolute, style = shape.labelup, size = size.tiny, color = color.lime, textcolor = color.black, transp = 0) plotshape(ssignal and showlabel ? Trailingsl : na, title="Sell", text="Sell", location = location.absolute, style = shape.labeldown, size = size.tiny, color = color.red, textcolor = color.white, transp = 0) //get S/R levels using Pivot Points float resistance = na float support = na support := pl ? pl : support[1] resistance := ph ? ph : resistance[1] // if enabled then show S/R levels plot(showsr and support ? support : na, color = showsr and support ? color.lime : na, style = plot.style_circles, offset = -prd) plot(showsr and resistance ? resistance : na, color = showsr and resistance ? color.red : na, style = plot.style_circles, offset = -prd) // Trend Filter from SuperTrend Long Strategy Periods = input(title="ATR Period", type=input.integer, defval=10) src = input(hl2, title="Source") Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0) changeATR = input(title="Change ATR Calculation Method ?", type=input.bool, defval=true) // Combine the SuperTrend calculations atr2 = sma(tr, Periods) atr = changeATR ? atr(Periods) : atr2 up = src - (Multiplier * atr) up1 = nz(up[1], up) up := close[1] > up1 ? max(up, up1) : up dn = src + (Multiplier * atr) dn1 = nz(dn[1], dn) dn := close[1] < dn1 ? min(dn, dn1) : dn trend = 1 trend := nz(trend[1], trend) trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend // Moving Average as Trend Filter periodes_ma = input(title="Moving Average Period", type=input.integer, defval=20) src_ma = input(title="Moving Average Source", type=input.source, defval=close) ma = sma(src_ma, periodes_ma) // Strategy Entry Conditions FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 999) ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 999) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => time >= start and time <= finish ? true : false // Combined entry conditions longCondition = (trend == 1 and trend[1] == -1 and close > ma) or (bsignal and window()) shortCondition = (trend == -1 and trend[1] == 1 and close < ma) or (ssignal and window()) if (longCondition) strategy.entry("BUY", strategy.long) if (shortCondition) strategy.close("BUY") strategy.entry("SELL", strategy.short) buy1 = barssince((trend == 1 and trend[1] == -1 and close > ma) or (bsignal and window())) sell1 = barssince((trend == -1 and trend[1] == 1 and close < ma) or (ssignal and window())) color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na barcolor(color1)