यह रणनीति एक हाइब्रिड प्रणाली है जो औसत प्रतिगमन और प्रवृत्ति के बाद के दृष्टिकोणों को जोड़ती है, आरएसआई, बोलिंगर बैंड्स और कई ईएमए संकेतकों का उपयोग बाजार के ओवरबॉट और ओवरसोल्ड अवसरों को पकड़ने के लिए करती है। यह रणनीति प्रवृत्ति की पुष्टि और रेंज-बाउंड बाजार पहचान को शामिल करके पारंपरिक तकनीकी विश्लेषण को बढ़ाती है, जिससे सटीकता में काफी सुधार होता है।
यह रणनीति व्यापार संकेतों के लिए एक ट्रिपल सत्यापन तंत्र का उपयोग करती है। प्रारंभ में, यह आरएसआई (30 से नीचे या 70 से ऊपर) का उपयोग करके ओवरबॉट / ओवरसोल्ड स्थितियों की पहचान करता है। दूसरा, यह बोलिंगर बैंड्स ब्रेकआउट का उपयोग करके संकेतों की पुष्टि करता है। अंत में, यह 100/50-दिवसीय ईएमए सापेक्ष पदों और अस्थिरता का उपयोग करके बाजार के रुझानों को मान्य करता है। ट्रेडों को केवल तभी निष्पादित किया जाता है जब सभी तीन शर्तें संरेखित होती हैं। रणनीति में रेंज-बाउंड बाजार पहचान के लिए ईएमए अस्थिरता मूल्यांकन भी शामिल है।
रणनीति कई तकनीकी संकेतकों के तालमेल के माध्यम से मजबूती और लचीलेपन के बीच संतुलन प्राप्त करती है। स्पष्ट तर्क और संक्षिप्त कार्यान्वयन के साथ, यह व्यावहारिक मूल्य का प्रदर्शन करती है। उचित पैरामीटर अनुकूलन और जोखिम प्रबंधन के माध्यम से, रणनीति विभिन्न बाजार स्थितियों में सुसंगत प्रदर्शन की क्षमता दिखाती है।
/*backtest start: 2024-01-01 00:00:00 end: 2024-11-11 00:00:00 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("BTC Dominance Analysis Strategy (Improved)", overlay=true) // Input Parameters rsi_period = input(14, title="RSI Period") bb_period = input(20, title="Bollinger Band Period") bb_std_dev = input(2.0, title="Bollinger Std Dev") ema_period = input(100, title="100 EMA Period") ema_30_period = input(30, title="30 EMA Period") ema_50_period = input(50, title="50 EMA Period") // RSI Calculation rsi_value = ta.rsi(close, rsi_period) // Bollinger Bands Calculation basis = ta.sma(close, bb_period) dev = bb_std_dev * ta.stdev(close, bb_period) upper_bb = basis + dev lower_bb = basis - dev // EMA Calculation ema_100 = ta.ema(close, ema_period) ema_30 = ta.ema(close, ema_30_period) ema_50 = ta.ema(close, ema_50_period) // Determine EMA trends range_bound_ema = math.abs(ema_100 - ta.sma(ema_100, 10)) < ta.stdev(ema_100, 10) uptrend_ema = ema_100 > ema_50 downtrend_ema = ema_100 < ema_50 // Long Condition: All 3 conditions must be met // 1. RSI < 30 // 2. BTC Dominance < lower Bollinger Band // 3. 100 EMA must be range-bound or in an uptrend (but NOT in a downtrend) long_condition = (rsi_value < 30) and (close < lower_bb) and (range_bound_ema or uptrend_ema) // Short Condition: All 3 conditions must be met // 1. RSI > 70 // 2. BTC Dominance > upper Bollinger Band // 3. 100 EMA must be range-bound or in a downtrend (but NOT in an uptrend) short_condition = (rsi_value > 70) and (close > upper_bb) and (range_bound_ema or downtrend_ema) // Plot Buy and Sell Signals for Debugging plotshape(long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Execute Buy Trade if (long_condition) strategy.entry("Buy", strategy.long) // Execute Sell Trade if (short_condition) strategy.entry("Sell", strategy.short) // Plot Bollinger Bands and EMA plot(upper_bb, color=color.red, title="Upper Bollinger Band") plot(lower_bb, color=color.green, title="Lower Bollinger Band") plot(ema_100, color=color.blue, title="100 EMA") plot(ema_50, color=color.orange, title="50 EMA") // plot(rsi_value, "RSI", color=color.purple) // Display background color for Buy and Sell signals bgcolor(long_condition ? color.new(color.green, 90) : na, title="Buy Background") bgcolor(short_condition ? color.new(color.red, 90) : na, title="Sell Background")