यह रणनीति बोलिंगर बैंड, आरएसआई, कई चलती औसत और एमएसीडी संकेतक को जोड़ती है ताकि एक पूर्ण ट्रेडिंग प्रणाली का निर्माण किया जा सके। सबसे पहले, यह मूल्य अस्थिरता और मध्य बैंड के सापेक्ष मूल्य की स्थिति को निर्धारित करने के लिए बोलिंगर बैंड का उपयोग करता है ताकि रुझानों की पहचान की जा सके। साथ ही, यह ओवरबॉट और ओवरसोल्ड स्थितियों का आकलन करने और आरएसआई विचलन का उपयोग करके संभावित रुझान उलटों का पता लगाने के लिए आरएसआई संकेतक का उपयोग करता है। चलती प्रवृत्ति ट्रैकिंग और समर्थन और प्रतिरोध स्तरों का निर्धारण करने के लिए कई औसत का उपयोग किया जाता है। अंत में, एमएसीडी संकेतक का उपयोग रुझानों और संभावित उलटों का न्याय करने में मदद करने के लिए भी किया जाता है। इन संकेतकों पर व्यापक रूप से विचार करके, रणनीति एक पूरी ट्रेडिंग रणनीति बनाने के लिए प्रवेश और निकास स्थितियों को तैयार करती है।
यह रणनीति कई आयामों से एक अपेक्षाकृत व्यापक ट्रेडिंग प्रणाली का निर्माण करती है, जिसमें ट्रेंड पहचान, ओवरबॉट और ओवरसोल्ड निर्णय, मल्टी-टाइम स्केल विश्लेषण और स्थिति नियंत्रण शामिल हैं। हालांकि, रणनीति को चंचल बाजारों और चरम घटनाओं से निपटने में आगे अनुकूलन की आवश्यकता है, और इसमें अधिक व्यवस्थित पैरामीटर अनुकूलन और जोखिम नियंत्रण की कमी है। भविष्य में, रणनीति अधिक परिष्कृत संकेत फ़िल्टरिंग, गतिशील वजन समायोजन और चरम घटनाओं पर प्रतिक्रिया के संदर्भ में सुधार करना जारी रख सकती है। निरंतर बैकटेस्टिंग अनुकूलन और लाइव ट्रेडिंग सत्यापन के माध्यम से, इस रणनीति में एक मजबूत और स्थायी मात्रात्मक ट्रेडिंग रणनीति में बढ़ने की क्षमता है।
/*backtest start: 2023-05-21 00:00:00 end: 2024-05-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands + RSI Strategy with MA", overlay=true) // Bollinger Bands length = input.int(20, title="BB Length") mult = input.float(2.0, title="BB Mult") basis = ta.sma(close, length) dev = mult * ta.stdev(close, length) upper_band = basis + dev lower_band = basis - dev // RSI rsi_length = input.int(14, title="RSI Length") rsi_oversold = input.int(30, title="RSI Oversold", minval=0, maxval=100) rsi_overbought = input.int(70, title="RSI Overbought", minval=0, maxval=100) rsi = ta.rsi(close, rsi_length) // RSI Divergence rsi_divergence_bottom = ta.crossunder(rsi, rsi_oversold) rsi_divergence_peak = ta.crossunder(rsi_overbought, rsi) // Moving Averages ma34 = ta.sma(close, 34) ma89 = ta.sma(close, 89) ma144 = ta.sma(close, 144) ma233 = ta.sma(close, 233) ma377 = ta.sma(close, 377) ma610 = ta.sma(close, 610) // MACD Calculation [macd_line, signal_line, _] = ta.macd(close, 12, 26, 9) macd_histogram = macd_line - signal_line // MACD Divergence macd_divergence_bottom = ta.crossunder(macd_histogram, 0) macd_divergence_peak = ta.crossover(macd_histogram, 0) // Conditions for Buy and Sell basis_gt_ma34 = basis > ma34 ma34_gt_ma89 = ma34 > ma89 // Entry condition buy_condition = basis_gt_ma34 and ma34_gt_ma89 sell_condition = basis <ma34 // Calculate position size position_size = 1.0 // 100% capital initially // Update position size based on conditions if (sell_condition) position_size := 0.5 // Sell half of the position if (not basis_gt_ma34) position_size := 0.0 // Sell all if basis < ma34 // Entry and exit strategy if (buy_condition) strategy.entry("Buy", strategy.long, qty=position_size) if (sell_condition) strategy.close("Buy") // Plot Bollinger Bands and Moving Averages bb_fill_color = basis > basis[1] ? color.new(color.blue, 90) : color.new(color.blue, 10) plot(basis, color=color.blue, title="Basis") plot(upper_band, color=color.red, title="Upper Band") plot(lower_band, color=color.green, title="Lower Band") fill(plot1=plot(upper_band), plot2=plot(lower_band), color=bb_fill_color, title="BB Fill") plot(ma34, color=color.orange, title="MA34") plot(ma89, color=color.purple, title="MA89") plot(ma144, color=color.gray, title="MA144") plot(ma233, color=color.blue, title="MA233") plot(ma377, color=color.red, title="MA377") plot(ma610, color=color.green, title="MA610") // Plot RSI Divergence plotshape(series=rsi_divergence_bottom, style=shape.triangleup, location=location.abovebar, color=color.green, size=size.small) plotshape(series=rsi_divergence_peak, style=shape.triangledown, location=location.belowbar, color=color.red, size=size.small) // Plot MACD Histogram Divergence plotshape(series=macd_divergence_bottom, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(series=macd_divergence_peak, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)