बोलिंगर बैंड्स रणनीति एक क्लासिक रणनीति है जो बोलिंगर बैंड्स का उपयोग ट्रेंड ट्रैकिंग और ओवरबॉट / ओवरसोल्ड संकेतों के लिए करती है। यह संस्करण मूल रणनीति पर जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस तंत्र जोड़ता है।
रणनीति स्थिति स्थापित करने के लिए ऊपरी/निम्न बोलिंगर बैंड के स्वर्ण/मृत क्रॉसओवर के माध्यम से ओवरबॉट/ओवरसोल्ड स्थितियों का न्याय करती है। बैंड के बीच का क्षेत्र वर्तमान बाजार अस्थिरता रेंज को दर्शाता है। बैंड में मध्य, ऊपरी और निचले बैंड होते हैं, जहां मध्य बैंड एन-दिवसीय सरल चलती औसत है और ऊपरी/निम्न बैंड मध्य बैंड +/- के मानक विचलन हैं।
बोलिंगर बैंड बाजार की अस्थिरता और दोलन रेंज को दर्शाता है। निचले बैंड को छूने का मतलब है ओवरसोल्ड स्टेटस क्वो - अंतराल को भरने की अधिक संभावना है। इस प्रकार औसत रिवर्स सिद्धांत के आधार पर लंबी स्थिति पर विचार किया जाना चाहिए। इसी तरह, ऊपरी बैंड को छूने से संभावित ओवरबॉट स्थितियों और संभावित मूल्य उलटों का प्रतिनिधित्व होता है, इसलिए नीचे की चाल पर लाभ के लिए छोटी स्थिति स्थापित की जा सकती है।
यह रणनीति ट्रेंड ट्रैकिंग प्रविष्टियों के लिए बोलिंगर बैंड्स से ओवरबॉट/ओवरसोल्ड संकेतों को जोड़ती है। जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस तंत्र शामिल किए गए हैं।
जब कीमत निचले बैंड से ऊपर जाती है, तो बाजार ओवरसोल्ड क्षेत्र को उचित सीमा में छोड़ देता है। लंबी स्थिति खोली जा सकती है। जब कीमत ऊपरी बैंड से नीचे जाती है, तो बाजार ओवरबॉट हो जाता है। फिर शॉर्ट्स खोले जा सकते हैं।
आदेशों को पूरा करने के बाद, जोखिमों को प्रबंधित करने के लिए निश्चित प्रतिशत स्टॉप लॉस स्तर निर्धारित किए जाते हैं। जब नुकसान स्टॉप लॉस प्रतिशत से अधिक होते हैं, तो आगे के नुकसान को सीमित करने के लिए वर्तमान पदों को रोक दिया जाता है।
बैंड क्रॉसओवर के आधार पर कम खरीद-बिक्री-बिक्री सेटअप के लिए बोलिंगर बैंड्स के साथ ओवरबॉट/ओवरसोल्ड स्तरों की पहचान करें।
बोलिंगर बैंड्स की अस्थिरता संपत्ति के माध्यम से रुझानों को पकड़ें।
स्टॉप लॉस तंत्र प्रभावी रूप से प्रति व्यापार अधिकतम हानि को सीमित करता है।
ट्रेंड ट्रैकिंग और स्टॉप लॉस का संयोजन स्थिर लाभ देता है।
पैरामीटर सेटिंग्स सिग्नल की गुणवत्ता को प्रभावित करती हैं। मध्य बैंड लंबाई N और मानक विचलन गुणक K को विभिन्न बाजारों के लिए तर्कसंगत रूप से सेट किया जाना चाहिए, अन्यथा सटीकता पीड़ित होगी।
ओवरसाइज्ड या अंडरसाइज्ड स्टॉप लॉस रिटर्न स्थिरता को नुकसान पहुंचाता है। ओवरसाइज्ड प्रतिशत प्रति ट्रेड भारी नुकसान का जोखिम उठाते हैं, जबकि अंडरसाइज्ड प्रतिशत जोखिम समय से पहले स्टॉप लॉस को ट्रिगर करते हैं। विभिन्न उत्पादों के आधार पर उचित प्रतिशत निर्धारित किया जाना चाहिए।
अन्य संकेतकों के साथ अतिरिक्त फ़िल्टर संकेत की सटीकता में सुधार कर सकते हैं।
उच्च आवृत्ति व्यापार और पूंजी उपयोग दक्षता में सुधार के लिए विभिन्न धारण अवधि सेटिंग्स का परीक्षण किया जा सकता है, जैसे कि प्रति घंटे या कम अवधि के बैंड को मिलाकर।
यह रणनीति ओवरबॉट/ओवरसोल्ड सिग्नल के लिए बोलिंगर बैंड का लाभ उठाती है और जोखिम नियंत्रण के लिए स्टॉप लॉस को शामिल करती है। यह एक आम ट्रेंड ट्रैकिंग रणनीति है। मापदंडों को अनुकूलित करने, अधिक सटीक संकेतों और स्टॉप लॉस स्तरों को एकीकृत करने के माध्यम से, स्थिर लाभ प्राप्त किया जा सकता है।
/*backtest start: 2023-11-15 00:00:00 end: 2023-11-22 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Bollinger Bands Strategy", overlay=false, shorttitle="BBS", pyramiding=0, currency=currency.USD, commission_type=strategy.commission.percent, commission_value=0.03, initial_capital=1000) source = input(close, "Source") length = input.int(20, minval=1) mult = input.float(2.0, minval=0.001, maxval=50, step=0.001) stopLossFactor = input.float(1, "Stop Loss Percent", maxval = 100, minval = 0, step=0.1) basis = ta.sma(source, length) dev = mult * ta.stdev(source, length) upper = basis + dev lower = basis - dev var float lastTradePrice = na var float stopLossLow = na var float stopLossHigh = na var bool currentIsLong = na var bool nextExpectedIsLong = true var bool existedLong = false var bool existedShort = false buyEntry = ta.crossover(source, lower) sellEntry = ta.crossunder(source, upper) if (buyEntry and nextExpectedIsLong == true) strategy.entry("BBandLE", strategy.long, comment="BBandLE") nextExpectedIsLong := false if(nz(strategy.position_size[1], 0) < 0) // new position detected lastTradePrice := close stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100)) stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100)) else strategy.cancel("BBandLE") if (sellEntry and nextExpectedIsLong == false) strategy.entry("BBandSE", strategy.short, comment="BBandSE") nextExpectedIsLong := true if(nz(strategy.position_size[1], 0) > 0) // new position detected lastTradePrice := close stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100)) stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100)) else strategy.cancel("BBandSE") strategy.close("BBandLE", close < stopLossLow) strategy.close("BBandSE", close > stopLossHigh) // if(nz(strategy.position_size[1], 0) < 0 and close > stopLossHigh) // strategy.entry("BBandLE", strategy.long, comment="BBandLE") // lastTradePrice := close // stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100)) // stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100)) // if(nz(strategy.position_size[1], 0) > 0 and close < stopLossLow) // strategy.exit("BBandSE", strategy.short, comment="BBandSE") // lastTradePrice := close // stopLossLow := lastTradePrice * (1 - (stopLossFactor / 100)) // stopLossHigh := lastTradePrice * (1 + (stopLossFactor / 100)) plot(source, "close", color.blue) plot(lower, "lower", color.red) plot(upper, "upper", color.red) plot(stopLossLow, "StopLossLow", color.black) plot(stopLossHigh, "StopLossHigh", color.black) plot(lastTradePrice, "lastTradePrice", color.green) plotchar(strategy.position_size > 0, char="-", size=size.tiny, location=location.bottom, color=color.green) plotchar(strategy.position_size < 0, char="-", size=size.tiny, location=location.bottom, color=color.red)