यह रणनीति बोलिंगर बैंड और स्टोकेस्टिक ऑसिलेटर पर आधारित एक ट्रेडिंग रणनीति है। यह बाजार की अस्थिरता सीमा निर्धारित करने के लिए बोलिंगर बैंड का उपयोग करती है और बाजार के ओवरबॉयड और ओवरसोल्ड राज्यों का न्याय करने के लिए स्टोकेस्टिक ऑसिलेटर का उपयोग करती है। जब कीमत ऊपरी बोलिंगर बैंड से ऊपर टूट जाती है, तो रणनीति लंबी जाती है; जब कीमत निचले बोलिंगर बैंड से नीचे गिरती है, तो रणनीति छोटी हो जाती है। साथ ही, रणनीति की सटीकता और विश्वसनीयता में सुधार के लिए ट्रेडिंग संकेतों को फ़िल्टर करने के लिए स्टोकेस्टिक ऑसिलेटर का भी उपयोग करती है।
इस रणनीति के मूल में दो तकनीकी संकेतक हैंः बोलिंगर बैंड और स्टोकास्टिक ऑसिलेटर। बोलिंगर बैंड में तीन लाइनें होती हैंः मध्य बैंड, ऊपरी बैंड और निचला बैंड। मध्य बैंड कीमत का एक सरल चलती औसत है, जबकि ऊपरी और निचले बैंड मूल्य के मानक विचलन के एक निश्चित गुणक के साथ मध्य बैंड और माइनस हैं। जब कीमत ऊपरी बैंड से ऊपर टूटती है, तो यह इंगित करता है कि बाजार ओवरबॉट हो सकता है; जब कीमत निचले बैंड से नीचे गिरती है, तो यह इंगित करता है कि बाजार ओवरसोल्ड हो सकता है।
स्टोकैस्टिक ऑसिलेटर में दो रेखाएं होती हैं: %K रेखा और %D रेखा। %K रेखा हाल की अवधि में उच्चतम और निम्नतम कीमतों के भीतर समापन मूल्य की स्थिति को मापती है, और %D रेखा %K रेखा का एक चलती औसत है। जब %K रेखा %D रेखा के ऊपर से गुजरती है, तो यह इंगित करती है कि बाजार अधिक खरीदा जा सकता है; जब %K रेखा %D रेखा के नीचे से गुजरती है, तो यह इंगित करती है कि बाजार अधिक बेचा जा सकता है।
यह रणनीति इन दो संकेतकों को जोड़ती है। जब कीमत ऊपरी बोलिंगर बैंड से ऊपर टूट जाती है और स्टोकेस्टिक ऑसिलेटर %K लाइन %D लाइन से ऊपर जाती है, तो रणनीति लंबी हो जाती है; जब कीमत निचले बोलिंगर बैंड से नीचे गिर जाती है और स्टोकेस्टिक ऑसिलेटर %K लाइन %D लाइन से नीचे जाती है, तो रणनीति छोटी हो जाती है। यह संयोजन अस्थिर बाजारों में लगातार व्यापार से बचते हुए बाजार के रुझानों को प्रभावी ढंग से पकड़ सकता है।
यह रणनीति एक सरल लेकिन प्रभावी ट्रेडिंग रणनीति है जो दो क्लासिक तकनीकी संकेतकों, बोलिंगर बैंड और स्टोकास्टिक ऑसिलेटर को जोड़ती है, ताकि ट्रेंडिंग और ऑसिलेटिंग बाजार दोनों स्थितियों में स्थिर रिटर्न प्राप्त किया जा सके। हालांकि रणनीति में कुछ जोखिम और सीमाएं भी हैं, उचित अनुकूलन और सुधार के माध्यम से, यह रणनीति के प्रदर्शन और अनुकूलन क्षमता को और बढ़ा सकता है, एक ट्रेडिंग रणनीति बन जाता है जो संदर्भित और सीखने योग्य है।
/*backtest start: 2023-05-03 00:00:00 end: 2024-05-08 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Unique Bollinger Bands Strategy", overlay=true) src = input(close) length = input.int(34, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) basis = ta.sma(src, length) dev = ta.stdev(src, length) dev2 = mult * dev upper1 = basis + dev lower1 = basis - dev upper2 = basis + dev2 lower2 = basis - dev2 colorBasis = src >= basis ? color.blue : color.orange pBasis = plot(basis, linewidth=2, color=colorBasis) pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles) pUpper2 = plot(upper2, color=color.new(color.blue, 0)) pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles) pLower2 = plot(lower2, color=color.new(color.orange, 0)) fill(pBasis, pUpper2, color=color.new(color.blue, 80)) fill(pUpper1, pUpper2, color=color.new(color.blue, 80)) fill(pBasis, pLower2, color=color.new(color.orange, 80)) fill(pLower1, pLower2, color=color.new(color.orange, 80)) // Parameters bbLength = input.int(34, title="Length", minval=1) bbMultiplier = input.float(2.0, title="Multiplier", minval=0.001, maxval=50) // Source priceData = close // Unique name for price data source // Bollinger Bands Calculation bbBasis = ta.sma(priceData, bbLength) bbDeviation = ta.stdev(priceData, bbLength) bbDeviationMultiplied = bbMultiplier * bbDeviation bbUpperBand = bbBasis + bbDeviationMultiplied bbLowerBand = bbBasis - bbDeviationMultiplied // Plot Bollinger Bands plot(bbBasis, color=color.blue, linewidth=2) plot(bbUpperBand, color=color.blue) plot(bbLowerBand, color=color.orange) // Strategy Logic for Entry and Exit enterLong = ta.crossover(priceData, bbUpperBand) enterShort = ta.crossunder(priceData, bbLowerBand) // Enter Long when price crosses over upper band if (enterLong) strategy.entry("Long", strategy.long) // Enter Short when price crosses under lower band if (enterShort) strategy.entry("Short", strategy.short) // Close Long when Short condition is met (i.e., price under lower band) if (enterShort) strategy.close("Long") // Close Short when Long condition is met (i.e., price over upper band) if (enterLong) strategy.close("Short")