
आरएसआई वास्तविक क्षेत्र तोड़ने की रणनीति एक मात्रात्मक रणनीति है जो आरएसआई सूचक का उपयोग वास्तविक क्षेत्र के अस्थिरता क्षेत्र के साथ संयोजन में करती है। यह रणनीति वास्तविक क्षेत्र की ऊपरी और निचली सीमाओं की गणना करके और आरएसआई सूचक के ओवरबॉय और ओवरबॉय सिग्नल के साथ मिलकर व्यापार को तोड़ती है। मजबूत स्थिति में, यह प्रवृत्ति की दिशा को पहले से पकड़ने में सक्षम है; और अस्थिरता में, यह शोर को प्रभावी ढंग से फ़िल्टर करने और बड़े दिशात्मक अवसरों को लॉक करने में सक्षम है।
रणनीति के लिए पहले 14 अलग-अलग मापदंडों के वास्तविक क्षेत्र के ऊपरी-निम्न सीमा को मैन्युअल रूप से सेट करना आवश्यक है। वास्तविक क्षेत्र की गणना समापन मूल्य पर आधारित होती है, जो एक निश्चित अवधि में मानक अंतर और रैखिक प्रतिगमन मानों की गणना करती है। ऊपरी सीमा रैखिक प्रतिगमन रेखा + n गुना मानक अंतर है, और निचली सीमा रैखिक प्रतिगमन रेखा - n गुना मानक अंतर है। पैरामीटर n को इंटरफ़ेस के माध्यम से समायोजित किया जा सकता है। इस प्रकार 14 अलग-अलग मापदंडों के लिए वास्तविक क्षेत्र की ऊपरी-निचली सीमाएं बनाई जा सकती हैं।
इसके बाद, रणनीति प्रत्येक चक्र के भीतर वास्तविक समय में 14 सीमा रेखाओं की गणना करती है, जो कि वास्तविक क्षेत्र के ऊपरी हिस्से के रूप में उच्चतम है, और वास्तविक क्षेत्र के निचले हिस्से के रूप में निम्नतम है। फिर आरएसआई सूचकांक के मूल्य के साथ मिलकर, यह निर्धारित करने के लिए कि क्या यह ओवरबॉट या ओवरसोल्ड क्षेत्र में प्रवेश कर रहा है। जब आरएसआई सूचकांक ओवरबॉट क्षेत्र में प्रवेश करता है या कीमत वास्तविक क्षेत्र की ऊपरी सीमा को तोड़ती है, तो यह शून्य हो जाता है; जब आरएसआई सूचकांक ओवरसोल्ड क्षेत्र में प्रवेश करता है या कीमत वास्तविक क्षेत्र की निचली सीमा को तोड़ती है, तो यह अधिक होता है।
अंत में, रणनीति में एक प्रवेश रेखा और एक निकास रेखा भी होती है। प्रवेश रेखा वास्तविक क्षेत्र की निचली सीमा का प्रतिनिधित्व करती है, और निकास रेखा वास्तविक क्षेत्र की ऊपरी सीमा का प्रतिनिधित्व करती है। इस प्रकार, स्थिति खोलने के बाद, कीमत फिर से निकास रेखा को छूती है।
कुल मिलाकर, यह रणनीति ट्रेंड सूचक आरएसआई और वास्तविक क्षेत्र के लिए अनुकूलित चैनल के लाभों का लाभ उठाती है, जिससे बाजार की प्रवृत्ति की दिशा को प्रभावी ढंग से निर्धारित किया जा सकता है, और वास्तविक क्षेत्र की प्रस्थान रेखा के साथ जोखिम नियंत्रण के लिए आघात के दौरान बड़े दिशात्मक अवसरों की पहचान की जा सकती है।
एक वास्तविक क्षेत्र का उपयोग करें। यह क्षेत्र वास्तविक समय में बदल सकता है और बाजार में उतार-चढ़ाव के लिए अनुकूल है।
वास्तविक क्षेत्र पैरामीटर समायोज्य है. उपयोगकर्ता विभिन्न बाजार स्थितियों के लिए पैरामीटर के विभिन्न संयोजनों का चयन कर सकते हैं.
आरएसआई के साथ ओवरबॉय और ओवरसोल को मापने के लिए, आप किसी भी अस्थिरता के दौरान गलत दिशा से बच सकते हैं।
प्रवेश और निकास लाइनों को उचित रूप से निर्धारित किया गया है ताकि जोखिम को नियंत्रित किया जा सके।
आरएसआई संकेतक पैरामीटर सेटिंग सावधानी की आवश्यकता है। आरएसआई चक्र बहुत छोटा है और एक भ्रामक संकेत पैदा कर सकता है, और बहुत लंबा है और मोड़ को समय पर पकड़ने में असमर्थ है।
वास्तविक क्षेत्र पैरामीटर सेटिंग को परीक्षण अनुकूलन की आवश्यकता होती है। बहुत बड़े या छोटे पैरामीटर नीति प्रदर्शन को प्रभावित कर सकते हैं।
आघात की तीव्रता के कारण नुकसान का खतरा अधिक होता है। कीमतें वास्तविक क्षेत्र में अक्सर आउटलाइन को छू सकती हैं, जिससे बहुत अधिक नुकसान हो सकता है।
वास्तविक क्षेत्रों को समय-समय पर विकसित करने की आवश्यकता होती है। यदि डेटा की कमी है, तो यह रणनीति ठीक से काम नहीं कर सकती है।
आरएसआई पैरामीटर को अनुकूलित करके, वास्तविक क्षेत्र पैरामीटर को समायोजित करके, और अन्य संकेतकों के साथ प्रवेश समय की पुष्टि करके, गलत व्यापार के जोखिम को कम किया जा सकता है। स्टॉप लॉस के जोखिम को कम करने के लिए, बाहर निकलने की सीमा को उचित रूप से ढीला किया जा सकता है। कुल मिलाकर, विभिन्न बाजार स्थितियों के लिए उचित समायोजन की आवश्यकता होती है।
आरएसआई पैरामीटर सेटिंग को अनुकूलित करें, सबसे अच्छा पैरामीटर संयोजन ढूंढें। विभिन्न आरएसआई चक्र पैरामीटर का परीक्षण किया जा सकता है।
वास्तविक क्षेत्र पैरामीटर को अनुकूलित करें और वर्तमान बाजार परिदृश्य के लिए सबसे उपयुक्त पैरामीटर सेटिंग्स का पता लगाएं।
अन्य संकेतकों जैसे MACD, KD आदि को फ़िल्टर करें, ताकि अस्थिर स्थिति में गलत ट्रेडिंग से बचा जा सके।
विभिन्न ट्रेडिंग समय या किस्मों को सेट करें, जो रणनीति के लिए लागू विशिष्ट ट्रेडिंग वातावरण के अनुरूप हो।
ऑप्टिमाइज़्ड स्टॉप लॉस रणनीतियाँ, जैसे कि ऑब्जेक्टिव ऑब्जेक्टिव स्टॉप, या एटीआर के आधार पर स्टॉप लॉस की सीमा।
रणनीति के सबसे स्थिर लाभ के लिए पैरामीटर सेटिंग खोजने के लिए पैरामीटर संयोजन परीक्षण करें।
मशीन लर्निंग एल्गोरिदम को जोड़ना, बड़े डेटा का उपयोग करके स्वचालित रूप से पैरामीटर का अनुकूलन करना।
आरएसआई वास्तविक क्षेत्र तोड़ने की रणनीति व्यापक रूप से प्रवृत्ति सूचक और अनुकूलन चैनल तकनीक का लाभ उठाती है। यह बाजार की प्रवृत्ति दिशा को प्रभावी ढंग से निर्धारित करने में सक्षम है, और उतार-चढ़ाव की स्थिति में बड़े दिशात्मक अवसरों को पकड़ने में सक्षम है। साथ ही जोखिम नियंत्रण के लिए स्टॉप-लॉस लाइन स्थापित करता है। इस रणनीति के पैरामीटर का अनुकूलन करने के लिए जगह है, और पैरामीटर को विभिन्न बाजार स्थितियों के लिए अनुकूलित करके इसे अनुकूलित किया जा सकता है। यह एक बहुत ही लचीली तोड़ने की रणनीति है। कुल मिलाकर, यह कई संकेतकों के फायदे को जोड़ती है, प्रवृत्ति निर्णय और जोखिम नियंत्रण में कुछ फायदे हैं, जो एक अनुशंसित मात्रात्मक रणनीति है।
/*backtest
start: 2022-11-01 00:00:00
end: 2023-11-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Julien_Eche
//@version=4
strategy("RSI TrueLevel Strategy", shorttitle="RSI TL", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Input parameters for RSI
rsiPeriod = input(14, title="RSI Period", type=input.integer)
rsiOverbought = input(65, title="RSI Overbought Level", type=input.integer)
rsiOversold = input(40, title="RSI Oversold Level", type=input.integer)
// Inputs for selecting bands
entry_band = input(12, title="Entry TrueLevel Band", type=input.integer, minval=1, maxval=14)
exit_band = input(12, title="Exit TrueLevel Band", type=input.integer, minval=1, maxval=14)
// Input for long and short mode
long_and_short = input(false, title="Enable Long and Short", type=input.bool)
// Calculate the RSI
rsi = rsi(close, rsiPeriod)
// User inputs
len1 = input(title="Length 1", type=input.integer, defval=126)
len2 = input(title="Length 2", type=input.integer, defval=189)
len3 = input(title="Length 3", type=input.integer, defval=252)
len4 = input(title="Length 4", type=input.integer, defval=378)
len5 = input(title="Length 5", type=input.integer, defval=504)
len6 = input(title="Length 6", type=input.integer, defval=630)
len7 = input(title="Length 7", type=input.integer, defval=756)
len8 = input(title="Length 8", type=input.integer, defval=1008)
len9 = input(title="Length 9", type=input.integer, defval=1260)
len10 = input(title="Length 10", type=input.integer, defval=1638)
len11 = input(title="Length 11", type=input.integer, defval=2016)
len12 = input(title="Length 12", type=input.integer, defval=2646)
len13 = input(title="Length 13", type=input.integer, defval=3276)
len14 = input(title="Length 14", type=input.integer, defval=4284)
fill_color = input(title="Fill Color", type=input.color, defval=color.rgb(0, 191, 255, 95))
mult = input(title="Multiple", type=input.float, defval=1, step=0.2, options=[0.6, 0.8, 1, 1.2, 1.4])
src = input(title="Source", type=input.source, defval=close)
// Upper band calculation function
upperBand(length) =>
linreg = linreg(src, length, 0)
stddev = mult * stdev(src, length)
upperband = linreg + stddev
upperband
// Lower band calculation function
lowerBand(length) =>
linreg = linreg(src, length, 0)
stddev = mult * stdev(src, length)
lowerband = linreg - stddev
lowerband
// Calculate upper and lower bands for each length
upperband_1 = upperBand(len1)
upperband_2 = upperBand(len2)
upperband_3 = upperBand(len3)
upperband_4 = upperBand(len4)
upperband_5 = upperBand(len5)
upperband_6 = upperBand(len6)
upperband_7 = upperBand(len7)
upperband_8 = upperBand(len8)
upperband_9 = upperBand(len9)
upperband_10 = upperBand(len10)
upperband_11 = upperBand(len11)
upperband_12 = upperBand(len12)
upperband_13 = upperBand(len13)
upperband_14 = upperBand(len14)
lowerband_1 = lowerBand(len1)
lowerband_2 = lowerBand(len2)
lowerband_3 = lowerBand(len3)
lowerband_4 = lowerBand(len4)
lowerband_5 = lowerBand(len5)
lowerband_6 = lowerBand(len6)
lowerband_7 = lowerBand(len7)
lowerband_8 = lowerBand(len8)
lowerband_9 = lowerBand(len9)
lowerband_10 = lowerBand(len10)
lowerband_11 = lowerBand(len11)
lowerband_12 = lowerBand(len12)
lowerband_13 = lowerBand(len13)
lowerband_14 = lowerBand(len14)
// Plot envelope bands for each length
upperband_1_plot = plot(upperband_1, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 1")
lowerband_1_plot = plot(lowerband_1, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Lower Band 1")
upperband_2_plot = plot(upperband_2, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 2")
lowerband_2_plot = plot(lowerband_2, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Lower Band 2")
upperband_3_plot = plot(upperband_3, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 3")
lowerband_3_plot = plot(lowerband_3, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Lower Band 3")
upperband_4_plot = plot(upperband_4, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 4")
lowerband_4_plot = plot(lowerband_4, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Lower Band 4")
upperband_5_plot = plot(upperband_5, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 5")
lowerband_5_plot = plot(lowerband_5, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Lower Band 5")
upperband_6_plot = plot(upperband_6, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 6")
lowerband_6_plot = plot(lowerband_6, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Lower Band 6")
upperband_7_plot = plot(upperband_7, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 7")
lowerband_7_plot = plot(lowerband_7, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Lower Band 7")
upperband_8_plot = plot(upperband_8, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 8")
lowerband_8_plot = plot(lowerband_8, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Lower Band 8")
upperband_9_plot = plot(upperband_9, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 9")
lowerband_9_plot = plot(lowerband_9, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Lower Band 9")
upperband_10_plot = plot(upperband_10, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 10")
lowerband_10_plot = plot(lowerband_10, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Lower Band 10")
upperband_11_plot = plot(upperband_11, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 11")
lowerband_11_plot = plot(lowerband_11, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Lower Band 11")
upperband_12_plot = plot(upperband_12, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 12")
lowerband_12_plot = plot(lowerband_12, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Lower Band 12")
upperband_13_plot = plot(upperband_13, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 13")
lowerband_13_plot = plot(lowerband_13, color=color.rgb(14, 139, 212, 95), linewidth=1, title="Lower Band 13")
upperband_14_plot = plot(upperband_14, color=color.rgb(14, 116, 212, 95), linewidth=1, title="Upper Band 14")
lowerband_14_plot = plot(lowerband_14, color=color.rgb(14, 139, 212, 95), linewidth=1, title="Lower Band 14")
// Plot fills for each length
fill(upperband_1_plot, lowerband_1_plot, color=fill_color, title="Fill 1")
fill(upperband_2_plot, lowerband_2_plot, color=fill_color, title="Fill 2")
fill(upperband_3_plot, lowerband_3_plot, color=fill_color, title="Fill 3")
fill(upperband_4_plot, lowerband_4_plot, color=fill_color, title="Fill 4")
fill(upperband_5_plot, lowerband_5_plot, color=fill_color, title="Fill 5")
fill(upperband_6_plot, lowerband_6_plot, color=fill_color, title="Fill 6")
fill(upperband_7_plot, lowerband_7_plot, color=fill_color, title="Fill 7")
fill(upperband_8_plot, lowerband_8_plot, color=fill_color, title="Fill 8")
fill(upperband_9_plot, lowerband_9_plot, color=fill_color, title="Fill 9")
fill(upperband_10_plot, lowerband_10_plot, color=fill_color, title="Fill 10")
fill(upperband_11_plot, lowerband_11_plot, color=fill_color, title="Fill 11")
fill(upperband_12_plot, lowerband_12_plot, color=fill_color, title="Fill 12")
fill(upperband_13_plot, lowerband_13_plot, color=fill_color, title="Fill 13")
fill(upperband_14_plot, lowerband_14_plot, color=fill_color, title="Fill 14")
// Add variables to store the highest upper band and lowest lower band values
var float highestUpperBand = na
var float lowestLowerBand = na
// Calculate the trueLevelUpperBand and trueLevelLowerBand
trueLevelUpperBand = max(upperband_1, max(upperband_2, max(upperband_3, max(upperband_4, max(upperband_5, max(upperband_6, max(upperband_7, max(upperband_8, max(upperband_9, max(upperband_10, max(upperband_11, max(upperband_12, max(upperband_13, upperband_14)))))))))))))
trueLevelLowerBand = min(lowerband_1, min(lowerband_2, min(lowerband_3, min(lowerband_4, min(lowerband_5, min(lowerband_6, min(lowerband_7, min(lowerband_8, min(lowerband_9, min(lowerband_10, min(lowerband_11, min(lowerband_12, min(lowerband_13, lowerband_14)))))))))))))
// Update the highest upper band and lowest lower band
highestUpperBand := highest(trueLevelUpperBand, 1)
lowestLowerBand := lowest(trueLevelLowerBand, 1)
// Store the upper and lower bands in an array for easy access
upperbands = array.new_float(14)
lowerbands = array.new_float(14)
array.set(upperbands, 0, upperband_1)
array.set(upperbands, 1, upperband_2)
array.set(upperbands, 2, upperband_3)
array.set(upperbands, 3, upperband_4)
array.set(upperbands, 4, upperband_5)
array.set(upperbands, 5, upperband_6)
array.set(upperbands, 6, upperband_7)
array.set(upperbands, 7, upperband_8)
array.set(upperbands, 8, upperband_9)
array.set(upperbands, 9, upperband_10)
array.set(upperbands, 10, upperband_11)
array.set(upperbands, 11, upperband_12)
array.set(upperbands, 12, upperband_13)
array.set(upperbands, 13, upperband_14)
array.set(lowerbands, 0, lowerband_1)
array.set(lowerbands, 1, lowerband_2)
array.set(lowerbands, 2, lowerband_3)
array.set(lowerbands, 3, lowerband_4)
array.set(lowerbands, 4, lowerband_5)
array.set(lowerbands, 5, lowerband_6)
array.set(lowerbands, 6, lowerband_7)
array.set(lowerbands, 7, lowerband_8)
array.set(lowerbands, 8, lowerband_9)
array.set(lowerbands, 9, lowerband_10)
array.set(lowerbands, 10, lowerband_11)
array.set(lowerbands, 11, lowerband_12)
array.set(lowerbands, 12, lowerband_13)
array.set(lowerbands, 13, lowerband_14)
// Get the selected bands for entry and exit
selected_entry_lowerband = array.get(lowerbands, entry_band - 1)
selected_exit_upperband = array.get(upperbands, exit_band - 1)
// Entry conditions
longCondition = crossover(rsi, rsiOversold) or crossover(close, selected_entry_lowerband)
shortCondition = crossunder(rsi, rsiOverbought) or crossunder(close, selected_exit_upperband)
if (longCondition)
strategy.entry("Long", strategy.long)
if (long_and_short and shortCondition)
strategy.entry("Short", strategy.short)
// Exit conditions
exitLongCondition = crossunder(rsi, rsiOverbought) or crossunder(close, selected_exit_upperband)
exitShortCondition = crossover(rsi, rsiOversold) or crossover(close, selected_entry_lowerband)
strategy.close("Long", when=exitLongCondition)
strategy.close("Short", when=long_and_short and exitShortCondition)