RSI MA کراس اوور سوئنگ ٹریڈنگ حکمت عملی ٹریلنگ سٹاپ سسٹم کے ساتھ

RSI MA CROSSOVER TRAILING SL Swing Trading risk management
تخلیق کی تاریخ: 2025-04-24 16:51:14 آخر میں ترمیم کریں: 2025-04-24 16:51:14
کاپی: 4 کلکس کی تعداد: 349
2
پر توجہ دیں
319
پیروکار

RSI MA کراس اوور سوئنگ ٹریڈنگ حکمت عملی ٹریلنگ سٹاپ سسٹم کے ساتھ RSI MA کراس اوور سوئنگ ٹریڈنگ حکمت عملی ٹریلنگ سٹاپ سسٹم کے ساتھ

جائزہ

یہ حکمت عملی آر ایس آئی ((تباہ کن کمزور انڈیکس) اور اس کی چلتی اوسط ((MA) کے کراس پر مبنی ایک سوئنگ ٹریڈنگ حکمت عملی ہے جو 4 گھنٹے کے چارٹ کے لئے ڈیزائن کی گئی ہے۔ حکمت عملی آر ایس آئی اور ایم اے کے گولڈ فورکس اور ڈیڈ فورکس کے ذریعہ تجارتی سگنل تیار کرتی ہے ، اور اس میں متعدد رسک مینجمنٹ ٹولز شامل ہیں جن میں فکسڈ اسٹاپ / اسٹاپ ، ٹریکنگ اسٹاپ اور ریورس آؤٹ میکانیزم شامل ہیں۔ حکمت عملی میں مسلسل نقصان کی حد بھی رکھی گئی ہے ، اور جب دو بار سے زیادہ مسلسل نقصان ہوتا ہے تو ، تجارت کو اگلے دن کی بحالی تک معطل کردیا جاتا ہے۔

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

  1. ٹائم فریم کی حدحکمت عملی صرف 4 گھنٹے کے چارٹ پر کام کرتی ہے، اس بات کو یقینی بناتی ہے کہ ٹریڈنگ سگنل ڈیزائن کردہ وقت کی مدت کے مطابق ہو۔
  2. اشارے کا حساب کتاب: RSI ((ڈیفالٹ لمبائی 14) اور اس کی چلتی اوسط ((ایس ایم اے یا ای ایم اے ، ڈیفالٹ لمبائی 14) کا استعمال کرتے ہوئے سگنل پیدا کریں۔
    • گولڈ فورک ((آر ایس آئی پر ایم اے) خریدنے کے سگنل کو متحرک کرتا ہے ((زیادہ کرو))
    • ڈیڈ فورک ((آر ایس آئی کے تحت ایم اے کو توڑنے کے لئے) فروخت سگنل کو متحرک کرتا ہے ((خالی) ۔
  3. پوزیشن مینجمنٹ: ہر ٹرانزیکشن کے لئے دارالحکومت کی تقسیم اور موجودہ قیمت پر مبنی پوزیشن کی مقدار۔
  4. واپسی کا طریقہ کار
    • فکسڈ سٹاپ نقصان / روکنےاسٹاپ نقصان (ڈیفالٹ 1.5٪) اور اسٹاپ اسٹاپ (ڈیفالٹ 2.5٪) فی صد کی بنیاد پر:
    • ٹریکنگ سٹاپ نقصان: جب قیمت بلند ترین مقام سے مخصوص پوائنٹس (ڈیفالٹ 10 پوائنٹس) واپس لے جائے تو اس سے باہر نکلنے کا عمل ہوتا ہے۔
    • الٹ باہر نکلیںجب ریورس سگنل نظر آئے تو ہمت ہارنا۔
  5. رسک کنٹرول
    • مسلسل دو نقصانات کے بعد ٹریڈنگ کو روکنے کے لئے، ہر دن 9:15 پر نقصانات کا حساب لگائیں.

طاقت کا تجزیہ

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

خطرے کا تجزیہ

  1. پیرامیٹر کی حساسیتRSI اور MA کی لمبائی سگنل کے معیار پر زیادہ اثر انداز ہوتی ہے۔ مارکیٹ میں اتار چڑھاؤ کے مطابق بہتر بنانے کی ضرورت ہے۔
  2. رجحان مارکیٹ کی کارکردگیجب RSI مضبوط رجحان میں ہوتا ہے تو ، یہ طویل عرصے تک زیادہ خرید / فروخت کا سبب بن سکتا ہے ، جس سے سگنل پیچھے رہ جاتا ہے۔
  3. ٹائم فریم کی حد: صرف 4 گھنٹے کے چارٹ پر لاگو ہوتا ہے، دیگر ادوار کو دوبارہ تصدیق کی ضرورت ہوتی ہے۔
  4. مسلسل نقصان کا خطرہاس کے علاوہ ، یہ بھی کہا گیا ہے کہ اس کے نتیجے میں ممکنہ طور پر منافع کے مواقع ضائع ہوسکتے ہیں۔
    حل
  • تاریخ کی جانچ پڑتال کے ذریعے اصلاحی پیرامیٹرز
  • رجحان کے اشارے کے ساتھ مل کر ((جیسے ADX) سگنل فلٹر کریں۔
  • متحرک نقصان کا حساب لگانے کی حد مقرر کریں۔

اصلاح کی سمت

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-04-23 00:00:00
end: 2024-09-06 00:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=5
strategy("📈 RX Swing ", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=1)


// === INPUTS ===
rsiLength     = input.int(14, title="RSI Length")
maLength      = input.int(14, title="RSI MA Length")
maType        = input.string("SMA", options=["SMA", "EMA"], title="MA Type for RSI")
sl_pct        = input.float(1.5, title="Stop Loss %", minval=0.0)
tp_pct        = input.float(2.5, title="Take Profit %", minval=0.0)
capitalPerTrade = input.float(15000, title="Capital Per Trade (INR)", minval=1)
lotSize       = input.int(50, title="Lot Size (Nifty Options Lot)", minval=1)
trail_points  = input.float(10, title="Trailing SL Points", minval=0.1)

// === CALCULATIONS ===
rsi    = ta.rsi(close, rsiLength)
rsiMA  = maType == "SMA" ? ta.sma(rsi, maLength) : ta.ema(rsi, maLength)

longSignal  = ta.crossover(rsi, rsiMA)
shortSignal = ta.crossunder(rsi, rsiMA)

// === TRADING WINDOW ===
canTrade = true
exitTime = false

// === STATE VARIABLES ===
var float entryPrice = na
var bool inTrade = false
var string tradeDir = ""
var int lossCount = 0
var float trailHigh = na
var float trailLow = na

// === EXIT TRIGGER ===
exitNow = false
exitReason = ""

// === POSITION SIZE BASED ON CAPITAL ===
positionSize = (capitalPerTrade / close) * lotSize

// === ENTRY LOGIC (AFTER CLOSE OF CANDLE) ===
if (canTrade and lossCount < 2)
    if (longSignal and not inTrade and barstate.isconfirmed)  // Ensure the signal happens after candle close
        strategy.entry("Buy Call", strategy.long, qty=positionSize)
        entryPrice := close
        trailHigh := close
        inTrade := true
        tradeDir := "CALL"

    else if (shortSignal and not inTrade and barstate.isconfirmed)  // Ensure the signal happens after candle close
        strategy.entry("Buy Put", strategy.short, qty=positionSize)
        entryPrice := close
        trailLow := close
        inTrade := true
        tradeDir := "PUT"

// === TRAILING STOP-LOSS LOGIC ===
if (inTrade)
    if (tradeDir == "CALL")
        trailHigh := math.max(trailHigh, close)
        if (close <= trailHigh - trail_points)
            strategy.close("Buy Call", comment="CALL Trailing SL Hit")
            exitNow := true
            exitReason := "Trail SL"
            inTrade := false
            lossCount := lossCount + 1

    if (tradeDir == "PUT")
        trailLow := math.min(trailLow, close)
        if (close >= trailLow + trail_points)
            strategy.close("Buy Put", comment="PUT Trailing SL Hit")
            exitNow := true
            exitReason := "Trail SL"
            inTrade := false
            lossCount := lossCount + 1

// === REVERSAL EXIT LOGIC ===
if (inTrade)
    if (tradeDir == "CALL" and shortSignal)
        strategy.close("Buy Call", comment="CALL Exit on Reversal")
        exitNow := true
        exitReason := "Reversal"
        inTrade := false
        if (strategy.position_size < 0)
            lossCount := lossCount + 1

    if (tradeDir == "PUT" and longSignal)
        strategy.close("Buy Put", comment="PUT Exit on Reversal")
        exitNow := true
        exitReason := "Reversal"
        inTrade := false
        if (strategy.position_size > 0)
            lossCount := lossCount + 1

// === TP/SL EXIT LOGIC ===
if (inTrade)
    tpLevel = entryPrice * (1 + tp_pct / 100)
    slLevel = entryPrice * (1 - sl_pct / 100)

    if (strategy.position_size > 0)
        if (close >= tpLevel)
            strategy.close("Buy Call", comment="CALL TP Hit")
            exitNow := true
            exitReason := "TP"
            inTrade := false
        else if (close <= slLevel)
            strategy.close("Buy Call", comment="CALL SL Hit")
            exitNow := true
            exitReason := "SL"
            inTrade := false
            lossCount := lossCount + 1

    if (strategy.position_size < 0)
        tpLevel = entryPrice * (1 - tp_pct / 100)
        slLevel = entryPrice * (1 + sl_pct / 100)

        if (close <= tpLevel)
            strategy.close("Buy Put", comment="PUT TP Hit")
            exitNow := true
            exitReason := "TP"
            inTrade := false
        else if (close >= slLevel)
            strategy.close("Buy Put", comment="PUT SL Hit")
            exitNow := true
            exitReason := "SL"
            inTrade := false
            lossCount := lossCount + 1

// === RESET LOSS COUNT ON NEW DAY ===
if (hour == 9 and minute == 15)
    lossCount := 0

// === MARKUPS ===
plotshape(longSignal and canTrade and lossCount < 2 and barstate.isconfirmed, title="📗 CALL Entry", location=location.belowbar, style=shape.triangleup, color=color.green, size=size.small, text="CALL")
plotshape(shortSignal and canTrade and lossCount < 2 and barstate.isconfirmed, title="📕 PUT Entry", location=location.abovebar, style=shape.triangledown, color=color.red, size=size.small, text="PUT")
plotshape(exitNow and exitReason == "TP", location=location.belowbar, style=shape.xcross, color=color.green, size=size.tiny, title="✅ TP Exit", text="TP")
plotshape(exitNow and exitReason == "SL", location=location.abovebar, style=shape.xcross, color=color.red, size=size.tiny, title="❌ SL Exit", text="SL")
plotshape(exitNow and exitReason == "Reversal", location=location.abovebar, style=shape.circle, color=color.fuchsia, size=size.tiny, title="🔁 Reversal Exit", text="REV")
plotshape(exitNow and exitReason == "Trail SL", location=location.abovebar, style=shape.square, color=color.yellow, size=size.tiny, title="🔂 Trailing SL Exit", text="Trail")