متعدد موونگ ایوریج کراس اوور کی مدد سے RSI ڈائنامک پیرامیٹر مقداری تجارتی حکمت عملی

RSI MA SMA EMA WMA SMMA RMA
تخلیق کی تاریخ: 2025-01-17 16:14:38 آخر میں ترمیم کریں: 2025-01-17 16:14:38
کاپی: 1 کلکس کی تعداد: 128
1
پر توجہ دیں
1219
پیروکار

متعدد موونگ ایوریج کراس اوور کی مدد سے RSI ڈائنامک پیرامیٹر مقداری تجارتی حکمت عملی

جائزہ

یہ ایک مقداری تجارتی حکمت عملی ہے جو ریلیٹیو سٹرینتھ انڈیکس (RSI) کو متعدد متحرک اوسطوں کے ساتھ جوڑتی ہے۔ یہ حکمت عملی بنیادی طور پر RSI اشارے پر مختلف قسم کے حرکت پذیر اوسط (بشمول SMA، EMA، WMA اور SMMA) کے کراس اوور سگنلز کی نگرانی کر کے مارکیٹ کے رجحان کا تعین کرتی ہے، اور RSI اشارے کی زیادہ خریدی ہوئی اور زیادہ فروخت ہونے والی حدود کو خود ایک معاون بنیاد کے طور پر یکجا کرتی ہے۔ فیصلہ، تاکہ مارکیٹ کے رجحان کا تعین کیا جا سکے۔

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

حکمت عملی میں بنیادی طور پر حساب کے درج ذیل اہم اقدامات شامل ہیں:

  1. 14 مدت کے RSI اشارے کا حساب لگائیں، زیادہ خریدے ہوئے علاقے کو 70 اور زیادہ فروخت ہونے والے علاقے کو 30 پر سیٹ کریں
  2. RSI وکر پر مختلف پیرامیٹرز کے ساتھ تین متحرک اوسط کا حساب لگائیں:
    • MA1: 20 ادوار، اختیاری SMA/EMA/WMA/SMMA
    • MA2: 50 مدت، اختیاری SMA/EMA/WMA/SMMA
    • MA3: 100 مدت، اختیاری SMA/EMA/WMA/SMMA
  3. تجارتی سگنل جنریشن کے قوانین:
    • سگنل خریدیں: جب MA2 MA3 کو اوپر کی طرف کراس کرتا ہے۔
    • سیل سگنل: جب MA2 MA3 کو نیچے کی طرف کراس کرتا ہے۔
  4. اسی وقت، تجارتی فیصلوں کے لیے معاون حوالہ فراہم کرنے کے لیے RSI اشارے کے انحراف کا پتہ لگائیں۔

اسٹریٹجک فوائد

  1. تجارتی سگنلز کی وشوسنییتا کو بہتر بنانے کے لیے متعدد تکنیکی اشارے کراس توثیق کرتے ہیں۔
  2. حرکت پذیر اوسط قسم اور پیرامیٹرز قابل ایڈجسٹ ہیں، جس میں مضبوط لچک ہے۔
  3. RSI ڈائیورجینس کا پتہ لگانے کا فنکشن مارکیٹ کے ٹرننگ پوائنٹس کا پہلے سے پتہ لگانے میں مدد کر سکتا ہے۔
  4. مؤثر طریقے سے خطرات کو کنٹرول کرنے کے لیے فیصد پوزیشن مینجمنٹ کا استعمال کریں۔
  5. بہترین ویژولائزیشن اثر، تجزیہ کرنے میں آسان اور بیک ٹیسٹ

اسٹریٹجک رسک

  1. اوسط کراس اوور کو منتقل کرنے کا اثر پیچھے رہ سکتا ہے۔
  2. اکثر جھوٹے سگنل سائیڈ وے مارکیٹوں میں ہو سکتے ہیں۔
  3. مارکیٹ کے مخصوص حالات میں RSI اشارے کی تحریف
  4. پیرامیٹر کے غلط انتخاب کے نتیجے میں بہت زیادہ یا بہت کم تجارتی سگنل ہو سکتے ہیں۔ حل:
  • کراس توثیق کے لیے مارکیٹ کے رجحانات اور تجارتی حجم کو یکجا کرنے کی سفارش کی جاتی ہے۔
  • موونگ ایوریج پیرامیٹرز کو ایڈجسٹ کرکے ٹریڈنگ فریکوئنسی کو بہتر بنایا جا سکتا ہے۔
  • رسک کو کنٹرول کرنے کے لیے سٹاپ نقصان طے کریں اور منافع لیں۔

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

  1. سگنل فلٹرنگ کی اصلاح:
  • رجحان کی تصدیق کے اشارے شامل کریں۔
  • حجم کا تجزیہ شامل کریں۔
  1. پیرامیٹرز کی متحرک اصلاح:
  • مارکیٹ کے اتار چڑھاؤ کے مطابق RSI اور MA پیرامیٹرز کو خودکار طور پر ایڈجسٹ کریں۔
  • ایک انکولی سائیکل کیلکولیشن کا طریقہ متعارف کرایا جا رہا ہے۔
  1. رسک کنٹرول کی اصلاح:
  • متحرک سٹاپ نقصان اور ٹیک پرافٹ میکانزم تیار کریں۔
  • ایک متحرک گودام مینجمنٹ سسٹم ڈیزائن کریں۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-01-17 00:00:00
