
मैड्रिड बैंड RSI वर्धित मल्टीटाइम फ़्रेम ईएमए ट्रेंड रणनीति एक व्यापक मात्रात्मक ट्रेडिंग प्रणाली है, जो ट्रेंड पहचानने और ट्रेड निष्पादन के लिए एक दोहरी पुष्टि तंत्र प्रदान करने के लिए एक गतिशील औसत बैंड प्रणाली (मैड्रिड रिबन) और एक अपेक्षाकृत मजबूत संकेत (आरएसआई) फ़िल्टर को जोड़ती है। रणनीति का मूल एक संरचनात्मक बैंड है, जो कई चक्रों की अवधि के विभिन्न संकेतकों की गतिशील औसत (ईएमए) की निगरानी के माध्यम से बनता है, जबकि आरएसआई संकेतक को फ़िल्टर शर्तों के रूप में पेश किया जाता है, जिससे झूठे संकेतों को प्रभावी ढंग से कम किया जा सकता है। रणनीति में एक स्वचालित ट्रेडिंग सुविधा है, जिसमें एक पूर्वनिर्धारित स्टॉप-लॉस तंत्र शामिल है, जो बाजार की दिशा और ताकत को निर्धारित करने के लिए हरे और लाल चलती औसत लाइनों की संख्या की गणना करके खरीद और बिक्री संकेत उत्पन्न करता है।
इस रणनीति का मुख्य सिद्धांत बहु-समय फ़्रेम चलती औसत समूहों के विश्लेषण और आरएसआई सूचकांक के फ़िल्टरिंग प्रभाव पर आधारित हैः
बहु-समय फ़्रेम चलती औसत बैंड प्रणाली: रणनीति 5 से 90 चक्रों के 18 चलती औसत का निर्माण करती है और 100 चक्रों की एक बेंचमार्क रेखा के साथ तुलना करती है। प्रत्येक चलती औसत को इसकी परिवर्तन दिशा और बेंचमार्क रेखा के सापेक्ष स्थिति के आधार पर रंगीन पहचान दी जाती हैः
प्रवृत्ति की मात्रारणनीतिः प्रवृत्ति की ताकत को हरे रंग की (ऊपर) और लाल रंग की (नीचे) चलती औसत की संख्या की गणना करके मापा जाता हैः
आरएसआई फ़िल्टर तंत्र: झूठे संकेतों को कम करने के लिए, RSI को फ़िल्टरिंग शर्त के रूप में शामिल करेंः
जोखिम प्रबंधन तंत्र: रणनीति ने प्रतिशत के आधार पर स्टॉप-स्टॉप-लॉस पैरामीटर सेट किएः
धन प्रबंधन: रणनीति उपयोगकर्ता को प्रारंभिक राशि निर्धारित करने और वर्तमान मूल्य के आधार पर स्वचालित रूप से स्थिति आकार की गणना करने की अनुमति देती है।
एकाधिक सत्यापन तंत्र: एक चलती औसत बैंडिंग प्रणाली और आरएसआई संकेतक के संयोजन के माध्यम से, रणनीति एक बहु-पुष्टि तंत्र प्रदान करती है, जो गलत संकेतों की संभावना को काफी कम करती है। जब चलती औसत समूह और आरएसआई एक साथ शर्तों को पूरा करते हैं, तो संकेतों की विश्वसनीयता में काफी वृद्धि होती है।
प्रवृत्ति की मात्रासरल क्रॉस-ट्रैडिंग रणनीति के विपरीत, यह रणनीति विभिन्न रंगों की चलती औसत की संख्या की गणना करके प्रवृत्ति की ताकत को मापती है, जिससे व्यापारिक निर्णय अधिक उद्देश्यपूर्ण और डेटा-संचालित होते हैं।
दृश्य व्यापार संकेतरणनीतिः पृष्ठभूमि रंग परिवर्तन और आकार चिह्नों के माध्यम से चार्ट पर संकेतों को स्पष्ट रूप से प्रदर्शित करता है, जिससे व्यापारियों को संभावित व्यापारिक अवसरों की सहज पहचान करने में मदद मिलती है।
अंतर्निहित जोखिम प्रबंधन: रणनीति में डिफ़ॉल्ट रूप से एक स्टॉप-स्टॉप-लॉस तंत्र शामिल है, प्रत्येक व्यापार के लिए अधिकतम लाभ और हानि के लिए एक स्पष्ट पूर्व-निर्धारित है, और जोखिम के लिए एक प्रभावी नियंत्रण है।
अत्यधिक अनुकूलनीय: रणनीति उपयोगकर्ता को ईएमए या एसएमए का उपयोग करने की अनुमति देती है, जो विभिन्न बाजार स्थितियों के अनुसार लचीले ढंग से समायोजित किया जा सकता है। ईएमए हाल के मूल्य परिवर्तनों के प्रति अधिक संवेदनशील है, जबकि एसएमए अधिक चिकनी है, विभिन्न बाजार स्थितियों के लिए अलग-अलग सेटिंग्स।
पूर्ण बाजार निगरानीयह रणनीति 18 अलग-अलग चक्रों की चलती औसत की निगरानी करके बाजार की गतिशीलता को पूरी तरह से पकड़ने में सक्षम है, जिससे एकल समय-सीमा विश्लेषण के संभावित अंधे बिंदुओं को कम किया जा सकता है।
रुझान में देरी: चूंकि रणनीति कई चलती औसत पर निर्भर करती है, इसलिए रुझान के तेजी से उलट होने पर प्रतिक्रिया में देरी हो सकती है, जिससे प्रवेश या निकास का समय आदर्श नहीं हो सकता है। इस जोखिम के लिए, कम अवधि वाले संकेतकों को जोड़ने या आरएसआई पैरामीटर को समायोजित करने पर विचार किया जा सकता है, जिससे रणनीति को बाजार में बदलाव की संवेदनशीलता बढ़ जाती है।
सख्त फ़िल्टरिंग की वजह से अवसरों की कमीआरएसआई फ़िल्टरिंग शर्तों की सेटिंग अधिक सख्त है ((<30 और> 70), और कुछ संभावित व्यापार के अवसरों को याद किया जा सकता है। उपयोगकर्ता आरएसआई थ्रेशोल्ड को विशेष बाजार विशेषताओं के अनुसार उचित रूप से समायोजित कर सकते हैं, जैसे कि खरीद शर्तों को आरएसआई <40 तक ढीला करना, और बिक्री शर्तों को आरएसआई> 60 तक ढीला करना।
फिक्स्ड स्टॉप लॉस प्रतिशत की सीमाएं: रणनीति एक निश्चित प्रतिशत के स्टॉप-लॉस सेटिंग्स का उपयोग करती है ((0.5% और 1%), जो विभिन्न उतार-चढ़ाव वाले बाजारों में पर्याप्त लचीला नहीं हो सकता है। स्टॉप-लॉस स्तर को परिसंपत्ति की औसत वास्तविक उतार-चढ़ाव (एटीआर) की गतिशीलता के आधार पर समायोजित करने की सिफारिश की जाती है।
बाज़ार का जोखिम: बाजारों के क्षैतिज संरेखण चरण में, चलती औसत बार-बार एक-दूसरे के साथ मिल सकती है, जिससे संकेतों में गड़बड़ी होती है। अतिरिक्त क्षैतिज जांच तंत्र जोड़कर (जैसे कि ADX सूचक) कम अस्थिरता वाले वातावरण में अत्यधिक व्यापार से बचा जा सकता है।
पैरामीटर संवेदनशीलतारणनीति प्रदर्शन पैरामीटर चयन के लिए संवेदनशील है (जैसे कि चलती औसत अवधि और आरएसआई लंबाई) । गलत पैरामीटर चयन से रणनीति खराब प्रदर्शन कर सकती है। वास्तविक समय में उपयोग करने से पहले पर्याप्त पैरामीटर अनुकूलन और परीक्षण की सिफारिश की जाती है।
गतिशील स्टॉप लॉस तंत्रएटीआर सूचकांक के साथ एक निश्चित प्रतिशत की रोक-टोक की स्थापना को बदलने के लिए, बाजार की अस्थिरता में परिवर्तन के लिए बेहतर अनुकूलन। उदाहरण के लिए, रोक-टोक को 1.5 पर सेट किया जा सकता है*एटीआर, स्टॉप 1*एटीआर, जो जोखिम प्रबंधन को अधिक लचीला और बाजार के अनुकूल बनाता है
प्रवृत्ति शक्ति फ़िल्टर जोड़ें: प्रवृत्ति की ताकत को मापने के लिए एडीएक्स सूचक का परिचय, केवल एडीएक्स> 25 के मजबूत प्रवृत्ति वातावरण में व्यापार करें, कमजोर प्रवृत्ति या क्षैतिज बाजार में बहुत अधिक झूठे संकेतों से बचें।
आरएसआई पैरामीटर का अनुकूलन करें: वर्तमान रणनीति मानक 14 चक्र आरएसआई का उपयोग करती है, आरएसआई चक्र को विशिष्ट परिसंपत्ति विशेषताओं और समय सीमा के अनुसार समायोजित करने पर विचार किया जा सकता है, या एक दोहरी आरएसआई प्रणाली का उपयोग करने पर विचार किया जा सकता है (उदाहरण के लिए, एक ही समय में छोटी अवधि और लंबी अवधि के आरएसआई की जांच करना) झूठे संकेतों को कम करने के लिए।
मात्रा की पुष्टि: लेन-देन की मात्रा के विश्लेषण आयाम को जोड़ना, यह सुनिश्चित करना कि सिग्नल होने पर पर्याप्त बाजार भागीदारी का समर्थन किया जाए, ट्रेडिंग सिग्नल की विश्वसनीयता को बढ़ाया जाए। उदाहरण के लिए, एक खरीद सिग्नल के प्रकट होने पर लेनदेन की मात्रा N-दिन के औसत से अधिक होने की आवश्यकता हो सकती है।
स्थिति को गतिशील रूप से समायोजित करना: प्रवृत्ति की ताकत के अनुसार स्थिति के आकार को गतिशील रूप से समायोजित करें (हरे या लाल चलती औसत की संख्या), मजबूत प्रवृत्ति में स्थिति बढ़ाएं, कमजोर प्रवृत्ति में स्थिति कम करें, पूंजी उपयोग दक्षता का अनुकूलन करें।
फ़िल्टर में शामिल हों: अस्थिरता के संकेतकों (जैसे VIX या ATR) के माध्यम से वर्तमान बाजार की स्थिति का पता लगाना, अत्यधिक अस्थिरता वाले वातावरण में रणनीति पैरामीटर को समायोजित करना या व्यापार को निलंबित करना, चरम बाजार की स्थिति में जोखिम को कम करना।
मैड्रिड बैंड RSI वर्धित मल्टीटाइम फ्रेम ईएमए ट्रेंड रणनीति एक पूर्ण-कार्यक्षमता वाली मात्रात्मक ट्रेडिंग प्रणाली है, जो ट्रेडर्स को मजबूत ट्रेंड पहचान और ट्रेड निष्पादन उपकरण प्रदान करती है, जो कि आरएसआई फ़िल्टरिंग तंत्र के साथ एक चलती औसत बैंड संरचना को जोड़ती है। रणनीति की मुख्य ताकत इसकी बहु-पुष्टि तंत्र और प्रवृत्ति की तीव्रता को मापने की क्षमता में है, जिससे ट्रेडिंग निर्णय अधिक उद्देश्यपूर्ण और डेटा-संचालित हो जाते हैं।
हालांकि रणनीति ट्रेंडिंग बाजारों में अच्छा प्रदर्शन करती है, लेकिन यह क्षैतिज बाजारों और तेजी से उलटने वाले वातावरण में चुनौतीपूर्ण हो सकती है। गतिशील स्टॉपलॉस, ट्रेंडिंग ताकत फ़िल्टरिंग और लेनदेन की पुष्टि जैसे अनुकूलन उपायों को पेश करके रणनीति की स्थिरता और अनुकूलनशीलता को और बढ़ाया जा सकता है।
यह रणनीति विशेष रूप से मध्यम और दीर्घकालिक प्रवृत्ति व्यापारियों के लिए उपयुक्त है, जो उचित पैरामीटर समायोजन और जोखिम प्रबंधन के माध्यम से विभिन्न प्रकार के बाजार वातावरण में उच्च संभावना वाले व्यापारिक अवसरों की तलाश करने में सक्षम हैं। हालांकि, किसी भी व्यापारिक रणनीति को व्यापारियों की जोखिम वरीयताओं और निवेश लक्ष्यों के साथ मिलान करने की आवश्यकता होती है।
/*backtest
start: 2024-03-24 00:00:00
end: 2025-03-23 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT"}]
*/
//@version=5
strategy("Madrid Ribbon Strategy with Backtesting", shorttitle="Madrid Ribbon Strat", overlay=true, default_qty_type=strategy.cash, default_qty_value=100000)
// Inputs
i_exp = input.bool(true, title="Use Exponential MA")
wallet_balance = input.float(100000, title="Starting Wallet Balance", minval=1000)
// RSI Settings
rsi_length = input.int(14, title="RSI Length")
rsi = ta.rsi(close, rsi_length)
// Profit Target & Stop Loss (%)
long_take_profit_perc = input.float(0.5, title="Long Take Profit (%)") / 100 // 0.5%
long_stop_loss_perc = input.float(1.0, title="Long Stop Loss (%)") / 100 // 1%
short_take_profit_perc = input.float(0.5, title="Short Take Profit (%)") / 100 // 0.5%
short_stop_loss_perc = input.float(1.0, title="Short Stop Loss (%)") / 100 // 1%
// Source
src = close
// Compute Moving Averages
ma05 = i_exp ? ta.ema(src, 5) : ta.sma(src, 5)
ma10 = i_exp ? ta.ema(src, 10) : ta.sma(src, 10)
ma15 = i_exp ? ta.ema(src, 15) : ta.sma(src, 15)
ma20 = i_exp ? ta.ema(src, 20) : ta.sma(src, 20)
ma25 = i_exp ? ta.ema(src, 25) : ta.sma(src, 25)
ma30 = i_exp ? ta.ema(src, 30) : ta.sma(src, 30)
ma35 = i_exp ? ta.ema(src, 35) : ta.sma(src, 35)
ma40 = i_exp ? ta.ema(src, 40) : ta.sma(src, 40)
ma45 = i_exp ? ta.ema(src, 45) : ta.sma(src, 45)
ma50 = i_exp ? ta.ema(src, 50) : ta.sma(src, 50)
ma55 = i_exp ? ta.ema(src, 55) : ta.sma(src, 55)
ma60 = i_exp ? ta.ema(src, 60) : ta.sma(src, 60)
ma65 = i_exp ? ta.ema(src, 65) : ta.sma(src, 65)
ma70 = i_exp ? ta.ema(src, 70) : ta.sma(src, 70)
ma75 = i_exp ? ta.ema(src, 75) : ta.sma(src, 75)
ma80 = i_exp ? ta.ema(src, 80) : ta.sma(src, 80)
ma85 = i_exp ? ta.ema(src, 85) : ta.sma(src, 85)
ma90 = i_exp ? ta.ema(src, 90) : ta.sma(src, 90)
ma100 = i_exp ? ta.ema(src, 100) : ta.sma(src, 100)
// Function for ribbon color
maColor(_ma, _maRef) =>
diffMA = ta.change(_ma)
resultColor = diffMA >= 0 and _ma > _maRef ? color.lime :
diffMA < 0 and _ma > _maRef ? color.maroon :
diffMA <= 0 and _ma < _maRef ? color.red :
diffMA >= 0 and _ma < _maRef ? color.green : color.gray
resultColor
// Count Green and Red Ribbons
count_green = 0
count_red = 0
mas = array.new_float(18)
array.set(mas, 0, ma05)
array.set(mas, 1, ma10)
array.set(mas, 2, ma15)
array.set(mas, 3, ma20)
array.set(mas, 4, ma25)
array.set(mas, 5, ma30)
array.set(mas, 6, ma35)
array.set(mas, 7, ma40)
array.set(mas, 8, ma45)
array.set(mas, 9, ma50)
array.set(mas, 10, ma55)
array.set(mas, 11, ma60)
array.set(mas, 12, ma65)
array.set(mas, 13, ma70)
array.set(mas, 14, ma75)
array.set(mas, 15, ma80)
array.set(mas, 16, ma85)
array.set(mas, 17, ma90)
for i = 0 to array.size(mas) - 1
ma = array.get(mas, i)
col = maColor(ma, ma100)
count_green += col == color.lime or col == color.green ? 1 : 0
count_red += col == color.red or col == color.maroon ? 1 : 0
// Buy/Sell Conditions
buy_signal = count_green >= 13
sell_signal = count_red >= 9
// RSI Filtering
rsi_buy = buy_signal and rsi < 30
rsi_sell = sell_signal and rsi > 70
// Calculate Entry, Take Profit & Stop Loss for Long and Short
entry_price = close
long_take_profit = entry_price * (1 + long_take_profit_perc) // +0.5%
long_stop_loss = entry_price * (1 - long_stop_loss_perc) // -1%
short_take_profit = entry_price * (1 - short_take_profit_perc) // -0.5%
short_stop_loss = entry_price * (1 + short_stop_loss_perc) // +1%
// Backtesting Orders
if rsi_buy
strategy.entry("Buy", strategy.long, qty=wallet_balance / close)
strategy.exit("Long Exit", from_entry="Buy", limit=long_take_profit, stop=long_stop_loss)
alert("📈 Buy Signal! Entering long trade at " + str.tostring(entry_price), alert.freq_once_per_bar_close)
if rsi_sell
strategy.entry("Sell", strategy.short, qty=wallet_balance / close)
strategy.exit("Short Exit", from_entry="Sell", limit=short_take_profit, stop=short_stop_loss)
alert("📉 Sell Signal! Entering short trade at " + str.tostring(entry_price), alert.freq_once_per_bar_close)
// Highlight Chart Background Based on Ribbon Counts
bgcolor(count_green >= 13 ? color.new(color.green, 90) : count_red >= 9 ? color.new(color.red, 90) : na, title="Ribbon Trend Highlight")
// Plot "B" when Buy Signal is active
plotshape(rsi_buy, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="B")
// Plot "S" when Sell Signal is active
plotshape(rsi_sell, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="S")
// Plot the Madrid Ribbon (all MAs)
plot(ma05, color=maColor(ma05, ma100), title="MA05", linewidth=1)
plot(ma10, color=maColor(ma10, ma100), title="MA10", linewidth=1)
plot(ma15, color=maColor(ma15, ma100), title="MA15", linewidth=1)
plot(ma20, color=maColor(ma20, ma100), title="MA20", linewidth=1)
plot(ma25, color=maColor(ma25, ma100), title="MA25", linewidth=1)
plot(ma30, color=maColor(ma30, ma100), title="MA30", linewidth=1)
plot(ma35, color=maColor(ma35, ma100), title="MA35", linewidth=1)
plot(ma40, color=maColor(ma40, ma100), title="MA40", linewidth=1)
plot(ma45, color=maColor(ma45, ma100), title="MA45", linewidth=1)
plot(ma50, color=maColor(ma50, ma100), title="MA50", linewidth=1)
plot(ma55, color=maColor(ma55, ma100), title="MA55", linewidth=1)
plot(ma60, color=maColor(ma60, ma100), title="MA60", linewidth=1)
plot(ma65, color=maColor(ma65, ma100), title="MA65", linewidth=1)
plot(ma70, color=maColor(ma70, ma100), title="MA70", linewidth=1)
plot(ma75, color=maColor(ma75, ma100), title="MA75", linewidth=1)
plot(ma80, color=maColor(ma80, ma100), title="MA80", linewidth=1)
plot(ma85, color=maColor(ma85, ma100), title="MA85", linewidth=1)
plot(ma90, color=maColor(ma90, ma100), title="MA90", linewidth=1)
plot(ma100, color=maColor(ma100, ma100), title="MA100", linewidth=2)