
آر ایس آئی اور بے ترتیب آر ایس آئی سے پیچھے ہٹنا ٹریڈنگ حکمت عملی ایک اعلی درجے کی تکنیکی تجزیہ کا طریقہ ہے جو خاص طور پر مارکیٹ میں اہم موڑ کی نشاندہی کرنے کے لئے ڈیزائن کیا گیا ہے۔ یہ حکمت عملی نسبتا strong مضبوط اشارے (آر ایس آئی) اور بے ترتیب نسبتا strong مضبوط اشارے (ایس آر ایس آئی) کی طاقت کو یکجا کرتی ہے تاکہ قیمتوں اور ان متحرک اشارے کے مابین پیچھے ہٹنے کی نگرانی کرکے ممکنہ رجحان میں تبدیلی کی پیش گوئی کی جاسکے۔ اس کے علاوہ ، حکمت عملی میں اشاریہ کی چلتی اوسط (ای ایم اے) کو رجحان فلٹر کے طور پر شامل کیا گیا ہے اور درست سوئنگ فاصلہ فلٹر کا اطلاق کیا گیا ہے ، جس سے یہ یقینی بنایا گیا ہے کہ مارکیٹ میں شور کی بجائے مارکیٹ کی ساخت میں معنی خیز تبدیلیوں کو پکڑ لیا جائے۔
اس حکمت عملی کا بنیادی اصول تکنیکی تجزیہ میں انحراف کے تصور پر مبنی ہے۔ جب قیمت کی حرکت تکنیکی اشارے کی حرکت سے متضاد ہوتی ہے تو یہ عام طور پر اس بات کی نشاندہی کرتی ہے کہ موجودہ رجحان قریب قریب الٹ سکتا ہے۔ یہ حکمت عملی چار اقسام پر مرکوز ہے:
اس حکمت عملی میں سخت فلٹرنگ کے شرائط کا استعمال کیا گیا ہے تاکہ سگنل کے معیار کو یقینی بنایا جا سکے:
جب انحراف کا پتہ چلتا ہے تو ، حکمت عملی چارٹ پر لیبل اور کنکشن لائنیں کھینچتی ہے ، جس سے تاجر ان اہم اشاروں کو بصری طور پر پہچان سکتا ہے۔ اور ، حکمت عملی خود بخود انحراف کے اشارے پر مبنی زیادہ اور کم کے انٹری سگنل تیار کرتی ہے۔
ان خطرات کو کم کرنے کے لئے، یہ مشورہ دیا جاتا ہے کہ:
آر ایس آئی اور بے ترتیب آر ایس آئی سے دور تجارت کی حکمت عملی ایک پیچیدہ اور طاقتور تکنیکی تجزیہ کا آلہ ہے جو قیمتوں اور متحرک اشارے کے مابین عدم مطابقت کی نشاندہی کرکے مارکیٹ میں ممکنہ الٹ اور رجحان کے تسلسل کے اشارے کو پکڑنے کے قابل ہے۔ یہ حکمت عملی روایتی اور پوشیدہ الٹ کا پتہ لگانے کو مربوط کرکے ، اور احتیاط سے ڈیزائن کردہ فلٹرز کو لاگو کرکے ، اعلی امکانات کے تجارتی مواقع کی نشاندہی کرنے کا ایک جامع طریقہ فراہم کرتی ہے۔
تاہم ، تکنیکی تجزیہ کے تمام طریقوں کی طرح ، اس حکمت عملی میں بھی حدود اور خطرات ہیں۔ تجویز کردہ اصلاحات کو نافذ کرکے ، جیسے خطرے کے انتظام کے طریقہ کار کو شامل کرنا ، سگنل کی تصدیق میں بہتری لانا اور متحرک پیرامیٹرز کی ایڈجسٹمنٹ کو مربوط کرنا ، حکمت عملی کی استحکام اور کارکردگی کو نمایاں طور پر بہتر بنایا جاسکتا ہے۔
آخر کار ، یہ حکمت عملی وسیع تر تجارتی نظام کے ایک حصے کے طور پر بہترین کام کرتی ہے ، جس میں دیگر تجزیاتی ٹولز اور مناسب فنڈ مینجمنٹ اصولوں کے ساتھ مل کر کام کیا جاتا ہے۔ تکنیکی تجزیہ اور مارکیٹ کی ساخت کو سمجھنے والے تاجروں کے لئے ، اس طرح کی غیر ملکی حکمت عملی ایک قیمتی ذریعہ ہوسکتی ہے جو اعلی معیار کے تجارتی سیٹ اپ کی تلاش میں ہے۔
/*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)