end: 2025-01-16 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=6
strategy(title="Relative Strength Index with MA Strategy", shorttitle="RSI-MA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200)

// RSI Inputs
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
calculateDivergence = input.bool(false, title="Calculate Divergence", group="RSI Settings", tooltip="Calculating divergences is needed in order for divergence alerts to fire.")

// RSI Calculation
change_rsi = ta.change(rsiSourceInput)
up = ta.rma(math.max(change_rsi, 0), rsiLengthInput)
down = ta.rma(-math.min(change_rsi, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

// RSI Plot
plot(rsi, "RSI", color=#7E57C2)
hline(70, "RSI Upper Band", color=#787B86)
hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
hline(30, "RSI Lower Band", color=#787B86)
fill(hline(70), hline(30), color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")

// RSI-based MA Inputs
grpRSIMovingAverages = "RSI Moving Averages"
ma1Length = input.int(20, title="MA1 Length", group=grpRSIMovingAverages)
ma2Length = input.int(50, title="MA2 Length", group=grpRSIMovingAverages)
ma3Length = input.int(100, title="MA3 Length", group=grpRSIMovingAverages)
ma1Type = input.string("SMA", title="MA1 Type", options=["SMA", "EMA", "WMA", "SMMA"], group=grpRSIMovingAverages)
ma2Type = input.string("EMA", title="MA2 Type", options=["SMA", "EMA", "WMA", "SMMA"], group=grpRSIMovingAverages)
ma3Type = input.string("WMA", title="MA3 Type", options=["SMA", "EMA", "WMA", "SMMA"], group=grpRSIMovingAverages)

// MA Calculation Function
calcMA(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "WMA" => ta.wma(source, length)
        "SMMA" => ta.rma(source, length)

// MA Calculations
ma1 = calcMA(rsi, ma1Length, ma1Type)
ma2 = calcMA(rsi, ma2Length, ma2Type)
ma3 = calcMA(rsi, ma3Length, ma3Type)

// MA Plots
plot(ma1, title="RSI MA1", color=color.blue)
plot(ma2, title="RSI MA2", color=color.green)
plot(ma3, title="RSI MA3", color=color.red)

// Divergence (Retained from original script)
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5
bearColor = color.red
bullColor = color.green
textColor = color.white
noneColor = color.new(color.white, 100)

_inRange(bool cond) =>
    bars = ta.barssince(cond)
    rangeLower <= bars and bars <= rangeUpper

plFound = false
phFound = false

bullCond = false
bearCond = false

rsiLBR = rsi[lookbackRight]

if calculateDivergence
    // Regular Bullish
    plFound := not na(ta.pivotlow(rsi, lookbackLeft, lookbackRight))    
    rsiHL = rsiLBR > ta.valuewhen(plFound, rsiLBR, 1) and _inRange(plFound[1])
    lowLBR = low[lookbackRight]
    priceLL = lowLBR < ta.valuewhen(plFound, lowLBR, 1)
    bullCond := priceLL and rsiHL and plFound

    // Regular Bearish
    phFound := not na(ta.pivothigh(rsi, lookbackLeft, lookbackRight))
    rsiLH = rsiLBR < ta.valuewhen(phFound, rsiLBR, 1) and _inRange(phFound[1])
    highLBR = high[lookbackRight]
    priceHH = highLBR > ta.valuewhen(phFound, highLBR, 1)
    bearCond := priceHH and rsiLH and phFound

// plot(
//      plFound ? rsiLBR : na,
//      offset=-lookbackRight,
//      title="Regular Bullish",
//      linewidth=2,
//      color=(bullCond ? bullColor : noneColor),
//      display = display.pane
//      )

plotshape(
     bullCond ? rsiLBR : na,
     offset=-lookbackRight,
     title="Regular Bullish Label",
     text=" Bull ",
     style=shape.labelup,
     location=location.absolute,
     color=bullColor,
     textcolor=textColor
     )

// plot(
//      phFound ? rsiLBR : na,
//      offset=-lookbackRight,
//      title="Regular Bearish",
//      linewidth=2,
//      color=(bearCond ? bearColor : noneColor),
//      display = display.pane
//      )

plotshape(
     bearCond ? rsiLBR : na,
     offset=-lookbackRight,
     title="Regular Bearish Label",
     text=" Bear ",
     style=shape.labeldown,
     location=location.absolute,
     color=bearColor,
     textcolor=textColor
     )

alertcondition(bullCond, title='Regular Bullish Divergence', message="Found a new Regular Bullish Divergence, `Pivot Lookback Right` number of bars to the left of the current bar.")
alertcondition(bearCond, title='Regular Bearish Divergence', message='Found a new Regular Bearish Divergence, `Pivot Lookback Right` number of bars to the left of the current bar.')

// ----- MUA/BÁN -----

// Điều kiện Mua: MA2 cắt lên MA3 và MA3 < 55
buyCondition = ta.crossover(ma2, ma3) 

// Điều kiện Bán: MA2 cắt xuống MA3 và MA3 > 40
sellCondition = ta.crossunder(ma2, ma3)

// Thực hiện lệnh Mua/Bán
if (buyCondition)
    strategy.entry("Buy", strategy.long, comment="Buy Signal")

if (sellCondition)
    strategy.close("Buy", comment="Sell Signal")



// ----- KẾT THÚC -----