दोहरी आरएसआई ब्रेकआउट रणनीति एक एल्गोरिथम ट्रेडिंग रणनीति है जो आरएसआई संकेतक का उपयोग करके मूल्य उलट बिंदुओं की पहचान करती है। यह आरएसआई संकेतक की तुलना पूर्व निर्धारित ऊपरी और निचली सीमा मानों के साथ करके ट्रेडिंग संकेत उत्पन्न करती है ताकि यह निर्धारित किया जा सके कि बाजार ओवरबॉट या ओवरसोल्ड है या नहीं।
यह रणनीति मुख्य रूप से बाजार की स्थिति का न्याय करने के लिए आरएसआई संकेतक पर निर्भर करती है। आरएसआई संकेतक की गणना एक निश्चित अवधि में समापन कीमतों में परिवर्तन के आधार पर की जाती है, जो स्टॉक की खरीद और बिक्री गति को दर्शाता है। जब आरएसआई पूर्व निर्धारित ऊपरी सीमा (डिफ़ॉल्ट 75) से ऊपर पार करता है, तो यह इंगित करता है कि स्टॉक ओवरबॉट क्षेत्र में प्रवेश कर गया है। जब आरएसआई पूर्व निर्धारित निचली सीमा (डिफ़ॉल्ट 25) से नीचे गिरता है, तो यह इंगित करता है कि स्टॉक ओवरसोल्ड क्षेत्र में प्रवेश कर गया है।
निर्णय के नियम इस प्रकार हैंः
इसका ट्रेडिंग लॉजिक सरल और स्पष्ट है, जिसमें उचित संदर्भ पैरामीटर सेटिंग्स, बड़ा कॉन्फ़िगरेशन स्पेस है और यह बाजार में बड़े रुझानों को पकड़ने के लिए उपयुक्त है।
इस रणनीति के लाभों में निम्नलिखित शामिल हैंः
सामान्य तौर पर, उचित संदर्भ पैरामीटर सेटिंग्स, सरल कार्यान्वयन और आरएसआई के माध्यम से प्रभावी रूप से मूल्य उलट को निर्धारित करने की क्षमता के साथ, यह रणनीति मध्यम से दीर्घकालिक प्रवृत्ति को पकड़ने के लिए उपयुक्त है और एक मात्रात्मक रणनीति के रूप में समझने और उपयोग करने में आसान है।
यद्यपि यह रणनीति अपेक्षाकृत सरल और विश्वसनीय है, हम इसके संभावित जोखिमों को नजरअंदाज नहीं कर सकतेः
जोखिमों को नियंत्रित करने के लिए हमें निम्नलिखित बातों पर ध्यान देने की आवश्यकता हैः
इस रणनीति के मुख्य जोखिमों को ध्यान में रखते हुए रिवर्स गलत आकलन और विभिन्न बाजारों में नुकसान हैं, हम निम्नलिखित पहलुओं से अनुकूलन कर सकते हैंः
संक्षेप में, दोहरी आरएसआई ब्रेकआउट रणनीति एक सरल और व्यावहारिक मात्रात्मक रणनीति है। यह सरल प्रवृत्ति के बाद प्राप्त करने के लिए आरएसआई के माध्यम से मूल्य उलटों की पहचान करता है। हालांकि कुछ गलत आकलन जोखिम मौजूद हैं, पैरामीटर ट्यूनिंग, सिग्नल फ़िल्टरिंग जैसे अनुकूलन इसे कम करने में मदद कर सकते हैं और इसे मध्यम से दीर्घकालिक रुझानों को पकड़ने में एक महत्वपूर्ण भूमिका निभाने की अनुमति दे सकते हैं। इसका तर्क सीधा है, जिससे यह शुरुआती क्वांट के लिए संदर्भ और सीखने के लिए उपयुक्त है। आगे के अनुकूलन के साथ, यह रणनीति अपेक्षाकृत स्थिर मात्रात्मक रिटर्न प्राप्त करने में वादा करती है।
/*backtest start: 2023-12-19 00:00:00 end: 2023-12-26 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("RSI Algo", overlay=true) // Calculate start/end date and time condition DST = 1 //day light saving for usa //--- Europe London = iff(DST==0,"0000-0900","0100-1000") //--- America NewYork = iff(DST==0,"0400-1500","0500-1600") //--- Pacific Sydney = iff(DST==0,"1300-2200","1400-2300") //--- Asia Tokyo = iff(DST==0,"1500-2400","1600-0100") //-- Time In Range timeinrange(res, sess) => time(res, sess) != 0 london = timeinrange(timeframe.period, London) newyork = timeinrange(timeframe.period, NewYork) time_cond = true myPeriod = input(defval=14, type=input.integer, title="Period") myThresholdUp = input(defval=75, type=input.float, title="Upper Threshold") myThresholdDn = input(defval=25, type=input.float, title="Lower Threshold") myAlgoFlipToggle = input(defval=false, type=input.bool, title="Imverse Algorthim") myLineToggle = input(defval=true, type=input.bool, title="Show Lines") myLabelToggle = input(defval=true, type=input.bool, title="Show Labels") myRSI=rsi(close, myPeriod) buy = myAlgoFlipToggle ? falling(myRSI,1) and cross(myRSI, myThresholdDn) : rising(myRSI, 1) and cross(myRSI,myThresholdUp) //and time_cond sell = myAlgoFlipToggle ? rising(myRSI, 1) and cross(myRSI,myThresholdUp) : falling(myRSI,1) and cross(myRSI, myThresholdDn) //and time_cond myPosition = 0 myPosition := buy==1 ? 0 : sell==1 or myPosition[1]==1 ? 1 : 0 trendColor = buy ? color.red : sell ? color.green : na plot(myLineToggle ? buy and myPosition[1]==1 ? low - 0.004: sell and myPosition[1]==0 ? high + 0.004 : na : na, color=trendColor, style=plot.style_line, linewidth=4, editable=false) plotshape(myLabelToggle ? buy and myPosition[1]==1 ? low - 0.005 : na : na, style=shape.labelup, location=location.absolute, text="Buy", transp=0, textcolor = color.white, color=color.black, editable=false) plotshape(myLabelToggle ? sell and myPosition[1]==0 ? high + 0.005 : na : na, style=shape.labeldown, location=location.absolute, text="Sell", transp=0, textcolor = color.white, color=color.black, editable=false) strategy.initial_capital = 50000 //Calculate the size of the next trade balance = strategy.netprofit + strategy.initial_capital //current balance floating = strategy.openprofit //floating profit/loss risk = input(2,type=input.float,title="Risk %")/100 //risk % per trade isTwoDigit = input(false,"Is this a 2 digit pair? (JPY, XAU, XPD...") stop = input(250, title="stop loss pips") tp = input(2500, title="take profit pips") if(isTwoDigit) stop := stop/100 temp01 = balance * risk //Risk in USD temp02 = temp01/stop //Risk in lots temp03 = temp02*100000 //Convert to contracts size = 1 strategy.entry("long",1,size,when=buy and myPosition[1]==1 ) strategy.entry("short",0,size,when=sell and myPosition[1]==0) strategy.exit("exit_long","long",loss=stop, profit=tp) //Long exit (stop loss) strategy.exit("exit_short","short",loss=stop, profit=tp) //Short exit (stop loss) //strategy.close_all(when= not time_cond)