पिवोट पॉइंट सुपरट्रेंड रणनीति

लेखक:चाओझांग, दिनांकः 2024-02-26 10:57:20
टैगः

img

अवलोकन

पिवोट पॉइंट सुपरट्रेंड रणनीति एक अभिनव ट्रेंड फॉलोइंग रणनीति है जो दो लोकप्रिय संकेतकों पिवोट पॉइंट्स और सुपरट्रेंड को जोड़ती है, जबकि बढ़ी हुई सटीकता के लिए एक अतिरिक्त ट्रेंड फ़िल्टर पेश करती है। यह रणनीति लोनसोम द ब्लू की पिवोट पॉइंट सुपरट्रेंड स्क्रिप्ट से प्रेरणा लेती है, जिसका उद्देश्य व्यापारियों को झूठे संकेतों को कम करते हुए ट्रेंड फॉलोइंग के लिए एक विश्वसनीय उपकरण प्रदान करना है।

रणनीति तर्क

रणनीति की नींव पिवोट पॉइंट्स और सुपरट्रेंड संकेतकों के संलयन में निहित है, साथ ही एक मजबूत प्रवृत्ति फ़िल्टर का जोड़। यह एक निर्दिष्ट अवधि में पिवोट हाई और लो की गणना करके शुरू होता है, जो प्रवृत्ति विश्लेषण के लिए महत्वपूर्ण संदर्भ बिंदुओं के रूप में कार्य करता है। भारित औसत गणना के माध्यम से, ये पिवोट पॉइंट एक केंद्र रेखा बनाते हैं, समग्र संकेतक को परिष्कृत करते हैं।

इसके बाद, केंद्र रेखा और उपयोगकर्ता-परिभाषित कारक के साथ औसत सच्ची रेंज (एटीआर) के आधार पर, ऊपरी और निचले बैंड उत्पन्न किए जाते हैं। ये बैंड बाजार की अस्थिरता के अनुकूल होते हैं, जिससे रणनीति में लचीलापन बढ़ता है। पिवोट पॉइंट सुपरट्रेंड रणनीति का दिल प्रचलित प्रवृत्ति की सटीक पहचान करने में निहित है, जिसमें सूचक सुचारू रूप से तेजी और मंदी के संकेतों के बीच संक्रमण करता है क्योंकि कीमत सुपरट्रेंड बैंड के साथ बातचीत करती है।

रणनीति में जो अतिरिक्त ट्रेंड फिल्टर पेश किया गया है, वह इसकी क्षमताओं को और बढ़ाता है। यह फिल्टर एक चलती औसत पर आधारित है, जो ट्रेंड की ताकत और दिशा का गतिशील आकलन प्रदान करता है। इस ट्रेंड फिल्टर को मूल पिवोट पॉइंट सुपरट्रेंड संकेतों के साथ जोड़कर, रणनीति का उद्देश्य अधिक सूचित और विश्वसनीय ट्रेडिंग निर्णय लेना है।

लाभ विश्लेषण

  1. बढ़ी हुई सटीकता: एक प्रवृत्ति फ़िल्टर का समावेश संकेत उत्पन्न करने से पहले समग्र प्रवृत्ति दिशा की पुष्टि करके रणनीति की सटीकता में सुधार करता है।

  2. प्रवृत्ति निरंतरता: प्रवृत्ति फ़िल्टर के साथ पिवोट पॉइंट्स और सुपरट्रेंड का एकीकरण, मजबूत बाजार प्रवृत्तियों के दौरान ट्रेडों को लम्बा करने का लक्ष्य रखता है, संभावित रूप से लाभ के अवसरों को अधिकतम करता है।

  3. घटाया गया Whipsaws: रणनीति की भारित औसत गणना, ट्रेंड फिल्टर के साथ मिलकर, गलत संकेतों को कम करने में मदद करती है और अनिश्चित या पक्षीय बाजार स्थितियों के दौरान whipsaws को कम करती है।

  4. समर्थन और प्रतिरोध अंतर्दृष्टिः रणनीति पिवोट पॉइंट्स के आधार पर अतिरिक्त समर्थन और प्रतिरोध स्तर प्रदान करना जारी रखती है, जो व्यापारियों को मूल्यवान संदर्भ जानकारी प्रदान करती है।

जोखिम विश्लेषण

  1. पैरामीटर निर्भरताः रणनीति एटीआर अवधि और गुणक जैसे मापदंडों के प्रति संवेदनशील है। अनुचित सेटिंग्स से ओवरट्रेडिंग या खोए हुए अवसर हो सकते हैं।

  2. रुझान उलटाः रुझान उलटा होने के करीब, रणनीति गलत संकेत उत्पन्न कर सकती है जिसके परिणामस्वरूप अनावश्यक नुकसान हो सकता है। स्टॉप लॉस का उपयोग करके जोखिम का प्रबंधन किया जाना चाहिए।

  3. अति-अनुकूलनः सर्वोत्तम परिणामों के लिए मापदंडों का अनुकूलन किया जा सकता है लेकिन आगे की व्यवहार्यता की कमी है। मापदंड चयन पर बाजार और उपकरण मतभेदों के प्रभाव पर विचार किया जाना चाहिए।

  4. गैप जोखिमः जब कीमतें बैंड के बाहर चलती हैं, तो रणनीति एक फ्लैट स्थिति में प्रवेश करती है। यह अवसरों को याद कर सकता है जब रुझान एक गैप के बाद फिर से शुरू होते हैं।

अनुकूलन दिशाएँ

  1. अतिरिक्त फ़िल्टरः रणनीति की मजबूती बढ़ाने के लिए वॉल्यूम, अस्थिरता फ़िल्टर आदि जोड़े जा सकते हैं।

  2. गतिशील मापदंडः बदलती बाजार स्थितियों के आधार पर मापदंडों के स्वतः अनुकूलन या अनुकूलन के लिए विधियां रणनीति को अधिक बहुमुखी बना सकती हैं।

  3. स्टॉप लॉस: डाउनसाइड को प्रभावी ढंग से नियंत्रित करने के लिए रणनीति तर्क को बनाए रखते हुए स्टॉप लॉस तंत्रों को डिजाइन करने के तरीकों का शोध करें।

  4. क्रॉस-एसेट ऑप्टिमाइजेशनः विभिन्न बाजारों और साधनों में रणनीति मापदंडों का मूल्यांकन करें। प्रत्येक की विशिष्टताओं के अनुसार मापदंडों का अनुकूलन करें।

सारांश

पिवोट पॉइंट सुपरट्रेंड रणनीति सरलता और ट्रेंड फॉलो करने की क्षमता जैसे आयामों में अद्वितीय ताकत प्रदर्शित करती है। साथ ही, पैरामीटर, स्टॉप लॉस, क्रॉस-एसेट ऑप्टिमाइजेशन जैसे पहलू इसे और भी अधिक सार्वभौमिक और विश्वसनीय उपकरण में सुधारने के लिए जगह प्रदान करते हैं। कुल मिलाकर, यह व्यापारियों को बाजार के रुझानों को कैप्चर करने का एक कुशल साधन प्रदान करता है।


/*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)

अधिक