ADX, RSI, SMA ملٹی انڈیکیٹر امتزاج تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-09-14 16:19:46 آخر میں ترمیم کریں: 2023-09-14 16:19:46
کاپی: 3 کلکس کی تعداد: 1004
1
پر توجہ دیں
1617
پیروکار

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

اس حکمت عملی میں ٹریڈنگ سگنل پیدا کرنے کے لئے رجحان کی سمت اور اوورلوڈ اوور سیل علاقوں کی شناخت کے لئے متعدد تکنیکی اشارے کا استعمال کیا گیا ہے۔

اہم اشارے میں شامل ہیں:

  1. اوسط سمت انڈیکس ((ADX): رجحان کی طاقت کا اندازہ لگانا

  2. نسبتاً کمزور اشارے (آر ایس آئی): زیادہ خریدنے اور زیادہ فروخت کرنے کا فیصلہ

  3. سمیٹ اوسط (ایس ایم اے): مختصر مدت کے رجحانات کا اندازہ لگانا

  4. انتہائی تیز رفتار SAR: طویل مدتی رجحانات کا اندازہ لگانا

  5. چینل توڑنے: رجحان توڑنے

ٹرانزیکشن لاجسٹکس:

  1. ADX کا کہنا ہے کہ رجحان موجود ہے اور کافی مضبوط ہے

  2. SAR کا کہنا ہے کہ طویل اور قلیل مدتی رجحانات متفق ہیں

  3. RSI اوورلوڈ اور اوورلوڈ زون کی شناخت کرتا ہے

  4. جب قیمت SMA میڈین لائن کو توڑتی ہے تو داخل ہوتا ہے

  5. جب قیمتوں میں کمی واقع ہوتی ہے تو داخلہ

متعدد اشارے ایک دوسرے کی توثیق کرتے ہیں جس سے فیصلے کی درستگی میں اضافہ ہوتا ہے ، اور مختلف حکمت عملیوں کا مجموعہ ایک منظم تجارتی نظام تشکیل دیتا ہے۔

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

  • ملٹی میٹرکس کا مجموعہ ، سگنل کے معیار کو بہتر بناتا ہے

  • مختلف حکمت عملیوں کا مجموعہ، منظم داخلے

  • ADX نے رجحانات کی نشاندہی کی ، RSI نے اوور خریدنے اور اوور فروخت کرنے کا فیصلہ کیا

  • SAR رجحانات پر قبضہ کرتا ہے، SMA اور چینل داخل ہوتا ہے

اسٹریٹجک رسک

  • ایک سے زیادہ پیرامیٹرز کی ترتیب، بار بار ٹیسٹ کی اصلاح کی ضرورت ہے

  • کم تعدد کے ساتھ جوڑے کی شرائط

  • جب اشارے تنازعہ سگنل پیدا کرتے ہیں تو اس کا انتظام کرنا مشکل ہوتا ہے

خلاصہ کریں۔

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

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

//@version=5
// strategy("Combined Strategy", overlay=true, default_qty_value=100, initial_capital=1000, margin_long=0.1)

adxlen = input(7, title="ADX Smoothing")
dilen = input(7, title="DI Length")
dirmov(len) =>
    up = ta.change(high)
    down = -ta.change(low)
    plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    truerange = ta.rma(ta.tr, len)
    plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
    minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
    [plus, minus]

adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)

// The same on Pine Script™
pine_supertrend(factor, atrPeriod) =>
    src = hl2
    atr = ta.atr(atrPeriod)
    upperBand = src + factor * atr
    lowerBand = src - factor * atr
    prevLowerBand = nz(lowerBand[1])
    prevUpperBand = nz(upperBand[1])

    lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ? lowerBand : prevLowerBand
    upperBand := upperBand < prevUpperBand or close[1] > prevUpperBand ? upperBand : prevUpperBand
    int direction = na
    float superTrend = na
    prevSuperTrend = superTrend[1]
    if na(atr[1]) and ta.rsi(close, 21) < 66 and ta.rsi(close,3) > 80 and ta.rsi(close, 28) > 49 and sig > 20
        direction := 1
    else if prevSuperTrend == prevUpperBand
        direction := close > upperBand ? -1 : 1
    else
        direction := close < lowerBand ? 1 : -1
    superTrend := direction == -1 ? lowerBand : upperBand
    [superTrend, direction]

[pineSupertrend, pineDirection] = pine_supertrend(3, 10)
upTrend = pineDirection < 0
downTrend = pineDirection > 0

// Define the 20-period SMA
sma20 = ta.sma(close, 20)

a = ta.rsi(close,14)
OB = input(70)
OS = input(30)
os = a > OB
ob = a < OS

if upTrend and close > pineSupertrend and close > sma20 and os
    strategy.entry("Buy", strategy.long)

if ta.crossunder(close, sma20) or ob
    strategy.close_all()

//define when to breakout of channel 
//("ChannelBreakOutStrategy", overlay=true)
length = input.int(title="Length", minval=1, maxval=1000, defval=5)
upBound = ta.highest(high, length)
downBound = ta.lowest(low, length)
if (not na(close[length]))
	strategy.entry("ChBrkLE", strategy.long, stop=upBound + syminfo.mintick, comment="ChBrkLE")
strategy.entry("ChBrkSE", strategy.short, stop=downBound - syminfo.mintick, comment="ChBrkSE")