यह रणनीति आरएसआई संकेतक और मूल्य अस्थिरता के आधार पर एक बहु-स्तरीय औसत प्रतिगमन ट्रेडिंग प्रणाली है। यह चरम आरएसआई मूल्यों और असामान्य रूप से बड़े मूल्य उतार-चढ़ाव को प्रवेश संकेत के रूप में उपयोग करता है, जबकि जोखिम को प्रबंधित करने और रिटर्न को अनुकूलित करने के लिए पिरामिड-शैली की स्थिति स्केलिंग और गतिशील लाभ लेने के स्तरों को नियोजित करता है। इस रणनीति का मुख्य विचार चरम अस्थिरता और लाभ के दौरान बाजार में प्रवेश करना है जब कीमतें सामान्य स्तर पर लौटती हैं।
प्रवेश की शर्तें:
स्थिति स्केलिंग तंत्र:
बाहर निकलने का तंत्र:
जोखिम नियंत्रण:
बहु-स्तरीय प्रवेशः कई आरएसआई और अस्थिरता सीमाओं को निर्धारित करके, रणनीति बाजार की चरम सीमाओं के विभिन्न स्तरों को पकड़ सकती है, जिससे व्यापार के अवसर बढ़ते हैं।
गतिशील लाभ-खोजः समर्थन/प्रतिरोध स्तरों के आधार पर गणना किए गए लाभ-खोज अंक बाजार संरचना के अनुकूल हो सकते हैं, बहुत जल्दी बाहर निकलने के बिना लाभ की रक्षा कर सकते हैं।
पिरामिड-शैली की पोजीशन स्केलिंगः रुझान जारी रहने के साथ पोजीशन बढ़ाना मुनाफे की क्षमता को काफी बढ़ा सकता है।
जोखिम प्रबंधन: निश्चित प्रतिशत जोखिम और अधिकतम स्थिति सीमाएं प्रत्येक व्यापार और समग्र के लिए प्रभावी ढंग से जोखिम को नियंत्रित करती हैं।
लचीलापन: कई समायोज्य मापदंडों से रणनीति को विभिन्न बाजार वातावरण और व्यापारिक साधनों के अनुकूल बनाने की अनुमति मिलती है।
औसत रिवर्सन + ट्रेंड फॉलोइंग: औसत रिवर्सन और ट्रेंड फॉलोइंग के फायदों को जोड़ता है, प्रमुख रुझानों को याद किए बिना अल्पकालिक उलटफेर को पकड़ता है।
ओवरट्रेडिंगः अत्यधिक अस्थिर बाजारों में अक्सर ट्रेडिंग सिग्नल को ट्रिगर कर सकता है, जिससे अत्यधिक शुल्क हो सकता है।
झूठे ब्रेकआउटः बाजारों में थोड़े समय के लिए अत्यधिक अस्थिरता का अनुभव हो सकता है जिसके बाद तेजी से उलटफेर हो सकते हैं, जिससे झूठे संकेत हो सकते हैं।
लगातार होने वाले घाटे: लगातार एक दिशा में होने वाले बाजार आंदोलनों के परिणामस्वरूप कई बार स्थिति बढ़ने के बाद महत्वपूर्ण घाटे हो सकते हैं।
पैरामीटर संवेदनशीलताः रणनीति प्रदर्शन पैरामीटर सेटिंग्स के लिए अत्यधिक संवेदनशील हो सकता है, ओवरफिटिंग का जोखिम।
फिसलने का प्रभावः तीव्र अस्थिरता की अवधि के दौरान गंभीर फिसलने का सामना कर सकता है, जो रणनीति के प्रदर्शन को प्रभावित करता है।
बाजार परिवेश पर निर्भरता: रणनीति कुछ बाजार परिवेशों में खराब प्रदर्शन कर सकती है, जैसे कि कम अस्थिरता या मजबूत प्रवृत्ति बाजार।
गतिशील पैरामीटर समायोजन: बाजार की स्थितियों के आधार पर गतिशील रूप से आरएसआई और अस्थिरता सीमाओं को समायोजित करने के लिए अनुकूलन तंत्र पेश करें।
बहु-समय-सीमा विश्लेषणः प्रवेश की गुणवत्ता में सुधार के लिए दीर्घकालिक बाजार रुझानों के आकलन को शामिल करें।
स्टॉप-लॉस अनुकूलन: जोखिम नियंत्रण के लिए ट्रेसिंग स्टॉप-लॉस या एटीआर आधारित गतिशील स्टॉप-लॉस जोड़ें।
बाजार की स्थिति फ़िल्टरिंगः अनुचित बाजार वातावरण में व्यापार से बचने के लिए प्रवृत्ति की ताकत, अस्थिरता चक्र और अन्य फ़िल्टरिंग स्थितियों को शामिल करें।
पूंजी प्रबंधन अनुकूलन: अधिक विस्तृत स्थिति प्रबंधन लागू करें, जैसे कि विभिन्न संकेत स्तरों के आधार पर व्यापार आकार को समायोजित करना।
मशीन लर्निंग इंटीग्रेशनः पैरामीटर चयन और सिग्नल जनरेशन प्रक्रियाओं को अनुकूलित करने के लिए मशीन लर्निंग एल्गोरिदम का उपयोग करें।
सहसंबंध विश्लेषणः रणनीति स्थिरता और विविधता में सुधार के लिए अन्य परिसंपत्तियों के साथ सहसंबंध विश्लेषण को शामिल करें।
यह बहु-स्तरीय आरएसआई औसत प्रतिगमन ट्रेडिंग रणनीति एक सावधानीपूर्वक डिज़ाइन की गई मात्रात्मक ट्रेडिंग प्रणाली है जो तकनीकी विश्लेषण, गतिशील जोखिम प्रबंधन और पिरामिड-शैली की स्थिति स्केलिंग तकनीकों को चतुराई से जोड़ती है। चरम बाजार अस्थिरता को पकड़कर और कीमतों में पलटाव होने पर लाभ कमाने से, रणनीति में मजबूत लाभ क्षमता का प्रदर्शन होता है। हालांकि, यह ओवरट्रेडिंग और बाजार वातावरण निर्भरता जैसी चुनौतियों का भी सामना करती है। भविष्य के अनुकूलन को विभिन्न बाजार वातावरण के अनुरूप रणनीति की अनुकूलन क्षमता और जोखिम नियंत्रण क्षमताओं में सुधार पर ध्यान केंद्रित करना चाहिए। कुल मिलाकर, यह एक ठोस नींव के साथ एक रणनीति ढांचा है, जिसमें आगे के अनुकूलन और बैकटेस्टिंग के माध्यम से, एक मजबूत ट्रेडिंग प्रणाली में विकसित होने की क्षमता है।
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Retorno_Pivots_5min_Novo_v3.3') // Input variables bars_left1 = input(1, title = "Entry - Pivot Left Bars") bars_right1 = input(1, title = "Entry - Pivot Right Bars") rsi20_longentry0 = input(35, title = "Entry 1 - RSI20 Long") rsi20_shortentry0 = input(65, title = "Entry 1 - RSI20 Short") bar_size_entry0 = input.float(1, title="Entry 1 - Bar Size") rsi20_longentry1 = input(30, title = "Entry 2 - RSI20 Long") rsi20_shortentry1 = input(70, title = "Entry 2 - RSI20 Short") bar_size_entry1 = input.float(0.8, title="Entry 2 - Bar Size") rsi20_longentry2 = input(25, title = "Entry 3 - RSI20 Long") rsi20_shortentry2 = input(75, title = "Entry 3 - RSI20 Short") bar_size_entry2 = input.float(0.7, title="Entry 3 - Bar Size") rsi20_longentry3 = input(20, title = "Entry 4 - RSI20 Long") rsi20_shortentry3 = input(80, title = "Entry 4 - RSI20 Short") bar_size_entry3 = input.float(0.5, title="Entry 4 - Bar Size") limit_perc1 = input.float(0.60, title="Profit Range 1") limit_perc2 = input.float(0.40, title="Profit Range 2") limit_perc3 = input.float(0.20, title="Profit Range 3") limit_perc4 = input.float(0.00, title="Profit Range 4") limit_perc5 = input.float(0.00, title="Profit Range 5") minimum_pivot_distance = input.float(0, title="Minimum Pivot Distance %") barsize_1h_input = input(288, title="Highest Bar Lookback") rsi20 = ta.rsi(close, 20) rsi200 = ta.rsi(close, 200) Pivot_High_Last1 = ta.valuewhen(ta.pivothigh(high, bars_left1, bars_right1), ta.pivothigh(high, bars_left1, bars_right1), 0) Pivot_Low_Last1 = ta.valuewhen(ta.pivotlow(low, bars_left1, bars_right1), ta.pivotlow(low, bars_left1, bars_right1), 0) barsize = math.abs(close - open) barsize_1h = ta.highest(barsize, barsize_1h_input) Bar0Long = rsi20 < rsi20_longentry0 and barsize >= (barsize_1h * bar_size_entry0) Bar1Long = rsi20 < rsi20_longentry1 and barsize >= (barsize_1h * bar_size_entry1) Bar2Long = rsi20 < rsi20_longentry2 and barsize >= (barsize_1h * bar_size_entry2) Bar3Long = rsi20 < rsi20_longentry3 and barsize >= (barsize_1h * bar_size_entry3) // Long Entries Long_Entry1 = strategy.opentrades == 0 and rsi20 < rsi20[1] and ((rsi20 < rsi20_longentry0 and barsize >= (barsize_1h * bar_size_entry0)) or (rsi20 < rsi20_longentry1 and barsize >= (barsize_1h * bar_size_entry1)) or (rsi20 < rsi20_longentry2 and barsize >= (barsize_1h * bar_size_entry2)) or (rsi20 < rsi20_longentry3 and barsize >= (barsize_1h * bar_size_entry3))) and close < (Pivot_Low_Last1 * (1 - (minimum_pivot_distance / 100))) Long_Entry2 = strategy.opentrades == 1 and strategy.position_size > 0 and rsi20 < rsi20[1] and (Bar0Long or Bar1Long or Bar2Long or Bar3Long) Long_Entry3 = strategy.opentrades == 2 and strategy.position_size > 0 and rsi20 < rsi20[1] and (Bar0Long or Bar1Long or Bar2Long or Bar3Long) Long_Entry4 = strategy.opentrades == 3 and strategy.position_size > 0 and rsi20 < rsi20[1] and (Bar0Long or Bar1Long or Bar2Long or Bar3Long) Long_Entry5 = strategy.opentrades == 4 and strategy.position_size > 0 and rsi20 < rsi20[1] and (Bar0Long or Bar1Long or Bar2Long or Bar3Long) if Long_Entry1 or Long_Entry2 or Long_Entry3 or Long_Entry4 or Long_Entry5 strategy.entry("Long", strategy.long, comment = "ENTER-LONG_BINANCE-FUTURES_BTCBUSD_Bot-BTC-1min_1M_970d2ee265390c27") // Longs Exits Long_Exit1 = strategy.opentrades == 1 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc1)) Long_Exit2 = strategy.opentrades == 2 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc2)) Long_Exit3 = strategy.opentrades == 3 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc3)) Long_Exit4 = strategy.opentrades == 4 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc4)) Long_Exit5 = strategy.opentrades == 5 and close > (strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc5)) if Long_Exit1 or Long_Exit2 or Long_Exit3 or Long_Exit4 or Long_Exit5 strategy.close("Long", comment = "EXIT-LONG_BINANCE-FUTURES_BTCBUSD_Bot-BTC-1min_1M_970d2ee265390c27") Bar0Short = rsi20 > rsi20_shortentry0 and barsize >= (barsize_1h * bar_size_entry0) Bar1Short = rsi20 > rsi20_shortentry1 and barsize >= (barsize_1h * bar_size_entry1) Bar2Short = rsi20 > rsi20_shortentry2 and barsize >= (barsize_1h * bar_size_entry2) Bar3Short = rsi20 > rsi20_shortentry3 and barsize >= (barsize_1h * bar_size_entry3) // Short Entries Short_Entry1 = strategy.opentrades == 0 and rsi20 > rsi20[1] and ((rsi20 > rsi20_shortentry0 and barsize >= (barsize_1h * bar_size_entry0)) or (rsi20 > rsi20_shortentry1 and barsize >= (barsize_1h * bar_size_entry1)) or (rsi20 > rsi20_shortentry2 and barsize >= (barsize_1h * bar_size_entry2)) or (rsi20 > rsi20_shortentry2 and barsize >= (barsize_1h * bar_size_entry2))) and close > (Pivot_High_Last1 * (1 + (minimum_pivot_distance / 100))) Short_Entry2 = strategy.opentrades == 1 and strategy.position_size < 0 and rsi20 > rsi20[1] and (Bar0Short or Bar1Short or Bar2Short or Bar3Short) Short_Entry3 = strategy.opentrades == 2 and strategy.position_size < 0 and rsi20 > rsi20[1] and (Bar0Short or Bar1Short or Bar2Short or Bar3Short) Short_Entry4 = strategy.opentrades == 3 and strategy.position_size < 0 and rsi20 > rsi20[1] and (Bar0Short or Bar1Short or Bar2Short or Bar3Short) Short_Entry5 = strategy.opentrades == 4 and strategy.position_size < 0 and rsi20 > rsi20[1] and (Bar0Short or Bar1Short or Bar2Short or Bar3Short) if Short_Entry1 or Short_Entry2 or Short_Entry3 or Short_Entry4 or Short_Entry5 strategy.entry("Short", strategy.short, comment = "ENTER-SHORT_BINANCE-FUTURES_BTCBUSD_Bot-BTC-1min_1M_970d2ee265390c27") // Short Exits Short_Exit1 = strategy.opentrades == 1 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc1)) Short_Exit2 = strategy.opentrades == 2 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc2)) Short_Exit3 = strategy.opentrades == 3 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc3)) Short_Exit4 = strategy.opentrades == 4 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc4)) Short_Exit5 = strategy.opentrades == 5 and close < (strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc5)) if Short_Exit1 or Short_Exit2 or Short_Exit3 or Short_Exit4 or Short_Exit5 strategy.close("Short", comment = "EXIT-SHORT_BINANCE-FUTURES_BTCBUSD_Bot-BTC-1min_1M_970d2ee265390c27") // Plots plot(rsi20, color=color.new(#fbff00, 0), linewidth=2) plot(((strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc1))), color=color.new(#00ff2a, 0), linewidth=2) plot(((strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc2))), color=color.new(#00ff2a, 50), linewidth=2) plot(((strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc3))), color=color.new(#00ff2a, 80), linewidth=2) plot(((strategy.position_avg_price + ((ta.valuewhen(strategy.opentrades == 0, Pivot_Low_Last1, 0) - (strategy.position_avg_price)) * limit_perc4))), color=color.new(#00ff2a, 100), linewidth=2) plot((strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc1)), color=color.new(#ff0000, 0), linewidth=2) plot((strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc2)), color=color.new(#ff0000, 50), linewidth=2) plot((strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc3)), color=color.new(#ff0000, 80), linewidth=2) plot((strategy.position_avg_price - ((strategy.position_avg_price - ta.valuewhen(strategy.opentrades == 0, Pivot_High_Last1, 0)) * limit_perc4)), color=color.new(#ff0000, 100), linewidth=2) plot(strategy.position_avg_price, color=color.new(#ffc400, 0), linewidth=2) plot(strategy.opentrades * (strategy.position_size / math.abs(strategy.position_size)), color=color.new(#ff00bb, 0), linewidth=2) plot(((barsize / barsize_1h) * 100), color=color.new(#0000ff, 0), linewidth=2)