مومینٹم سے منسلک RSI حکمت عملی


تخلیق کی تاریخ: 2023-10-07 15:47:42 آخر میں ترمیم کریں: 2023-10-07 15:47:42
کاپی: 0 کلکس کی تعداد: 751
1
پر توجہ دیں
1617
پیروکار

جائزہ

اس حکمت عملی کا بنیادی خیال یہ ہے کہ آر ایس آئی اشارے کے ہموار دور کو متحرک بنایا جائے ، جو قیمت اور حرکیات کے مابین وابستگی کے مطابق خود بخود ایڈجسٹ ہوجائے ، جس سے آر ایس آئی اشارے کی افادیت کو بہتر بنایا جاسکے۔

حکمت عملی کا اصول

اس حکمت عملی میں پہلے قیمت کی حرکیات کا حساب لگایا جاتا ہے اور پھر قیمت اور حرکیات کے مابین ارتباط کا عنصر شمار کیا جاتا ہے۔ جب ارتباط کا عنصر 1 کے قریب ہوتا ہے تو ، قیمت اور حرکیات انتہائی مثبت طور پر منسلک ہوتے ہیں۔ جب ارتباط کا عنصر 1 کے قریب ہوتا ہے تو ، قیمت اور حرکیات کی اونچائی منفی طور پر منسلک ہوتی ہے۔

قیمت اور حرکیات کی وابستگی کے مطابق ، آر ایس آئی اشارے کے ہموار دوروں کی لمبائی کو ایڈجسٹ کیا جاسکتا ہے۔ جب وابستگی زیادہ ہو تو ، آر ایس آئی کا ایک مختصر دور استعمال کریں۔ جب وابستگی کم ہو تو ، طویل آر ایس آئی کا دور استعمال کریں۔

خاص طور پر ، اس حکمت عملی میں آر ایس آئی کے دورانیے کی لمبائی کو ایک حد کے طور پر طے کیا گیا ہے ، جو 20-50 ہے۔ قیمت اور حرکیات کے متعلقہ فیکٹرز کا حساب کتاب کرنے کے بعد ، متعلقہ فیکٹرز کو 20-50 کی حد تک ایک لکیری نقشہ سازی کے طریقہ کار کے ذریعہ نقشہ بنایا گیا ہے ، جو آر ایس آئی کی حتمی ہموار دورانیے کی لمبائی ہے۔

اس طرح ، مارکیٹ کی صورتحال کے مطابق ، آر ایس آئی اشارے کے پیرامیٹرز کو خود بخود ایڈجسٹ کیا جاسکتا ہے ، جب قیمت میں تبدیلی اور حرکیات میں تبدیلی کا مضبوط تعلق ہوتا ہے تو ، زیادہ قلیل مدتی آر ایس آئی کا استعمال کیا جاتا ہے ، تاکہ اسے زیادہ حساس بنایا جاسکے۔ جب ارتباط کم ہوتا ہے تو ، سگنل پر شور کے اثرات کو کم کرنے کے لئے زیادہ طویل مدتی آر ایس آئی کا استعمال کیا جاتا ہے۔

طاقت کا تجزیہ

  • متحرک ایڈجسٹمنٹ پیرامیٹرز ، مارکیٹ میں تبدیلیوں کے مطابق
  • مقررہ دورانیہ کے اشارے کے استعمال کی حدود سے بچنا
  • ہموار سائیکل خود کار طریقے سے مرضی کے مطابق، دستی طور پر بہترین پیرامیٹرز کو منتخب کرنے کی ضرورت نہیں ہے
  • مختلف نسلوں کے لئے قابل ترتیب RSI دورانیہ کی حد

خطرے کا تجزیہ

  • اس کے نتیجے میں ، قیمتوں میں تبدیلی کے نقطہ نظر کو نظر انداز کیا جاسکتا ہے ، اور اس کے نتیجے میں قیمتوں میں تبدیلی کا نقطہ نظر نظر نہیں آتا ہے۔
  • قیمتوں اور محرکات کے مابین تعلق کو بہت زیادہ توجہ دینا اور دوسرے عوامل کو نظرانداز کرنا
  • ڈیفالٹ آر ایس آئی کی مدت کی حد تمام اقسام کے لئے موزوں نہیں ہوسکتی ہے اور بہتر بنانے کی ضرورت ہے
  • RSI سائیکل کو ایڈجسٹ کرنے کے لئے دیگر عوامل جیسے اتار چڑھاؤ کے ساتھ مل کر غور کیا جاسکتا ہے

