দ্বৈত আরএসআই ব্রেকআউট কৌশল একটি অ্যালগরিদমিক ট্রেডিং কৌশল যা আরএসআই সূচক ব্যবহার করে মূল্য বিপরীত পয়েন্টগুলি সনাক্ত করে। এটি বাজারটি অতিরিক্ত ক্রয় বা অতিরিক্ত বিক্রয় কিনা তা নির্ধারণের জন্য আরএসআই সূচকটিকে পূর্বনির্ধারিত উপরের এবং নিম্ন প্রান্তিক মানগুলির সাথে তুলনা করে ট্রেডিং সংকেত উত্পন্ন করে।
এই কৌশলটি মূলত বাজারের অবস্থা বিচার করার জন্য আরএসআই সূচকের উপর নির্ভর করে। আরএসআই সূচকটি একটি নির্দিষ্ট সময়ের মধ্যে বন্ধের দামের পরিবর্তনের উপর ভিত্তি করে গণনা করা হয়, যা স্টকটির কেনা বেচা গতি প্রতিফলিত করে। যখন আরএসআই পূর্বনির্ধারিত উপরের থ্রেশহোল্ডের (ডিফল্ট 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)