यह रणनीति मुख्य रूप से बाजार की प्रवृत्ति और उलट बिंदुओं की पहचान करने के लिए आरएसआई और अचानक मूल्य परिवर्तन के औसत मूल्य का उपयोग करती है। मूल विचार यह है कि आरएसआई ओवरबॉट या ओवरसोल्ड होने पर पदों की स्थापना पर विचार करना है, और अचानक मूल्य परिवर्तन होने पर उलट अवसरों की तलाश करना है। ईएमए का उपयोग एक फ़िल्टर के रूप में भी किया जाता है।
आरएसआई के एसएमए की गणना करें. जब आरएसआई एसएमए 60 से ऊपर पार करता है या 40 से नीचे गिर जाता है, तो इसे ओवरबॉट या ओवरसोल्ड माना जाता है, और रिवर्स पदों पर विचार किया जाएगा.
जब आरएसआई का परिवर्तन एक निश्चित मूल्य से अधिक हो जाता है, तो इसे अचानक परिवर्तन माना जाता है। यह वास्तविक बंद मूल्य सत्यापन के साथ संयुक्त रूप से रिवर्स स्थिति स्थापित करने के लिए एक संकेत के रूप में कार्य करता है।
फ़िल्टरिंग के लिए कई ईएमए का प्रयोग करें। केवल जब कीमत कम अवधि के ईएमए से ऊपर जाती है, तो लंबी स्थिति पर विचार किया जाएगा। केवल जब कीमत कम अवधि के ईएमए से नीचे आती है, तो छोटी स्थिति पर विचार किया जाएगा।
आरएसआई औसत, अचानक परिवर्तन और ईएमए फ़िल्टरिंग के प्रयोग को मिलाकर बेहतर प्रवेश बिंदुओं की पहचान की जा सकती है।
आरएसआई औसत का उपयोग करके ओवरबॉट और ओवरसोल्ड स्थितियों का सटीक रूप से आकलन किया जा सकता है, जो रिवर्स अवसरों को पकड़ने के लिए अनुकूल है।
अचानक परिवर्तन अक्सर मूल्य प्रवृत्ति और दिशा में बदलाव का संकेत देते हैं, इस संकेत का उपयोग करके प्रविष्टियों की समयबद्धता में सुधार किया जा सकता है।
बहुस्तरीय ईएमए फ़िल्टरिंग से झूठे संकेतों से बचा जा सकता है और अनावश्यक नुकसान को कम किया जा सकता है।
निर्णय मानदंडों के रूप में कई मापदंडों का संयोजन रणनीति की स्थिरता और विश्वसनीयता को बढ़ा सकता है।
आरएसआई प्रदर्शन अस्थिर हो सकता है और एसएमए हिट दर कम हो सकती है। आरएसआई मापदंडों को अनुकूलित किया जा सकता है या अन्य संकेतक इसे बदल सकते हैं।
अचानक परिवर्तन वास्तविक उलटफेर के बजाय केवल अल्पकालिक उतार-चढ़ाव हो सकते हैं।
ईएमए दिशा फ़िल्टरिंग में विलंब है. संवेदनशीलता में सुधार के लिए कम अवधि के ईएमए का परीक्षण करें.
सामान्य तौर पर, यह रणनीति पैरामीटर ट्यूनिंग के लिए काफी संवेदनशील है। इष्टतम पैरामीटर संयोजन खोजने के लिए सावधानीपूर्वक परीक्षण की आवश्यकता होती है। जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस का उपयोग करें।
बेहतर प्रवेश बिंदुओं को खोजने के लिए आरएसआई के साथ संयुक्त एडीएक्स, एमएसीडी जैसे अन्य संकेतकों का परीक्षण करें।
अचानक खरीदने/बेचने के संकेतों की प्रामाणिकता और स्थिरता का न्याय करने के लिए मशीन लर्निंग एल्गोरिदम बढ़ाएं।
ईएमए दिशा फिल्टरिंग को और बढ़ाएं जैसे कि विभिन्न अवधि के ईएमए के मिश्रित निर्णय का उपयोग करना।
बाजार की अस्थिरता के आधार पर स्टॉप लॉस रेंज को गतिशील रूप से समायोजित करने के लिए अनुकूलनशील स्टॉप लॉस रणनीति जोड़ें।
अधिकतम पैरामीटर संयोजन खोजने के लिए पैरामीटर अनुकूलन जारी रखें। मूल्यांकन मानदंड शार्प अनुपात आदि हो सकते हैं।
यह रणनीति सबसे पहले ओवरबॉट / ओवरसोल्ड स्थितियों को निर्धारित करने के लिए आरएसआई औसत का उपयोग करती है। अचानक परिवर्तन होने पर रिवर्स पोजीशन तब स्थापित की जाती हैं। ईएमए का उपयोग एक सहायक फिल्टर के रूप में भी किया जाता है। उचित पैरामीटर सेटिंग्स के साथ, यह रणनीति प्रभावी रूप से बाजार की प्रवृत्ति में बदलाव निर्धारित कर सकती है। कुल मिलाकर, इसकी अच्छी स्थिरता और व्यावहारिक मूल्य है। अभी भी आगे सुधार के लिए जगह है, जिसमें लगातार परीक्षण और अनुकूलन की आवश्यकता होती है।
/*backtest start: 2023-12-12 00:00:00 end: 2023-12-19 00:00:00 period: 3m basePeriod: 1m 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/ // © samwillington //@version=5 strategy("sma RSI & sudden buy and sell Strategy v1", overlay=true) price = close length = input( 14 ) inst_length = input( 10 ) var rbc = 0 var float rsiBP = 0.0 var rsc = 0 var float rsiSP = 0.0 bars = input(10) lookbackno2 = input.int(20) rsi_buy = 0 rsi_sell = 0 //EMA inputs input_ema20 = input.int(20) ema20 = ta.ema(price, input_ema20) input_ema50 = input.int(50) ema50 = ta.ema(price, input_ema50) input_ema100 = input.int(100) ema100 = ta.ema(price, input_ema100) input_ema200 = input.int(200) ema200 = ta.ema(price, input_ema200) input_ema400 = input.int(400) ema400 = ta.ema(price, input_ema400) input_ema800 = input.int(800) ema800 = ta.ema(price, input_ema800) vrsi = ta.rsi(price, length) hi2 = ta.highest(price, lookbackno2) lo2 = ta.lowest(price, lookbackno2) buy_diff_rsi = vrsi - ta.rsi(close[1], length) sell_diff_rsi = ta.rsi(close[1],length) - vrsi //RSI high low var int sudS = 0 var int sudB = 0 var float sudSO = 0.0 var float sudSC = 0.0 var float sudBO = 0.0 var float sudBC = 0.0 var sudBuy = 0 var sudSell = 0 var countB = 0 var countS = 0 var co_800 = false var co_400 = false var co_200 = false var co_100 = false var co_50 = false var co_20 = false co_800 := ta.crossover(price , ema800) co_400 := ta.crossover(price , ema400) co_200 := ta.crossover(price , ema200) co_100 := ta.crossover(price , ema100) co_50 := ta.crossover(price , ema50) co_20 := ta.crossover(price , ema20) if(ta.crossunder(price , ema20)) co_20 := false if(ta.crossunder(price , ema50)) co_50 := false if(ta.crossunder(price , ema100)) co_100 := false if(ta.crossunder(price , ema200)) co_200 := false if(ta.crossunder(price , ema400)) co_400 := false if(ta.crossunder(price , ema800)) co_800 := false if((price> ema800) and (price > ema400)) if(co_20) if(co_50) if(co_100) if(co_200) strategy.close("Sell") strategy.entry("Buy", strategy.long, comment="spl Buy") co_20 := false co_50 := false co_100 := false co_200 := false // too much rsi if(vrsi > 90) strategy.close("Buy") strategy.entry("Sell", strategy.short, comment="RSI too overbuy") if(vrsi < 10) strategy.close("Sell") strategy.entry("Buy", strategy.long, comment="RSI too oversold") var sudbcount = 0 // counting no. of bars till sudden rise var sudscount = 0 // counting no. of bars till sudden decrease if(sudB == 1) sudbcount := sudbcount + 1 if(sudS == 1) sudscount := sudscount + 1 if((buy_diff_rsi > inst_length) and (hi2 > price)) sudB := 1 sudBO := open sudBC := close if((sell_diff_rsi > inst_length) ) sudS := 1 sudSO := open sudSC := close if(sudbcount == bars) if(sudBC < price) strategy.close("Sell") strategy.entry("Buy", strategy.long, comment="sudd buy") sudbcount := 0 sudB := 0 sudbcount := 0 sudB := 0 if(sudscount == bars) if(sudSC > price) strategy.close("Buy") strategy.entry("Sell", strategy.short, comment="sudd sell") sudscount := 0 sudS := 0 sudscount := 0 sudS := 0 over40 = input( 40 ) over60 = input( 60 ) sma =ta.sma(vrsi, length) coo = ta.crossover(sma, over60) cuu = ta.crossunder(sma, over40) if (coo) strategy.close("Sell") strategy.entry("Buy", strategy.long, comment="modified buy") if (cuu) strategy.close("Buy") strategy.entry("Sell", strategy.short, comment="modefied sell") //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)