اصلاح کی سمت

  • ریلیٹیڈٹی کے مختلف طریقوں کو آزمائیں اور تاخیر کو کم کریں
  • RSI کے دورانیے کا تعین کرنے کے لئے مزید عوامل کو شامل کرنے پر غور کریں، نہ صرف اس پر انحصار کریں
  • بہترین ڈیفالٹ آر ایس آئی سائیکلنگ رینج تلاش کرنے کے لئے مختلف اقسام کے لئے بیک اپ
  • مکمل طور پر لکیری نقشہ سازی پر انحصار کرنے کے بجائے متعلقہ عنصر کے وزن کو ترتیب دے سکتے ہیں
  • فلٹرنگ شرائط شامل کریں تاکہ مخصوص مارکیٹ کے حالات میں نامناسب آر ایس آئی سائیکل کا استعمال نہ کیا جاسکے

خلاصہ کریں۔

اس حکمت عملی کو متحرک طور پر آر ایس آئی کو ہموار کرنے کے دورانیے کو ایڈجسٹ کرکے سیکھنے کے قابل ہے ، لیکن اس کے عملی نفاذ میں بہتری کی گنجائش ہے۔ کلیدی بات یہ ہے کہ آر ایس آئی پیرامیٹرز کے انتخاب پر اثر انداز ہونے والے فیصلہ کن عوامل کو تلاش کیا جائے اور اسے قابل پیمائش اشارے میں تبدیل کیا جائے۔ اس کے ساتھ ہی ، ماڈل پر مکمل طور پر انحصار نہ کریں ، بلکہ پیرامیٹرز کی حد کو تجربے اور تاثرات کی بنیاد پر بہتر بنانے کی ضرورت ہے۔ مجموعی طور پر ، یہ ایک بہت ہی جدید خیال ہے جس میں عملی استعمال کی صلاحیت موجود ہے ، بہتر بنانے اور بہتر بنانے کے بعد۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy("Dynamic RSI Momentum", "DRM Strategy", process_orders_on_close = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 50 )

// +++++++++++++++++++++
// ++      INPUT      ++ 
// +++++++++++++++++++++

// Momentum
len = input.int(10, "Momentum Length", 1,      group = "Dynamic RSI Momentum")
src = input.source(close, "Source",   group = "Dynamic RSI Momentum")

min_rsi = input.int(20, "Min RSI", group = "Dynamic RSI Momentum")
max_rsi = input.int(50, "Max RSI", group = "Dynamic RSI Momentum")

upLvl = input.float(70, "OverBought", 0, 100, group = "Dynamic RSI Momentum")
dnLvl = input.float(30, "OverSold",   0, 100, group = "Dynamic RSI Momentum")

// +++++++++++++++++++++
// ++   CALCULATION   ++ 
// +++++++++++++++++++++

// RMA Function
rmaFun(src, len) =>
    sma   = ta.sma(src, len) 
	alpha = 1/len
	sum   = 0.0
	sum  := na(sum[1]) ? sma : alpha * src + (1 - alpha) * nz(sum[1])

// RSI Function 
rsiFun(src, len) =>     
    100 - 100 / (1 + rmaFun(src - src[1] > 0 ? src - src[1] : 0, len) / 
                     rmaFun(src[1] - src > 0 ? src[1] - src : 0, len))

// Momentum
momVal = src - src[len]

// Calculation Price vs Momentum
corr  = ta.correlation(src, momVal, len)
corr := corr > 1 or corr < -1 ? float(na) : corr

rsiLen = 0
rsiLen := int(min_rsi + nz(math.round((1 - corr) * (max_rsi-min_rsi) / 2, 0), 0))

rsiMom = rsiFun(src, rsiLen)


// +++++++++++++++++++++
// ++    STRATEGY     ++ 
// +++++++++++++++++++++

long  = ta.crossover(rsiMom, dnLvl)
short = ta.crossunder(rsiMom, upLvl) 


// +++> Long <+++++
if long and not na(rsiMom)
    strategy.entry("Long", strategy.long)

// +++> Short <+++++
if short and not na(rsiMom)
    strategy.entry("Short", strategy.short)

// +++++++++++++++++++++
// ++      PLOT       ++ 
// +++++++++++++++++++++

plot(rsiMom, "Dynamic RSI Momentum", rsiMom < dnLvl ? color.green : rsiMom > upLvl ? color.red : color.yellow)

hline(50, "Mid Line", color.gray)

upperLine = hline(upLvl, "Upper Line", color.gray)
lowerLine = hline(dnLvl, "Lower Line", color.gray)
fill(upperLine, lowerLine, color.new(color.purple, 90), "Background Fill")