এই কৌশলটি দ্রুত আরএসআই সূচক ব্যবহার করে ওভার-বই ওভার-সেলের ঘটনাগুলি সনাক্ত করে, বিপরীত ট্রেডিংয়ের জন্য। এই কৌশলটি একই সাথে কে-লাইন সত্তার আকারের তরঙ্গের সাথে মিলিত হয়, যাতে আটকে না পড়ে। কৌশলটি ওভার-বই ওভার-সেলের ঘটনাগুলি দ্রুত বিচার করার চেষ্টা করে এবং সময়মতো বিপরীত সুযোগগুলি ধরে রাখে।
নীতিমালাঃ
দ্রুত আরএসআই সূচকের মান গণনা করুন, ওভারবয় ওভারসোল থ্রেশহোল্ড সেট করুন।
K-রেখার এন্ট্রি আকারের EMA গড় গণনা করুন এবং এন্ট্রি আকার নির্ধারণ করুন।
RSI-এর উপরে ওভারবয় লাইন অতিক্রম করে এবং অর্ধেকেরও বেশি এন্ট্রি থাকলে অতিরিক্ত করুন। RSI-এর নীচে ওভারবয় লাইন অতিক্রম করে এবং অর্ধেকেরও বেশি এন্ট্রি থাকলে খালি করুন।
আরএসআই মূল প্রান্তিক লাইন অতিক্রম করে এবং গড়ের চেয়ে বড় হয়ে যায়।
ন্যূনতম মানের সাথে সর্বোচ্চ মান যুক্ত করে অতিরিক্ত যাচাইকরণ করা যেতে পারে।
এই কৌশলটির সুবিধাঃ
দ্রুত আরএসআই নির্ধারণ করে যে ওভারবয় ওভারসেল দ্রুত, যাতে পিছিয়ে না পড়ে।
একটি বস্তুর আকারের ফিল্টার একটি অস্পষ্ট K-লাইন অতিক্রম করতে পারে।
ন্যূনতম মান সর্বোচ্চ মান যাচাইকরণ সংকেত মান উন্নত করতে পারে।
এই কৌশলের ঝুঁকিঃ
এন্ট্রি-আকারের ফিল্টারগুলি কিছু কার্যকর সংকেত ফিল্টার করতে পারে।
RSI-এর একটি ভুল সংকেত দেখা দিতে পারে।
বিপরীতমুখী লেনদেনের ঝুঁকি মোকাবেলায় কঠোর তহবিল ব্যবস্থাপনা প্রয়োজন।
সংক্ষেপে, এই কৌশলটি দ্রুত আরএসআই এবং কে-লাইন সত্তা আকারের সূচক ব্যবহার করে একটি সমন্বয় ট্রেডিংয়ের জন্য, দ্রুত ওভারবয় ও ওভারসোলের বিচার করার সাথে সাথে ঝুঁকি নিয়ন্ত্রণের জন্য ভাল প্রভাব অর্জন করতে পারে। তবে ফিল্টারিংয়ের বিষয়ে সতর্কতা অবলম্বন করা এবং ভাল তহবিল পরিচালনার সরঞ্জাম স্থাপন করা দরকার।
/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-11 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "Noro's Fast RSI Strategy v1.3", shorttitle = "Fast RSI str 1.3", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rb = input(1, defval = 1, minval = 1, maxval = 5, title = "RSI Bars")
usemm = input(false, defval = false, title = "Use Min/Max")
showarr = input(false, defval = false, title = "Show Arrows")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Fast RSI
fastup = rma(max(change(rsisrc), 0), rsiperiod)
fastdown = rma(-min(change(rsisrc), 0), rsiperiod)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit
//RSI Bars
ur = fastrsi > uplimit
dr = fastrsi < dnlimit
uprsi = rb == 1 and ur ? 1 : rb == 2 and ur and ur[1] ? 1 : rb == 3 and ur and ur[1] and ur[2] ? 1 : rb == 4 and ur and ur[1] and ur[2] and ur[3] ? 1 : rb == 5 and ur and ur[1] and ur[2] and ur[3] and ur[4] ? 1 : 0
dnrsi = rb == 1 and dr ? 1 : rb == 2 and dr and dr[1] ? 1 : rb == 3 and dr and dr[1] and dr[2] ? 1 : rb == 4 and dr and dr[1] and dr[2] and dr[3] ? 1 : rb == 5 and dr and dr[1] and dr[2] and dr[3] and dr[4] ? 1 : 0
//Body
body = abs(close - open)
emabody = ema(body, 30)
//MinMax
min = min(close, open)
max = max(close, open)
//Signals
up1 = bar == -1 and (strategy.position_size == 0 or close < strategy.position_avg_price) and dnrsi and body > emabody / 4
dn1 = bar == 1 and (strategy.position_size == 0 or close > strategy.position_avg_price) and uprsi and body > emabody / 4
up2 = min < min[1] and bar == -1 and bar[1] == -1 and usemm
dn2 = max > max[1] and bar == 1 and bar[1] == 1 and usemm
exit = ((strategy.position_size > 0 and fastrsi > dnlimit and bar == 1) or (strategy.position_size < 0 and fastrsi < uplimit and bar == -1)) and body > emabody / 2
//Arrows
col = exit ? black : up1 or dn1 ? blue : up2 or dn2 ? red : na
needup = up1 or (up2 and usemm)
needdn = dn1 or (dn2 and usemm)
needexitup = exit and strategy.position_size < 0
needexitdn = exit and strategy.position_size > 0
plotarrow(showarr and needup ? 1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needdn ? -1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needexitup ? 1 : na, colorup = black, colordown = black, transp = 0)
plotarrow(showarr and needexitdn ? -1 : na, colorup = black, colordown = black, transp = 0)
//Trading
if up1 or up2
strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
if dn1 or dn2
strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
if time > timestamp(toyear, tomonth, today, 00, 00) or exit
strategy.close_all()