
আরএসআই এবং এলোমেলো আরএসআই বিপরীত ট্রেডিং কৌশল একটি উচ্চ প্রযুক্তি বিশ্লেষণ পদ্ধতি যা বাজারের মূল বিপরীত পয়েন্টগুলি সনাক্ত করার জন্য ডিজাইন করা হয়েছে। এই কৌশলটি তুলনামূলকভাবে দুর্বল সূচক (আরএসআই) এবং এলোমেলো তুলনামূলকভাবে দুর্বল সূচক (এসআরএসআই) এর শক্তিকে একত্রিত করে, দাম এবং এই গতিশীলতার সূচকগুলির মধ্যে বিপরীততা পর্যবেক্ষণ করে সম্ভাব্য প্রবণতা পরিবর্তনকে পূর্বাভাস দেয়। এছাড়াও, কৌশলটি একটি প্রবণতা ফিল্টার হিসাবে সূচকীয় চলমান গড় (ইএমএ) সংহত করে এবং একটি সুনির্দিষ্ট দোলন দূরত্ব ফিল্টার প্রয়োগ করে, যা নিশ্চিত করে যে অর্থবহ বাজার কাঠামোগত পরিবর্তনগুলি বাজার গোলমালের পরিবর্তে ধরা হয়।
এই কৌশলটির মূল নীতিটি প্রযুক্তিগত বিশ্লেষণে বিচ্ছিন্নতার ধারণার উপর ভিত্তি করে। যখন দামের গতিপথ প্রযুক্তিগত সূচকের গতিপথের সাথে সামঞ্জস্যপূর্ণ হয় না তখন বিচ্ছিন্নতা ঘটে, যা সাধারণত বর্তমান প্রবণতাটি বিপরীত হতে পারে। এই কৌশলটি চার ধরণের বিচ্ছিন্নতার উপর দৃষ্টি নিবদ্ধ করেঃ
এই কৌশলটি কঠোর পরিস্রাবণ শর্ত ব্যবহার করে, যাতে সিগন্যালের গুণমান নিশ্চিত করা যায়ঃ
যখন বিপরীততা সনাক্ত করা হয়, কৌশলটি চার্টগুলিতে ট্যাগ এবং সংযোগ লাইন আঁকেন, যাতে ব্যবসায়ীরা এই গুরুত্বপূর্ণ সংকেতগুলিকে স্বজ্ঞাতভাবে সনাক্ত করতে পারে। এবং, কৌশলটি স্বয়ংক্রিয়ভাবে বিপরীত সংকেতের উপর ভিত্তি করে অতিরিক্ত এবং খালি প্রবেশের সংকেত তৈরি করে।
এই ঝুঁকি কমানোর জন্য, নিম্নলিখিত পরামর্শ দেওয়া হচ্ছেঃ
আরএসআই এবং এলোমেলো আরএসআই বিপরীত ট্রেডিং কৌশল একটি জটিল এবং শক্তিশালী প্রযুক্তিগত বিশ্লেষণ সরঞ্জাম যা সম্ভাব্য বাজার বিপরীতমুখী এবং প্রবণতা অব্যাহত সংকেতগুলিকে মূল্য এবং গতিশীলতার সূচকগুলির মধ্যে অসঙ্গতি সনাক্ত করে ধরে রাখতে সক্ষম। এই কৌশলটি রুটিন এবং লুকানো বিপরীতমুখী সনাক্তকরণকে একত্রিত করে এবং সুনির্দিষ্টভাবে ডিজাইন করা ফিল্টারগুলি প্রয়োগ করে উচ্চ সম্ভাব্যতার ব্যবসায়ের সুযোগগুলি সনাক্ত করার জন্য একটি বিস্তৃত পদ্ধতি সরবরাহ করে।
যাইহোক, সমস্ত প্রযুক্তিগত বিশ্লেষণ পদ্ধতির মতো, এই কৌশলটির সীমাবদ্ধতা এবং ঝুঁকি রয়েছে। ঝুঁকি ব্যবস্থাপনার যন্ত্রপাতি যুক্ত করা, সংকেত সনাক্তকরণের উন্নতি করা এবং গতিশীল প্যারামিটার সমন্বয় করার মতো প্রস্তাবিত অপ্টিমাইজেশনগুলি বাস্তবায়নের মাধ্যমে কৌশলটির স্থিতিশীলতা এবং কার্যকারিতা উল্লেখযোগ্যভাবে বাড়ানো যেতে পারে।
শেষ পর্যন্ত, এই কৌশলটি আরও বিস্তৃত ট্রেডিং সিস্টেমের অংশ হিসাবে সবচেয়ে ভাল কাজ করে, অন্যান্য বিশ্লেষণমূলক সরঞ্জাম এবং যথাযথ তহবিল পরিচালনার নীতিগুলির সাথে মিলিত হয়। প্রযুক্তিগত বিশ্লেষণ এবং বাজার কাঠামো বোঝার ব্যবসায়ীদের জন্য, এই বিচ্ছিন্নতা কৌশলটি উচ্চ মানের ট্রেডিং সেটআপগুলি আবিষ্কারের জন্য একটি মূল্যবান হাতিয়ার হতে পারে।
/*backtest
start: 2024-06-26 00:00:00
end: 2025-06-24 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("RSI Divergence Strategy", overlay=true)
//strategy("RSI & SRSI Divergence Strategy with EMA & Min Swing Filter + Price Chart Lines", overlay=true)
rsiLength = input.int(14, title="RSI Length")
srsiLength = input.int(14, title="Stochastic RSI Length")
kLength = input.int(3, title="%K Length")
dLength = input.int(3, title="%D Length")
emaLength = input.int(200, title="EMA Length")
lookback = input.int(40, title="Lookback Period for Divergence")
minSwingDistPercent = input.float(1.5, title="Minimum Swing Distance (%)")
minPriceMovePercent = input.float(0.5, title="Minimum Price Move from Last Swing (%)")
rsi = ta.rsi(close, rsiLength)
srsi = ta.stoch(rsi, rsi, rsi, srsiLength)
k = ta.sma(srsi, kLength)
d = ta.sma(k, dLength)
ema200 = ta.ema(close, emaLength)
// === Bullish Regular Divergence ===
var float lastLowPrice = na
var float lastLowRsi = na
var float lastLowSrsi = na
var int lastLowIndex = na
bullishDiv = false
if ta.lowestbars(low, lookback) == 0
if not na(lastLowPrice) and not na(lastLowRsi) and not na(lastLowSrsi)
swingDistLow = math.abs(low - lastLowPrice) / lastLowPrice * 100
priceMoveLow = math.abs(low - lastLowPrice) / lastLowPrice * 100
if swingDistLow >= minSwingDistPercent and priceMoveLow >= minPriceMovePercent
if (low < lastLowPrice and rsi > lastLowRsi) or (low < lastLowPrice and k > lastLowSrsi)
bullishDiv := true
lastLowPrice := low
lastLowRsi := rsi
lastLowSrsi := k
lastLowIndex := bar_index
else
lastLowPrice := low
lastLowRsi := rsi
lastLowSrsi := k
lastLowIndex := bar_index
// === Bearish Regular Divergence ===
var float lastHighPrice = na
var float lastHighRsi = na
var float lastHighSrsi = na
var int lastHighIndex = na
bearishDiv = false
if ta.highestbars(high, lookback) == 0
if not na(lastHighPrice) and not na(lastHighRsi) and not na(lastHighSrsi)
swingDistHigh = math.abs(high - lastHighPrice) / lastHighPrice * 100
priceMoveHigh = math.abs(high - lastHighPrice) / lastHighPrice * 100
if swingDistHigh >= minSwingDistPercent and priceMoveHigh >= minPriceMovePercent
if (high > lastHighPrice and rsi < lastHighRsi) or (high > lastHighPrice and k < lastHighSrsi)
bearishDiv := true
lastHighPrice := high
lastHighRsi := rsi
lastHighSrsi := k
lastHighIndex := bar_index
else
lastHighPrice := high
lastHighRsi := rsi
lastHighSrsi := k
lastHighIndex := bar_index
// === Bullish Hidden Divergence ===
bullishHiddenDiv = false
if ta.lowestbars(low, lookback) == 0
if not na(lastLowPrice) and not na(lastLowRsi) and not na(lastLowSrsi)
swingDistLowHidden = math.abs(low - lastLowPrice) / lastLowPrice * 100
priceMoveLowHidden = math.abs(low - lastLowPrice) / lastLowPrice * 100
if swingDistLowHidden >= minSwingDistPercent and priceMoveLowHidden >= minPriceMovePercent
if (low > lastLowPrice and rsi < lastLowRsi) or (low > lastLowPrice and k < lastLowSrsi)
bullishHiddenDiv := true
// === Bearish Hidden Divergence ===
bearishHiddenDiv = false
if ta.highestbars(high, lookback) == 0
if not na(lastHighPrice) and not na(lastHighRsi) and not na(lastHighSrsi)
swingDistHighHidden = math.abs(high - lastHighPrice) / lastHighPrice * 100
priceMoveHighHidden = math.abs(high - lastHighPrice) / lastHighPrice * 100
if swingDistHighHidden >= minSwingDistPercent and priceMoveHighHidden >= minPriceMovePercent
if (high < lastHighPrice and rsi > lastHighRsi) or (high < lastHighPrice and k > lastHighSrsi)
bearishHiddenDiv := true
// === PLOTS ===
plot(ema200, title="EMA 200", color=color.purple, linewidth=2)
// === STRATEGY ENTRIES ===
if bullishDiv or bullishHiddenDiv
strategy.entry("Long", strategy.long)
if bearishDiv or bearishHiddenDiv
strategy.entry("Short", strategy.short)