सुपरट्रेंड रणनीति एक प्रवृत्ति ट्रैकिंग रणनीति है जो औसत वास्तविक लहरों की गणना पर आधारित है। यह औसत वास्तविक लहरों का उपयोग स्टॉपलॉस लाइन स्थापित करने के लिए करता है और ट्रेड सिग्नल उत्पन्न करने के लिए प्रवृत्ति की दिशा का आकलन करता है कि क्या कीमतें स्टॉपलॉस लाइन को तोड़ती हैं या नहीं।
यह रणनीति पहले एक निश्चित अवधि में औसत वास्तविक तरंग दैर्ध्य एटीआर की गणना करती है। फिर एटीआर मानों के आधार पर एक स्केलिंग गुणांक के साथ लंबी लाइन स्टॉपलॉस लाइन और छोटी लाइन स्टॉपलॉस लाइन की गणना करती है। विशिष्ट गणना विधि इस प्रकार हैः
atr = mult * atr(length)
longStop = hl2 - atr
shortStop = hl2 + atr
जिसमें length एटीआर की गणना की अवधि की लंबाई है, और mult एटीआर का स्केलिंग गुणांक है।
स्टॉप लाइन की गणना करने के बाद, रणनीति यह निर्धारित करने के लिए जारी रहती है कि क्या कीमत ने रुझान की दिशा निर्धारित करने के लिए पिछले K लाइन की स्टॉप लाइन को तोड़ दिया हैः
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()