सुपरट्रेंड रणनीति

लेखक:चाओझांग, दिनांक: 2023-10-13 17:03:55
टैगः

अवलोकन

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

रणनीति तर्क

रणनीति पहले एक निश्चित अवधि में औसत सच्ची सीमा (एटीआर) की गणना करती है। फिर यह लंबी स्टॉप लॉस लाइन और छोटी स्टॉप लॉस लाइन की गणना करने के लिए एक स्केलिंग कारक से गुणा एटीआर मूल्य का उपयोग करती है। विशिष्ट गणना निम्नानुसार हैः

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 

अंत में, खरीदारी या बिक्री संकेत दिखाई देने पर संबंधित व्यापारिक क्रियाएं की जाती हैं।

लाभ

  1. स्टॉप लॉस लाइनों की गणना करने के लिए एटीआर का उपयोग करने से प्रभावी रूप से बाजार शोर को फ़िल्टर किया जा सकता है और अधिक विश्वसनीय रुझान संकेतों को कैप्चर किया जा सकता है।

  2. रणनीति में कुछ पैरामीटर हैं जो समझने और संचालित करने में आसान हैं। विभिन्न बाजार स्थितियों के अनुकूल एटीआर अवधि और गुणक को समायोजित किया जा सकता है।

  3. रुझान दिशा परिवर्तन निर्धारित करने के लिए स्टॉप लॉस लाइन ब्रेकआउट का उपयोग करके जोखिमों को प्रभावी ढंग से नियंत्रित किया जा सकता है और समय पर स्टॉप लॉस किया जा सकता है।

  4. विभिन्न व्यापारिक शैलियों के अनुरूप केवल लंबी या दो दिशा व्यापार के लिए विन्यस्त करने योग्य।

  5. इसका उपयोग किसी भी समय सीमा और विभिन्न व्यापारिक साधनों के लिए किया जा सकता है।

जोखिम

  1. रेंजिंग बाजारों में, एटीआर को उच्चतर खींचा जा सकता है जिससे व्यापक स्टॉप लॉस और अधिक झूठे संकेत होते हैं।

  2. इष्टतम पैरामीटर संयोजन अनिश्चित है। एटीआर अवधि और गुणक को बाजार की स्थितियों के आधार पर अनुकूलन की आवश्यकता है।

  3. प्रत्येक व्यापारिक साधन के लिए इष्टतम समय सीमा ज्ञात नहीं है और इसका परीक्षण किया जाना आवश्यक है।

  4. सबसे अच्छा प्रवेश समय स्पष्ट नहीं है और कुछ विलंब मौजूद है।

  5. जब प्रवृत्ति कमजोर होती है तो बाजार में नहीं होने का जोखिम होता है।

  6. स्टॉप-लॉस को मारने के जोखिम हैं। व्यापक स्टॉप-लॉस पर विचार किया जा सकता है।

सुधार

  1. एमएसीडी, आरएसआई जैसे अन्य संकेतकों को फ़िल्टरिंग के लिए शामिल किया जा सकता है ताकि बाजारों में गलत संकेतों से बचा जा सके।

  2. इष्टतम पैरामीटर सेट खोजने के लिए मशीन लर्निंग या आनुवंशिक एल्गोरिदम का उपयोग किया जा सकता है।

  3. सर्वोत्तम एटीआर अवधि और गुणक खोजने के लिए प्रत्येक साधन के लिए पैरामीटर अनुकूलन किया जा सकता है।

  4. वॉल्यूम संकेतकों का उपयोग बेहतर प्रवेश समय निर्धारित करने और समय से पहले प्रवेश से बचने के लिए किया जा सकता है।

  5. बाजार में नहीं होने पर स्थिति रखने के लिए लॉक करने की रणनीति का उपयोग करने पर विचार करें।

  6. स्टॉप लॉस की चौड़ाई को ट्रेंड स्ट्रेंथ इंडिकेटर के साथ आराम से और अनुकूलित किया जा सकता है।

निष्कर्ष

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


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


अधिक