यह रणनीति संकेतों को निर्धारित करने के लिए एटीआर संकेतक और ईएमए लाइनों के साथ संयुक्त बोलिंगर बैंड का उपयोग करती है। यह खरीद संकेत उत्पन्न करता है जब कीमत बोलिंगर ऊपरी बैंड के माध्यम से टूटती है और ईएमए लाइन के ऊपर जल्दी से पार करती है। यह बेच संकेत उत्पन्न करती है जब कीमत बोलिंगर निचले बैंड के माध्यम से टूटती है और ईएमए लाइन के नीचे जल्दी से पार करती है। एटीआर संकेतक का उपयोग स्टॉप लॉस सेट करने के लिए किया जाता है।
बोलिंगर मिडलाइन, ऊपरी बैंड और निचले बैंड की गणना करें। मिडलाइन एन-पीरियड एसएमए है, ऊपरी बैंड मिडलाइन + एम हैn-अवधि मानक विचलन, निचला बैंड मध्य रेखा है - mn-अवधि मानक विचलन।
स्टॉप लॉस को ट्रैक करने के लिए एटीआर संकेतक की गणना करें।
मूल्य गति निर्धारित करने के लिए 1-अवधि और n-अवधि ईएमए रेखाओं की गणना करें।
जब कीमत तेजी से बोलिंगर के ऊपरी बैंड और ईएमए लाइन से ऊपर जाती है, तो एक खरीद संकेत उत्पन्न होता है।
जब कीमत तेजी से बोलिंगर के निचले बैंड और ईएमए लाइन से नीचे जाती है, तो एक बिक्री संकेत उत्पन्न होता है।
एटीआर संकेतक स्टॉप लॉस पॉइंट्स सेट करता है, फंसने से बचने के लिए मूल्य ब्रेकआउट दिशा को ट्रैक करता है।
एटीआर स्टॉप लॉस के साथ जोड़े गए बोलिंगर बैंड जोखिम को प्रभावी ढंग से नियंत्रित कर सकते हैं।
ईएमए तेज और धीमी रेखाएं गति की दिशा निर्धारित करती हैं, झूठे ब्रेकआउट से बचती हैं।
समायोज्य मापदंड विभिन्न बाजार वातावरणों के अनुकूल हैं।
उच्च व्यापारिक आवृत्ति के साथ स्पष्ट खरीद/बिक्री संकेत, अल्पकालिक व्यापार के लिए उपयुक्त।
एटीआर संकेतक समय पर स्टॉप लॉस को ट्रैक करता है।
संकीर्ण बोलिंगर बैंड्स सीमा अधिक शोर व्यापार का कारण बन सकती है।
एटीआर पैरामीटर को बहुत कम सेट करने से स्टॉप लॉस बहुत करीब हो सकता है जिसके परिणामस्वरूप फंस जाना पड़ सकता है।
ईएमए मापदंडों को विभिन्न चक्र प्रभावों के लिए समायोजित करने की आवश्यकता है।
उतार-चढ़ाव वाले बाजार से अधिक ट्रेड हो सकते हैं, सावधानी बरतने की जरूरत है।
स्टॉप लॉस को ट्रैक करना कभी-कभी बहुत आक्रामक हो सकता है, जिससे हानि का विस्तार हो सकता है।
ट्रेडिंग संकेतों को फ़िल्टर करने के लिए अन्य संकेतकों के साथ संयोजन करें, उदाहरण के लिए ओवरबॉट/ओवरसोल्ड के लिए आरएसआई, विचलन के लिए केडीजे आदि।
एटीआर पर आधारित बोलिंगर मापदंडों को गतिशील रूप से मूल्य उतार-चढ़ाव के अनुरूप समायोजित करने पर विचार करें।
सर्वोत्तम पैरामीटर संयोजन के लिए विभिन्न ईएमए चक्र मापदंडों का परीक्षण करें।
आक्रामक स्टॉप लॉस से बचने के लिए अस्थिरता के आधार पर एटीआर मापदंडों को समझदारी से समायोजित करें।
खरीद/बिक्री निर्णयों के समय निर्धारण में सहायता के लिए डीप लर्निंग मॉडल को शामिल करने पर विचार करें।
इस रणनीति में स्पष्ट तर्क है जो मूल्य ब्रेकआउट को पकड़ने के लिए बोलिंगर बैंड का उपयोग करता है, स्टॉप लॉस रेंज सेट करने के लिए एटीआर, गति ब्रेकआउट के व्यापक निर्णय के लिए गति की दिशा निर्धारित करने के लिए ईएमए, जो प्रभावी रूप से अल्पकालिक मूल्य रुझानों को पकड़ सकता है। व्यापक निर्णय के लिए कई संकेतकों को मिलाकर संकेत की गुणवत्ता में सुधार हो सकता है। अधिक स्थिरता और लोच के लिए इस रणनीति को और परिष्कृत करने के लिए पैरामीटर ट्यूनिंग, संकेतक संयोजन आदि के माध्यम से अनुकूलन के लिए अभी भी जगह है।
/*backtest start: 2022-11-07 00:00:00 end: 2023-11-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="UT Bot Strategy", overlay = true) //CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. // Inputs a = input(1, title = "Key Vaule. 'This changes the sensitivity'") c = input(10, title = "ATR Period") h = input(false, title = "Signals from Heikin Ashi Candles") src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close length = input(20, minval=1) mult = input(2.0, minval=0.001, maxval=50, title="StdDev") basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev bbr = (src - lower)/(upper - lower) // plot(bbr, "Bollinger Bands %B", color=#26A69A) // band1 = hline(1, "Overbought", color=#787B86, linestyle=hline.style_dashed) // hline(0.5, "Middle Band", color=color.new(#787B86, 50)) // band0 = hline(0, "Oversold", color=#787B86, linestyle=hline.style_dashed) // fill(band1, band0, color=color.rgb(38, 166, 154, 90), title="Background") xATR = atr(c) nLoss = a * xATR xATRTrailingStop = 0.0 xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss), iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss))) pos = 0 pos := iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1, iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue ema = ema(src,1) emaFast = ema(src,144) emaSlow = ema(src,576) sma = sma(src, c) above = crossover(ema, xATRTrailingStop) below = crossover(xATRTrailingStop, ema) smaabove = crossover(src, sma) smabelow = crossover(sma, src) buy = src > xATRTrailingStop and above and (bbr>20 or bbr<80) sell = src < xATRTrailingStop and below and (bbr>20 or bbr<80) // buy = src > xATRTrailingStop // sell = src < xATRTrailingStop barbuy = src > xATRTrailingStop barsell = src < xATRTrailingStop // plot(emaFast , color = color.rgb(243, 206, 127), title="emaFast") plot(xATRTrailingStop, color = color.rgb(233, 233, 232), title="xATRTrailingStop") plotshape(buy, title = "Buy", text = 'Buy', style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny) plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny) // plotshape(buy, title = "Sell", text = 'Sell', style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny) // plotshape(sell, title = "buy", text = 'buy', style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny) barcolor(barbuy ? color.green : na) barcolor(barsell ? color.red : na) // strategy.entry("short", false, when = buy) // strategy.entry("long ", true, when = sell) strategy.entry("long", true, when = buy) strategy.entry("short ", false, when = sell)