
यह रणनीति आरएसआई सूचक और कीमतों की अस्थिरता पर आधारित एक बहु-स्तरीय औसत वापसी ट्रेडिंग प्रणाली है। यह आरएसआई के चरम और असामान्य रूप से बड़े मूल्य उतार-चढ़ाव का उपयोग प्रवेश संकेत के रूप में करता है, जबकि जोखिम प्रबंधन और रिटर्न को अनुकूलित करने के लिए पिरामिड वृद्धि और गतिशील स्टॉप का उपयोग करता है। इस रणनीति का मुख्य विचार बाजार में चरम उतार-चढ़ाव के दौरान प्रवेश करना है और जब कीमतें सामान्य स्तर पर लौटती हैं तो मुनाफा कमाना है।
प्रवेश की शर्तें:
बढ़ोतरी तंत्र:
बाहर निकलने की प्रक्रिया:
जोखिम नियंत्रण:
बहुस्तरीय प्रवेशः कई आरएसआई और अस्थिरता थ्रेशोल्ड सेट करके, रणनीति बाजार की चरम स्थितियों के विभिन्न स्तरों को पकड़ सकती है, जिससे व्यापार के अवसरों में वृद्धि होती है।
गतिशील स्टॉपः समर्थन/प्रतिरोध बिंदु पर आधारित स्टॉप, जो बाजार संरचना के अनुसार अनुकूलन करने में सक्षम है, जो लाभ की रक्षा करता है और समय से पहले बाहर नहीं निकलता है।
पिरामिड-आकार की बढ़तः प्रवृत्ति जारी रहने पर बढ़ी हुई होल्डिंग से मुनाफे की क्षमता में उल्लेखनीय वृद्धि हो सकती है।
जोखिम प्रबंधनः प्रति लेनदेन और समग्र जोखिम पर प्रभावी नियंत्रण के लिए निश्चित प्रतिशत जोखिम और अधिकतम होल्डिंग सीमाएं।
लचीलापनः कई समायोज्य पैरामीटर रणनीति को विभिन्न बाजार स्थितियों और व्यापार की किस्मों के लिए अनुकूलित करते हैं।
औसत प्रतिगमन + रुझान ट्रैकिंगः औसत प्रतिगमन और रुझान ट्रैकिंग के लाभों को मिलाकर, यह अल्पकालिक रिवर्स को पकड़ने और बड़े रुझानों को याद करने में सक्षम है।
अत्यधिक व्यापारः उच्च अस्थिरता वाले बाजारों में अक्सर व्यापार संकेतों को ट्रिगर किया जा सकता है, जिसके परिणामस्वरूप उच्च प्रसंस्करण शुल्क हो सकता है।
झूठा ब्रेकआउटः बाजार में एक छोटी सी चरम उतार-चढ़ाव के बाद तेजी से पलटाव हो सकता है, जिससे गलत संकेत मिलते हैं।
लगातार नुकसानः यदि बाजार लगातार एकतरफा चलता है, तो कई बार बढ़ोतरी के बाद भारी नुकसान हो सकता है।
पैरामीटर संवेदनशीलताः रणनीति का प्रदर्शन पैरामीटर सेटिंग्स के प्रति अत्यधिक संवेदनशील हो सकता है, जिससे ओवरफिट होने का खतरा होता है।
स्लाइड पॉइंट इफेक्ट्स: जब स्थिति अत्यधिक उतार-चढ़ावपूर्ण होती है, तो स्लाइड पॉइंट्स के गंभीर होने से रणनीति पर असर पड़ सकता है।
बाजार की स्थिति पर निर्भरता: रणनीति कुछ बाजार स्थितियों में खराब प्रदर्शन कर सकती है, जैसे कि कम अस्थिरता या मजबूत प्रवृत्ति वाले बाजार।
गतिशील पैरामीटर समायोजनः बाजार की स्थिति के आधार पर गतिशील रूप से आरएसआई और अस्थिरता दर थ्रेशोल्ड को समायोजित करने के लिए एक आत्म-अनुकूलन तंत्र की शुरुआत की।
बहु-समय चक्र विश्लेषणः अधिक लंबी अवधि के बाजार रुझानों के साथ, प्रवेश की गुणवत्ता में सुधार।
स्टॉप लॉस ऑप्टिमाइज़ेशनः ट्रैक किए गए स्टॉप लॉस या एटीआर-आधारित गतिशील स्टॉप लॉस को जोड़ना और जोखिम को नियंत्रित करना।
बाजार की स्थिति फ़िल्टर करेंः प्रवृत्ति की ताकत, अस्थिरता चक्र और अन्य फ़िल्टर शर्तों को शामिल करें, ताकि आप अनुचित बाजार स्थितियों में व्यापार करने से बच सकें।
धन प्रबंधन अनुकूलनः अधिक बारीकी से स्थिति प्रबंधन को लागू करें, जैसे कि विभिन्न स्तरों के संकेतों के आधार पर व्यापार के आकार को समायोजित करना।
मशीन लर्निंग इंटीग्रेशनः पैरामीटर चयन और सिग्नल जनरेशन प्रक्रिया को अनुकूलित करने के लिए मशीन लर्निंग एल्गोरिदम का उपयोग करना।
प्रासंगिकता विश्लेषणः अन्य परिसंपत्तियों के साथ प्रासंगिकता विश्लेषण को जोड़ना, रणनीति की स्थिरता और विविधता में सुधार करना।
बहुस्तरीय आरएसआई रिवर्स ट्रेडिंग रणनीति एक अच्छी तरह से डिजाइन की गई मात्रात्मक ट्रेडिंग प्रणाली है, जो तकनीकी विश्लेषण, गतिशील जोखिम प्रबंधन और पिरामिड-आधारित बढ़ोतरी तकनीकों को जोड़ती है। रणनीति में बाजार में चरम उतार-चढ़ाव को पकड़ने और कीमतों में वापसी पर मुनाफा कमाने के लिए मजबूत मुनाफा कमाने की क्षमता है। हालांकि, इसे ओवर-ट्रेडिंग और बाजार की परिस्थितियों पर निर्भरता जैसी चुनौतियों का भी सामना करना पड़ता है। भविष्य के अनुकूलन की दिशा में रणनीति की आत्म-अनुकूलन क्षमता और विभिन्न बाजार स्थितियों के लिए जोखिम नियंत्रण क्षमता को बढ़ाने पर ध्यान केंद्रित करना चाहिए। कुल मिलाकर, यह एक अच्छी तरह से स्थापित रणनीति ढांचा है, और आगे के अनुकूलन और प्रतिक्रिया के साथ, एक मजबूत ट्रेडिंग प्रणाली बनने की संभावना है।
/*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)