यह रणनीति एटीआर और मूल्य की तुलना करके मूल्य प्रवृत्ति दिशा का न्याय करती है, जो चलती औसत सहायक निर्णय के साथ संयुक्त है। अन्य प्रवृत्ति निर्णय विधियों की तुलना में, यह छोटे ड्रॉडाउन के साथ मूल्य प्रवृत्ति परिवर्तनों को तेजी से पकड़ सकती है।
मूल्य प्रवृत्ति निर्धारित करने के लिए इस रणनीति के मुख्य चरण निम्नलिखित हैंः
हाल के एन दिनों के एटीआर की गणना वाइल्डर की एटीआर गणना पद्धति का उपयोग करके की जाती है, जो वर्तमान बाजार अस्थिरता को बेहतर ढंग से प्रतिबिंबित कर सकती है।
एटीआर और एटीके गुणांक के आधार पर ऊपरी और निचले बैंड की गणना करें। ऊपरी बैंड = मूल्य - (एटीके x एटीआर); निचला बैंड = मूल्य + (एटीके x एटीआर) । एटीके आमतौर पर 2-3 के बीच सेट किया जाता है।
प्रवृत्ति की दिशा निर्धारित करने के लिए मूल्य की तुलना ऊपरी और निचले बैंड के साथ करें। ऊपरी बैंड का मूल्य ब्रेकआउट तेजी का संकेत है; निचले बैंड का मूल्य ब्रेकआउट मंदी का संकेत है।
ट्रेडिंग सिग्नल आने पर लॉन्ग या शॉर्ट लें। सिग्नल की गुणवत्ता निर्धारित करने के लिए यहां मूविंग एवरेज का प्रयोग किया जाता है।
जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस रणनीति जोड़ें।
निर्णय में सहायता के लिए रणनीति स्थिति के लिए रंग चिह्न का उपयोग करें.
यह रणनीति एटीआर के लाभों का पूर्ण लाभ उठाती है ताकि कीमतों के रुझान में बदलाव को जल्दी से पकड़ लिया जा सके और कम ड्रॉडाउन ऑपरेशन हासिल किया जा सके। यह एक बहुत ही व्यावहारिक ट्रेंड फॉलोअप रणनीति है।
इस रणनीति के लाभों में निम्नलिखित शामिल हैंः
मूल्य परिवर्तनों के लिए त्वरित प्रतिक्रिया। एटीआर नवीनतम बाजार पर तेजी से प्रतिक्रिया कर सकता है और समय पर रुझान परिवर्तनों को पकड़ने में मदद कर सकता है।
छोटे ड्रॉडाउनः ऊपरी और निचले बैंड के बीच बफर जोन स्टॉप लॉस ब्रेकआउट और निचले ड्रॉडाउन की संभावना को कम कर सकता है।
स्पष्ट ट्रेडिंग सिग्नल. रेंज ब्रेकआउट लंबी और छोटी दिशाओं के लिए उच्च गुणवत्ता वाले सिग्नल हैं.
उच्च अनुकूलन क्षमता. एटीआर अवधि और गुणक विभिन्न बाजार वातावरणों के अनुकूल करने के लिए समायोज्य हैं।
मजबूत विज़ुअलाइज़ेशन. ग्राफिक उपकरण रणनीतिक स्थिति को सहज रूप से प्रदर्शित करते हैं.
अनुकूलित करने के लिए आसान है. आगे के अनुकूलन के लिए स्टॉप लॉस, फिल्टर जैसे मॉड्यूल जोड़े जा सकते हैं.
सामान्य तौर पर, इस रणनीति में छोटे ड्रॉडाउन जैसे बकाया फायदे हैं, जो इसे ट्रेंड फॉलो करने वाली रणनीतियों के लिए बहुत उपयुक्त बनाते हैं।
कुछ जोखिम भी हैं:
रुझान निर्धारण त्रुटि का जोखिम। मूल्य समेकन के दौरान गलत संकेत हो सकते हैं।
बाहर निकलने के बिंदु के चयन का जोखिम। समय से पहले बाहर निकलने से बचने के लिए स्टॉप लॉस बिंदु को उचित रूप से सेट करने की आवश्यकता है।
पैरामीटर अनुकूलन जोखिम. एटीआर अवधि और गुणक को बार-बार परीक्षण और अनुकूलन की आवश्यकता होती है, अनुचित सेटिंग्स प्रदर्शन को प्रभावित करेंगी।
उच्च व्यापारिक आवृत्ति जोखिम। अत्यधिक बाजार अस्थिरता के दौरान व्यापारिक आवृत्ति बहुत अधिक हो सकती है।
मध्यम प्रदर्शन जोखिम कुछ बाजारों में स्पष्ट रुझानों के बिना प्रदर्शन असंतोषजनक हो सकता है।
लाइव ट्रेडिंग जोखिम के लिए समायोजन। लाइव ट्रेडिंग में स्लिप, कमीशन के लिए समायोजन करने की आवश्यकता है।
प्रणालीगत जोखिम: इस रणनीति पर ही निर्भर रहने के बजाय समग्र प्रणालीगत जोखिम नियंत्रण पर विचार किया जाना चाहिए।
जोखिमों को नियंत्रित किया जा सकता हैः
सटीकता में सुधार के लिए एटीआर मापदंडों का अनुकूलन।
रुझानों को निर्धारित करने के लिए बहु-समय-अंतराल विश्लेषण का उपयोग करना।
मुनाफे में लॉक करने और ड्रॉडाउन को कम करने के लिए स्टॉप लॉस को चलाना।
ट्रेडिंग आवृत्ति को नियंत्रित करने के लिए फ़िल्टर जोड़ना।
विभिन्न बाजारों के लिए मापदंडों को समायोजित करना।
सर्वोत्तम अनुप्रयोग परिदृश्य खोजने के लिए विभिन्न उत्पादों का परीक्षण करना।
लाइव ट्रेडिंग में सभी ट्रेडिंग जोखिमों पर व्यापक रूप से विचार करना।
इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
गलत संकेतों को कम करने के लिए चलती औसत जैसे फ़िल्टर जोड़ना। MACD, KDJ का उपयोग सहायक निर्णय के लिए किया जा सकता है।
इष्टतम मानों को खोजने के लिए विभिन्न अवधियों का परीक्षण करके एटीआर मापदंडों का अनुकूलन करना।
सिग्नल जनरेशन की संवेदनशीलता निर्धारित करने के लिए गुणक पैरामीटर का अनुकूलन।
एटीआर या अस्थिरता पर आधारित गतिशील स्टॉप लॉस रणनीतियों को जोड़ना। इससे ड्रॉडाउन को और कम किया जा सकता है।
विश्लेषण के लिए उच्च समय सीमा के संकेतकों का उपयोग करके छिटपुट झूठे संकेतों को फ़िल्टर करना।
सिग्नल निर्णय को बेहतर बनाने के लिए आरएनएन जैसे मशीन लर्निंग मॉडल को अपनाना।
उत्पाद की विशेषताओं के आधार पर मापदंडों को समायोजित करना। उदाहरण के लिए, अस्थिर स्टॉक के लिए कम एटीआर अवधि का उपयोग करना।
बेहतर प्रविष्टियों को खोजने के लिए ब्रेकआउट पुलबैक दृष्टिकोणों का उपयोग करके प्रवेश बिंदुओं का अनुकूलन करना।
सिग्नल की ताकत का आकलन करने के लिए वॉल्यूम संकेतकों का संयोजन।
रुझान गति संकेतक के आधार पर लाभ लेने की रणनीतियों को जोड़ना।
सामान्य तौर पर, यह सुपरट्रेंड रणनीति तेजी से प्रतिक्रिया और छोटे ड्रॉडाउन जैसे लाभों के साथ बहुत व्यावहारिक है। यह एक विशिष्ट प्रवृत्ति निम्नलिखित प्रणाली है। लेकिन लाइव ट्रेडिंग में निर्णय त्रुटियों और पैरामीटर अनुकूलन जैसे जोखिमों के लिए सावधान रहना चाहिए, और व्यापक जोखिम प्रबंधन को लागू किया जाना चाहिए। आगे अनुकूलन रणनीति को अधिक बाजारों में अधिक मजबूत और लाभदायक बना सकता है।
/*backtest start: 2023-09-06 00:00:00 end: 2023-10-06 00:00:00 period: 6h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © KivancOzbilgic //@version=4 strategy("SuperTrend STRATEGY", overlay=true) 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) showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false) highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true) barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true) 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 upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green) buySignal = trend == 1 and trend[1] == -1 plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0) plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0) dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red) sellSignal = trend == -1 and trend[1] == 1 plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0) plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0) mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0) longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor) fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor) 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() => true longCondition = buySignal if (longCondition) strategy.entry("BUY", strategy.long, when = window()) shortCondition = sellSignal if (shortCondition) strategy.entry("SELL", strategy.short, when = window()) buy1= barssince(buySignal) sell1 = barssince(sellSignal) color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na barcolor(barcoloring ? color1 : na) //@version=3 //study(title="3 Moving Average Exponential", shorttitle="3 EMA", overlay=true) //len1 = input(17, minval=1, title="Fast") //len2 = input(72, minval=1, title="Medium") len3 = input(305, minval=1, title="Slow") //src1 = input(close, title="Source Fast") //src2 = input(close, title="Source Medium") src3 = input(close, title="Source Slow") //out1 = ema(src1, len1) //out2 = ema(src2, len2) out3 = ema(src3, len3) //plot(out1, title="EMA1", color=fuchsia) //plot(out2, title="EMA2", color=orange) plot(out3, title="EMA3", color=color.blue)