
सुपरट्रेंड ट्रेडिंग रणनीति (Supertrend Trading Strategy) एक प्रवृत्ति-अनुवर्ती रणनीति है जो औसत वास्तविक सीमा (ATR) और चलती औसत (MA) पर आधारित है। यह मध्य-अवधि की प्रवृत्ति की दिशा की पहचान करने और प्रवृत्ति में परिवर्तन के आधार पर व्यापार संकेत उत्पन्न करने के लिए प्रवृत्ति-अनुवर्ती और ब्रेक-आउट ट्रेडिंग के फायदे को जोड़ती है।
इस रणनीति का मुख्य विचार यह है कि जब कीमतें सुपरट्रेंड चैनल को तोड़ती हैं, तो यह संकेत देती है कि रुझान उलट रहा है, और इस समय खरीदा या बेचा जाता है। यह एक ही समय में लाभ को लॉक करने और जोखिम को नियंत्रित करने के लिए स्टॉप-लॉस और स्टॉप-स्टॉप स्तर सेट करता है।
सुपरट्रेंड रणनीति की गणना प्रक्रिया निम्नलिखित चरणों में विभाजित हैः
इस रणनीति का लाभ यह है कि यह ट्रेडिंग के तरीकों को एक साथ जोड़ती है जो ट्रेंड का पालन करते हैं और ट्रेंड रिवर्स करते हैं। यह एक बड़ी प्रवृत्ति की दिशा का आकलन करने के साथ-साथ रिवर्स के अवसरों को समय पर पकड़ने में सक्षम है। इसके अलावा, यह जोखिम को नियंत्रित करने के लिए एक स्टॉप-लॉस-स्टॉप तंत्र भी स्थापित करता है।
सुपरट्रेंड रणनीति के निम्नलिखित फायदे हैंः
1. मध्यम अवधि के रुझानों को ट्रैक करना
सुपर ट्रेंड चैनल एटीआर गणना पर आधारित है, जो मध्यम अवधि के मूल्य उतार-चढ़ाव की सीमा को प्रभावी ढंग से दर्शाता है। यह सामान्य चलती औसत की तुलना में मध्यम अवधि के रुझानों को बेहतर तरीके से ट्रैक करता है।
2. समय पर रुझानों को पकड़ना
जब कीमत एक चैनल को तोड़ती है, तो एक त्वरित ट्रेडिंग सिग्नल जारी किया जाता है, जो बड़े रुझान के पलटाव को समय पर पकड़ सकता है। यह स्थिति को ठीक से समायोजित करने और ओवरटर्म होल्डिंग को कम करने के लिए गारंटी प्रदान करता है।
3. क्षति-रोकने की व्यवस्था
इस रणनीति में एक साथ स्टॉप और स्टॉप-लॉस सेट होते हैं, जो स्वचालित रूप से स्टॉप-लॉस को रोकते हैं। यह व्यापक रूप से स्टॉप-लॉस के जोखिम को कम करता है, जो प्रवृत्ति की स्थिति को समझने में मदद करता है।
4. सरलता
इस रणनीति में मुख्य रूप से औसत रेखा और एटीआर संकेतकों का उपयोग किया जाता है, इसे सरल और आसान बनाने के लिए। इससे फिक्स्ड डिस्क ऑपरेशन की कठिनाई कम हो जाती है।
5. धन का उपयोग करने की क्षमता
सुपर ट्रेंड रणनीति मध्यम अवधि के रुझानों को ट्रैक करती है और एकल स्लाइड पॉइंट को नियंत्रित करती है, जिससे समग्र धन उपयोगिता में सुधार होता है।
सुपरट्रेंड रणनीति के कुछ संभावित जोखिम भी हैं:
1. उच्च अवसर लागत के साथ उतार-चढ़ाव
सुपरट्रेंड्स रणनीति मध्यम और दीर्घकालिक रुझानों पर ध्यान केंद्रित करती है, और बाजारों में उतार-चढ़ाव के कारण, लागत अधिक होती है, और कुछ शून्य अवसरों को याद किया जा सकता है।
2. पैरामीटर अनुकूलन प्रभाव
एटीआर चक्र और एटीआर गुणांक की पसंद ट्रेडिंग रणनीति के प्रभाव पर अधिक प्रभाव डालती है। यदि पैरामीटर गलत तरीके से सेट किया जाता है, तो ट्रेडिंग सिग्नल की प्रभावशीलता को कम कर दिया जाएगा।
3. कुछ पिछड़ापन
सुपरट्रेंड चैनल की गणना में कुछ देरी हो सकती है, जिसके कारण सिग्नल समय से पहले उत्पन्न नहीं हो सकते हैं। यह मुख्य समस्या है जिसे रणनीति को हल करने की आवश्यकता है।
4. सख्त रोकथाम की आवश्यकता
यदि स्टॉप पोजीशन को बहुत बड़ा सेट किया जाता है या वेंडर को पूरी तरह से नियंत्रित नहीं किया जाता है, तो चरम स्थितियों में अधिक नुकसान हो सकता है। इसलिए स्थिर लाभ प्राप्त करने के लिए स्टॉप लॉस रणनीति को सख्ती से लागू करना आवश्यक है।
सुपरट्रेंड्स रणनीति में और अधिक अनुकूलन के लिए जगह है, जिसमें मुख्य रूप से शामिल हैंः
1. कई एटीआर चक्रों के संयोजन
एटीआर चक्रों को जोड़कर, जैसे कि 10 और 20 दिन, एटीआर सूचकांक का एक संयोजन बनाया जा सकता है। इससे सूचकांक की संवेदनशीलता में सुधार हो सकता है, जिससे देरी की समस्या में सुधार हो सकता है।
2. स्टॉप लॉस पॉलिसी मॉड्यूल जोड़ें
इसके अलावा, ट्रिपल स्टॉप, ऑसिलेशन स्टॉप और अनुक्रमिक स्टॉप जैसे रणनीति मॉड्यूल को जोड़कर, स्टॉप कंट्रोल को और मजबूत किया जा सकता है, जिससे नुकसान के जोखिम को कम किया जा सकता है।
3. अनुकूलित पैरामीटर सेटिंग्स
एटीआर चक्र, एटीआर गुणांक और अन्य पैरामीटर सेटिंग्स को अनुकूलित करें, सर्वोत्तम पैरामीटर संयोजन की तलाश करें, जिससे रणनीतिक लाभ को और बढ़ाया जा सके। इसके अलावा, पैरामीटर को गतिशील रूप से अनुकूलित किया जा सकता है, विभिन्न किस्मों और बाजार चरणों के अनुसार उपयुक्त मान चुनें।
4. एकीकृत मशीन लर्निंग मॉडल
अंत में, मशीन सीखने के मॉडल को एकीकृत करने का प्रयास किया जा सकता है, जिससे रुझान निर्णय और सिग्नल उत्पन्न करने वाले स्वचालन को सक्षम किया जा सके। यह व्यक्तिपरक कारकों के हस्तक्षेप को कम कर सकता है, जो रणनीति प्रणाली की स्थिरता को और बेहतर बनाने की संभावना है।
सुपर ट्रेंड ट्रेडिंग रणनीति मध्यवर्ती प्रवृत्ति को समझने के लिए औसत रेखा सूचक और एटीआर सूचक का एकीकृत उपयोग करती है, और प्रवृत्ति के मोड़ पर व्यापार संकेत उत्पन्न करती है, स्वचालित स्टॉपलॉस प्राप्त करती है। यह रणनीति बड़े रुझान को पकड़ने के साथ-साथ समय पर कुछ पलटाव के अवसरों को भी पकड़ सकती है। इसका लाभ मुख्य रूप से मध्यवर्ती प्रवृत्ति ट्रैकिंग, प्रवृत्ति उलट पहचान और स्टॉपलॉस नियंत्रण के तीन पहलुओं में दिखाई देता है।
लेकिन इस रणनीति में कुछ कमियां भी हैं, मुख्य रूप से अस्थिरता की स्थिति को समझने और पीछे रहने की समस्या। इसे कई तरीकों से अनुकूलित करने की आवश्यकता है, जैसे कि एटीआर चक्र को जोड़ना, स्टॉप लॉस मॉड्यूल को बढ़ाना, पैरामीटर अनुकूलन और मशीन सीखने को शुरू करना। यह निश्चित रूप से सुपरट्रेंड रणनीति की स्थिरता और गोल्ड रेट को और बढ़ा सकता है।
/*backtest
start: 2022-11-30 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Supertrend V1.0 - Buy or Sell Signal",overlay=true)
Factor=input(3, minval=1,maxval = 100)
Pd=input(7, minval=1,maxval = 100)
//Calculating ATR
atrLength = input(title="ATR Length:", defval=14, minval=1)
Stop_Loss_Factor = input(1.5, minval=0,step=0.01)
factor_profit = input(1.0, minval=0,step=0.01)
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 4, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 10, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2016, title = "From Year", minval = 2009)
ToMonth = input(defval = 4, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 10, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2039, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
// Calculate ATR
atrValue=atr(atrLength)
decimals = abs(log(syminfo.mintick) / log(10))
Atr = atrValue
if(decimals == 5)
Atr := atrValue * 10000
if(decimals == 4)
Atr := atrValue * 1000
if(decimals == 3)
Atr := atrValue * 100
if(decimals == 2)
Atr := atrValue * 10
//VJ2 Supertrend
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
TrendUp = 0.0
TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown = 0.0
TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn
Trend = 0.0
Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = 0.0
Tsl := Trend==1? TrendUp: TrendDown
linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")
plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)
//plot(Trend==1 and Trend[1]==-1,color = linecolor, style = circles, linewidth = 3,title="Trend")
plotarrow(Trend == 1 and Trend[1] == -1 ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(Trend == -1 and Trend[1] == 1 ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)
//Strategy
Trend_buy = Trend == 1
Trend_buy_prev = Trend[1] == -1
algo_buy_pre = Trend_buy and Trend_buy_prev
algo_buy = algo_buy_pre == 1 ? 1 : na
Trend_sell= Trend == -1
Trend_sell_prev = Trend[1] == 1
algo_sell_pre = Trend_sell and Trend_sell_prev
algo_sell = algo_sell_pre == 1 ? 1:na
strategy.entry("Long1", strategy.long, when= window() and algo_buy==1)
strategy.entry("Short1", strategy.short, when=window() and algo_sell==1)
bought = strategy.position_size > strategy.position_size
sold = strategy.position_size < strategy.position_size
longStop = Stop_Loss_Factor * valuewhen(bought, Atr, 0)
shortStop = Stop_Loss_Factor * valuewhen(sold, Atr, 0)
longProfit = factor_profit * longStop
shortProfit = factor_profit * shortStop
if(decimals == 5)
longStop := longStop *100000
longProfit := longProfit *100000
if(decimals == 4)
longStop := longStop * 10000
longProfit := longProfit * 10000
if(decimals == 3)
longStop := longStop * 1000
longProfit := longProfit * 1000
if(decimals == 2)
longStop := longStop * 100
longProfit := longProfit *100
if(decimals == 5)
shortStop := shortStop * 100000
shortProfit := shortProfit * 100000
if(decimals == 4)
shortStop := shortStop * 10000
shortProfit := shortProfit * 10000
if(decimals == 3)
shortStop := shortStop * 1000
shortProfit := shortProfit * 1000
if(decimals == 2)
shortStop := shortStop * 100
shortProfit := shortProfit * 100
strategy.exit("Exit Long", from_entry = "Long1", loss =longStop, profit = longProfit)
strategy.exit("Exit Short", from_entry = "Short1", loss =shortStop, profit = shortProfit)