وسائل لوڈ ہو رہے ہیں... لوڈنگ...

متحرک رفتار آر ایس آئی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-07 15:47:42
ٹیگز:

جائزہ

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

حکمت عملی منطق

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

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

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

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

فوائد کا تجزیہ

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

خطرے کا تجزیہ

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

اصلاح کی ہدایات

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

خلاصہ

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


/*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")



مزید