यह एक डुअल टाइमफ्रेम सुपरट्रेंड ट्रैकिंग रणनीति है। यह दो अलग-अलग समय अवधि में सुपरट्रेंड संकेतकों को लागू करता है, एक मुख्य समय सीमा के रूप में प्रवृत्ति की दिशा निर्धारित करने के लिए, और एक सहायक समय सीमा के रूप में प्रविष्टियों को फ़िल्टर करने के लिए। यह केवल तब प्रवेश करता है जब दोनों समय सीमाओं में सुपरट्रेंड एक ही दिशा में होते हैं, अधिक सटीक रूप से प्रवृत्ति उलट बिंदुओं को पकड़ने के लिए।
इस रणनीति का मुख्य संकेतक सुपरट्रेंड है। सुपरट्रेंड कीमतों की अस्थिरता की गणना करके कीमतों की सापेक्ष प्रवृत्ति दिशा निर्धारित करता है। रणनीति दो समय अवधि में सुपरट्रेंड का उपयोग करती है, क्रमशः मुख्य और सहायक समय सीमाओं के लिए सुपरट्रेंड लाइनों की गणना करती है।
व्यापार का विशिष्ट तर्क हैः
मुख्य समय-सीमा सुपरट्रेंड की दिशा को समग्र प्रवृत्ति दिशा के रूप में प्रयोग करें।
प्रविष्ट करें जब सहायक समय सीमा सुपरट्रेंड उसी दिशा में एक संकेत जारी करता है।
स्टॉप लॉस सेट करें और लाभ अंक लें।
जब मुख्य समय फ्रेम सुपरट्रेंड फिर से चालू हो जाता है तो बाहर निकलें।
दो समय-सीमा संकेतकों को मिलाकर, कुछ विचलनों को अधिक सटीक प्रविष्टि के लिए फ़िल्टर किया जा सकता है।
इस रणनीति के लाभों में निम्नलिखित शामिल हैंः
दोहरे समय-सीमा संयोजन से अधिक सटीक रुझान आकलन संभव होता है।
सुपरट्रेंड ट्रेंड परिवर्तनों के प्रति संवेदनशील है, सटीक प्रविष्टि के साथ।
हानि रोकें और लाभ नियंत्रण जोखिम लें।
सरल और प्रत्यक्ष रणनीति तर्क, समझने में आसान।
मापदंडों को विभिन्न उत्पादों के लिए अनुकूलित किया जा सकता है।
मुख्य जोखिम हैंः
सुपरट्रेंड में देरी से गलत संकेत मिल सकते हैं।
अनुचित स्टॉप लॉस और टेक प्रॉफिट से ओवर-चेसिंग ट्रेंड या समय से पहले स्टॉप लॉस हो सकता है।
दोहरे समय-सीमा में कुछ कम पलटाव हो सकते हैं।
पैरामीटर अनुकूलन ऐतिहासिक आंकड़ों पर निर्भर करता है, ओवरफिटिंग के जोखिम मौजूद हैं।
लेन-देन की लागत पर विचार नहीं किया गया।
समाधान इस प्रकार हैं:
संकेतक मापदंडों को समायोजित करें, संयोजन सत्यापन के लिए अन्य संकेतक जोड़ें।
गतिशील रूप से स्टॉप लॉस को अनुकूलित करें और बैकटेस्ट परिणामों के आधार पर लाभ लें।
सहायक निर्णय के रूप में कम समय सीमा का परीक्षण करें।
बैकटेस्ट डेटा रेंज का विस्तार करें, मल्टी-मार्केट बैकटेस्ट सत्यापन।
कमीशन और स्लिप जैसे लेनदेन की लागत जोड़ें।
इस रणनीति को निम्नलिखित तरीकों से और अधिक अनुकूलित किया जा सकता हैः
इष्टतम संयोजन खोजने के लिए अधिक संकेतक संयोजनों का परीक्षण करना।
गतिशील रूप से मापदंडों का अनुकूलन करने के लिए मशीन लर्निंग का उपयोग करना।
बेहतर जोखिम-लाभ अनुपात के लिए स्टॉप लॉस और ले लाभ का अनुकूलन करना।
अधिक समय सीमाओं के संयोजन की कोशिश कर रहा है।
ट्रेडों की संख्या के आधार पर लाभ लेने और स्टॉप लॉस की सीमाओं को समायोजित करना।
कमीशन और फिसलने का तर्क जोड़ना।
ग्राफिकल पैरामीटर अनुकूलन उपकरण विकसित करना।
यह रणनीति दोहरी समय सीमा सुपरट्रेंड संकेतकों का उपयोग करके अपेक्षाकृत सटीक प्रवृत्ति निर्णय और प्रविष्टियों को प्राप्त करती है। यह स्टॉप लॉस और ले लाभ सेट करके जोखिमों को नियंत्रित करती है। रणनीति तर्क सरल और स्पष्ट है, विस्तार और अनुकूलन के लिए आसान है। इसे और अधिक संकेतक पेश करके, गतिशील रूप से अनुकूलन मापदंडों, लेनदेन लागत आदि को जोड़कर और अधिक मजबूत बनाने के लिए और अधिक सुधार किया जा सकता है। कुल मिलाकर, यह रणनीति एक उपयोगी दोहरी समय सीमा प्रवृत्ति ट्रैकिंग विचार प्रदान करती है जो एक अच्छा संदर्भ मूल्य रखती है।
/*backtest start: 2023-08-22 00:00:00 end: 2023-09-21 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator // strategy("Super Trend 2", overlay=true, default_qty_value=100) TrendUp = 0.0 TrendDown = 0.0 Trend = 0.0 MTrendUp = 0.0 MTrendDown = 0.0 MTrend = 0.0 res = input(title="Main SuperTrend Time Frame", defval="120") Factor=input(1, minval=1,maxval = 100) Pd=input(1, minval=1,maxval = 100) tp = input(500,title="Take Profit") sl = input(400,title="Stop Loss") Up=hl2-(Factor*atr(Pd)) Dn=hl2+(Factor*atr(Pd)) MUp=security(syminfo.tickerid,res,hl2-(Factor*atr(Pd))) MDn=security(syminfo.tickerid,res,hl2+(Factor*atr(Pd))) Mclose=security(syminfo.tickerid,res,close) TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn MTrendUp:=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp MTrendDown:=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1) Tsl = Trend==1? TrendUp: TrendDown MTrend := Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1) MTsl = MTrend==1? MTrendUp: MTrendDown linecolor = Trend == 1 ? green : red plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend") Mlinecolor = MTrend == 1 ? blue : orange plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main 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) up = Trend == 1 and Trend[1] == -1 and MTrend == 1 down = Trend == -1 and Trend[1] == 1 and MTrend == -1 plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0) plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0) golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 strategy.entry("Buy", strategy.long,when=golong) strategy.exit("Close Buy","Buy",profit=tp,loss=sl) strategy.entry("Sell", strategy.short,when=goshort) strategy.exit("Close Sell","Sell",profit=tp,loss=sl)