ADX،RSI،SMA کثیر اشارے کے ساتھ مل کر تجارتی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-14 16:19:46
ٹیگز:

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

یہ حکمت عملی مختلف تکنیکی اشارے کو یکجا کرتی ہے تاکہ تجارتی سگنل کے لئے رجحان کی سمت اور زیادہ خرید / فروخت کی سطح کی نشاندہی کی جاسکے۔

استعمال شدہ اہم اشارے یہ ہیں:

  1. اوسط سمت کا اشاریہ (ADX): رجحان کی طاقت

  2. رشتہ دار طاقت انڈیکس (آر ایس آئی): زیادہ خرید/زیادہ فروخت

  3. سادہ چلتی اوسط (SMA): قلیل مدتی رجحان

  4. سپر ٹرینڈ: طویل / قلیل مدتی رجحان

  5. چینل بریک آؤٹ: ٹرینڈ بریک آؤٹ انٹری

تجارتی منطق یہ ہے:

  1. ADX رجحان کی موجودگی اور طاقت دکھاتا ہے

  2. سپر ٹرینڈ نے طویل مدتی / قلیل مدتی رجحانات کی سیدھ کی تصدیق کی

  3. RSI overbought/oversold علاقوں کی نشاندہی کرتا ہے

  4. SMA کراس اوور پر درج کریں

  5. چینل بریک آؤٹ پر داخل کریں

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

فوائد

  • متعدد اشارے معیار کو بہتر بناتے ہیں

  • حکمت عملیوں کو منظم اندراج کے لئے یکجا کریں

  • ADX رجحان کی نشاندہی کرتا ہے، RSI overbought/oversold

  • سپر ٹرینڈ ٹرینڈز، ایس ایم اے اور چینل بریک آؤٹ انٹری کو پکڑتا ہے

خطرات

  • کثیر پیرامیٹر ٹیوننگ کو بہتر بنانے کی ضرورت ہے

  • مشترکہ حالات کم کثرت سے پائے جاتے ہیں

  • متضاد اشارے کے اشارے جو حل کرنا مشکل ہیں

خلاصہ

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


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


مزید