یہ حکمت عملی سپر ٹرینڈ محور پوائنٹس اور اعلی تعدد کی تجارت کے لئے ADX اشارے کو جوڑتی ہے۔ سپر ٹرینڈ لائنز متحرک طور پر قیمت کے رجحانات کا تعین کرنے اور تجارتی سگنل پیدا کرنے کے لئے تازہ ترین معاونت اور مزاحمت کی سطح کا حساب لگاتی ہیں۔ ADX اشارے رجحان کی طاقت کی پیمائش کرتا ہے اور فلٹر کی حیثیت سے کام کرتا ہے ، صرف اس وقت تجارت کرتا ہے جب رجحان کافی مضبوط ہوتا ہے۔
محور کی معاونت اور مزاحمت کی لائنوں کا حساب لگائیں۔ بندش کی قیمت لیں اور اوپر اور نیچے کے ATR رینج کو شامل / گھٹائیں۔ ان لائنوں کے وقفے رجحان کی واپسی کی نشاندہی کرتے ہیں۔
ADX رجحان کی طاقت کا تعین کرتا ہے۔ اعلی ADX اقدار ایک مضبوط رجحان کی نشاندہی کرتی ہیں۔
تجارتی سگنلز کے لئے دونوں کو یکجا کریں۔ صرف محور وقفوں اور اعلی ADX پر طویل / مختصر جائیں۔
اس حکمت عملی کے فوائد:
متحرک سپر ٹرینڈ لائنز تیزی سے بریک آؤٹ کی نشاندہی کرتی ہیں۔
ADX فلٹر رینج محدود مارکیٹوں کے دوران جھوٹے سگنل سے بچتا ہے.
اچھا خطرہ انعام کا تناسب اور استعمال کا کنٹرول۔
اس حکمت عملی کے خطرات:
خلا کی حرکتیں سپر ٹرینڈ لائنوں کو غیر فعال کر سکتی ہیں۔
خراب ADX حد کی ترتیب کارکردگی پر اثر انداز ہوتا ہے.
تجارت کی کثرت سے ٹرانزیکشن کی لاگت میں اضافہ ہوتا ہے۔
حل:
وسیع پیمانے پر توڑنے کی حدوں کی اجازت دینے کے لئے پیرامیٹرز کو بہتر بنائیں.
بہتر ADX اقدار کے لئے ٹیسٹ.
تجارت کی کثرت کو کم کریں۔
بہتری کے لیے ضروری شعبے:
زیادہ مضبوط لائنوں کے لئے ATR ضارب کو بہتر بنائیں.
مختلف ADX پیرامیٹرز کی جانچ کریں.
نقصانات کو محدود کرنے کے لئے سٹاپ نقصان شامل کریں.
یہ حکمت عملی اعلی امکان کے رجحان کے الٹ پوائنٹس کی نشاندہی کرنے کے لئے سپر ٹرینڈ اور اے ڈی ایکس کی طاقتوں کو جوڑتی ہے۔ پیرامیٹر ٹوننگ اور میکانزم کی ایڈجسٹمنٹ کے ساتھ ، یہ مستحکم منافع بخش اعلی تعدد کی حکمت عملی بن سکتی ہے۔
/*backtest start: 2023-02-12 00:00:00 end: 2024-02-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("STPP20 + ADX", overlay = true) /////////////////////////// // SuperTrend + Pivot Point ////////////////////////// src = input(close, title="EMA Source") PPprd = input(defval = 2, title="Pivot Point Period", minval = 1, maxval = 50) AtrFactor=input(defval = 5, title = "ATR Factor", minval = 1, step = 0.1) AtrPd=input(defval = 20, title = "ATR Period", minval=1) float ph = na float pl = na ph := pivothigh(PPprd, PPprd) pl := pivotlow(PPprd, PPprd) float center = na center := center[1] float lastpp = ph ? ph : pl ? pl : na if lastpp if na(center) center := lastpp else center := (center * 2 + lastpp) / 3 Up = center - (AtrFactor * atr(AtrPd)) Dn = center + (AtrFactor * atr(AtrPd)) float TUp = na float TDown = na Trend = 0 TUp := close[1] > TUp[1] ? max(Up, TUp[1]) : Up TDown := close[1] < TDown[1] ? min(Dn, TDown[1]) : Dn Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1) Trailingsl = Trend == 1 ? TUp : TDown // Lines linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na plot(Trailingsl, color = linecolor , linewidth = 2, title = "PP SuperTrend") bsignalSSPP = close > Trailingsl ssignalSSPP = close < Trailingsl /////// // ADX ////// lenADX = 14 th = 25 TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1]))) DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0 DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0 SmoothedTrueRange = 0.0 SmoothedTrueRange := nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/lenADX) + TrueRange SmoothedDirectionalMovementPlus = 0.0 SmoothedDirectionalMovementPlus := nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/lenADX) + DirectionalMovementPlus SmoothedDirectionalMovementMinus = 0.0 SmoothedDirectionalMovementMinus := nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/lenADX) + DirectionalMovementMinus DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100 DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100 DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100 ADX = sma(DX, lenADX) ////// // MA ///// lenMA = 21 srcMA = input(close, title="Source") offsetMA = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500) outMA = sma(srcMA, lenMA) // Buy - Sell Entries buy = bsignalSSPP and outMA < close and ADX > th sell = ssignalSSPP if (buy) // .order // Tuned version strategy.entry("Buy", strategy.long) if (sell) and (strategy.position_size > 0) strategy.order("Sell", false, when = sell)