यह रणनीति बाजार के रुझानों की पहचान करने और ब्रेकर रणनीति को लागू करने के लिए बोलिंगर बैंड्स के साथ संयुक्त मुख्य तकनीकी संकेतक के रूप में सीबीएमए का उपयोग करती है। यह तब छोटा हो जाता है जब कीमत ऊपरी बैंड से ऊपर टूट जाती है और जब कीमत निचले बैंड से नीचे टूट जाती है, तो यह लोकप्रिय डबल-ट्रैक ब्रेकआउट सिस्टम से संबंधित होती है।
सीबीएमए की गणना करें: अनुकूलनशील ईएमए का उपयोग सीबीएमए को सुचारू करने के लिए करें जो मूल्य परिवर्तनों को प्रभावी ढंग से ट्रैक कर सकता है।
बोलिंगर बैंड्स पैरामीटर सेट करें: मध्य बैंड के रूप में सीबीएमए का उपयोग करें और मानक विचलन गुणक का उपयोग करके ऊपरी/निम्न बैंड सेट करें, जिसे बाजार के आधार पर समायोजित किया जा सकता है।
ब्रेकआउट ट्रेडिंगः जब कीमत ऊपरी बैंड से ऊपर टूटती है तो बेचें, जब कीमत निचले बैंड से नीचे टूटती है तो खरीदें, ब्रेकर रणनीति के बाद प्रवृत्ति का उपयोग करें।
फ़्लैश ऑर्डर रद्द करें, एक समय में केवल एक दिशा में व्यापार करें।
निर्धारित आदेश आकार, पूंजी के आधार पर समायोजित किया जा सकता है।
सीबीएमए में अच्छी सुचारूता है और यह कीमतों को प्रभावी ढंग से ट्रैक कर सकता है।
अनुकूली ईएमए चलती औसत की प्रतिक्रिया क्षमता को अनुकूलित करता है।
जब ब्रेकआउट होता है तो ऊपरी/नीचे के बैंड स्पष्ट दिशा संकेत देते हैं।
ट्रेंड फॉलो करने वाले मॉडल में व्हीपसॉ ट्रेड से बचना होता है।
निश्चित आदेश आकार एकल व्यापार जोखिम को नियंत्रित करता है।
बोलिंगर बैंड्स मापदंडों को अनुकूलित करने की आवश्यकता है, बहुत चौड़ा या बहुत संकीर्ण समस्याओं का कारण बन सकता है।
ब्रेकआउट सिग्नल में झूठे ब्रेकआउट हो सकते हैं।
नुकसान को नियंत्रित करने के लिए स्टॉप लॉस की आवश्यकता है।
निश्चित आदेश आकार बाजार के आधार पर स्थिति को समायोजित नहीं कर सकता है।
केवल एक दिशा में व्यापार, अधिक लाभ नहीं कर सकते।
बाजार को बेहतर ढंग से फिट करने के लिए बोलिंगर बैंड्स मापदंडों को गतिशील रूप से अनुकूलित करें।
फ़िल्टरिंग के लिए अधिक संकेतक जोड़ें, झूठे ब्रेकआउट से बचें।
लाभ में लॉक करने के लिए पीछे स्टॉप हानि जोड़ें.
हेज ट्रेडिंग, अधिक लाभ के लिए लंबी और छोटी दोनों करें।
स्थिति आकार प्रणाली जोड़ें.
यह रणनीति स्पष्ट ब्रेकआउट संकेतों के लिए बोलिंगर बैंड के साथ संयुक्त अनुकूली चलती औसत तकनीक का उपयोग करने वाली ब्रेकर ट्रेंड फॉलो सिस्टम है। इसमें सरल तर्क और निश्चित ऑर्डर आकार जोखिम को नियंत्रित करता है, जिसका कुछ व्यावहारिक मूल्य है। लेकिन झूठे ब्रेकआउट और पैरामीटर अनुकूलन जैसे मुद्दे बने हुए हैं, जिन्हें जोखिम को नियंत्रित करते हुए वास्तविक ट्रेडिंग प्रदर्शन में सुधार और वृद्धि के लिए अधिक संकेतकों की आवश्यकता होती है। कुल मिलाकर यह सुधार के लिए बहुत जगह के साथ एक सभ्य स्टार्टर ब्रेकआउट प्रणाली है।
/*backtest start: 2023-10-29 00:00:00 end: 2023-11-05 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="CBMA Bollinger Bands Strategy directed [ChuckBanger]", shorttitle="CBMA BB CB", overlay=true ) length = input(title="Length", type=input.integer, defval=12, minval=1) regular = input(title="Regular BB Or CBMA?", type=input.bool, defval=false) src = input(title="Source", type=input.source, defval=close) mult = input(title="Multipler", type=input.float, defval=2.3, minval=.001, maxval=50, step=.1) emaLen = input(title="EMA Length", type=input.integer, defval=11, minval=1) emaGL = input(title="EMA Gain Limit", type=input.integer, defval=50, minval=1) highlight = input(title="Highlight On/Off", type=input.bool, defval=true) direction = input(0, title = "Strategy Direction", type=input.integer, minval=-1, maxval=1) strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long)) //strategy.risk.max_drawdown(50, strategy.percent_of_equity) calc_hma(src, length) => hullma = wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length))) hullma calc_cbma(price, length, emaLength, emaGainLimit) => alpha = 2 / (emaLength + 1) ema = ema(price, emaLength) int leastError = 1000000 float ec = 0 float bestGain = 0 for i = emaGainLimit to emaGainLimit gain = i / 10 ec := alpha * ( ema + gain * (price - nz(ec[1])) ) + (1 - alpha) * nz(ec[1]) error = price - ec if (abs(error) < leastError) leastError = abs(error) bestGain = gain ec := alpha * ( ema + bestGain * (price - nz(ec[1])) ) + (1 - alpha) * nz(ec[1]) hull = calc_hma(price, length) cbma = (ec + hull) / 2 cbma cbma = calc_cbma(src, length, emaLen, emaGL) basis = regular ? sma(src, length) : cbma dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev cbmaColor = fixnan(highlight and not regular ? cbma > high ? color.purple : cbma < low ? color.aqua : na : color.red) plot(basis, color=cbmaColor) p1 = plot(upper, color=color.blue) p2 = plot(lower, color=color.blue) fill(p1, p2) if (crossover(src, lower)) strategy.entry("CBMA_BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="CBMA_BBandLE") else strategy.cancel(id="CBMA_BBandLE") if (crossunder(src, upper)) strategy.entry("CBMA_BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="CBMA_BBandSE") else strategy.cancel(id="CBMA_BBandSE")