ایک انکولی ATR-ADX رجحان کی حکمت عملی V2

مصنف:چاؤ ژانگ، تاریخ: 2023-12-05 18:08:14
ٹیگز:

img

جائزہ

یہ ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جو اے ٹی آر اشارے اور اے ڈی ایکس اشارے کو جوڑتی ہے۔ یہ بہتر رجحان کی نگرانی کے حصول کے لئے مارکیٹ کے رجحان کے حالات کے مطابق اے ٹی آر ضرب کو متحرک طور پر ایڈجسٹ کرتی ہے۔

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

یہ حکمت عملی بنیادی طور پر اے ٹی آر اشارے اور اے ڈی ایکس اشارے پر مبنی ہے۔

سب سے پہلے ، یہ ٹرو رینج (اے ٹی آر) اور اے ڈی ایکس کا حساب لگاتا ہے۔ اے ٹی آر مارکیٹ کی اتار چڑھاؤ کی عکاسی کرتا ہے جبکہ اے ڈی ایکس رجحان کی طاقت کا اندازہ کرتا ہے۔

دوسرا ، یہ ADX اشارے میں DI + اور DI- کے درمیان فرق کے مطابق موجودہ رجحان کی سمت کا تعین کرتا ہے۔ اگر DI + DI- سے زیادہ ہے تو ، یہ ایک اپ ٹرینڈ ہے۔ اگر DI- DI + سے زیادہ ہے تو ، یہ ایک ڈاؤن ٹرینڈ ہے۔

اس کے بعد ، جب ADX بڑھ رہا ہے تو ، یہ ایک بڑا ATR ضرب (m1) استعمال کرتا ہے۔ جب ADX گر رہا ہے تو ، یہ متحرک ایڈجسٹمنٹ حاصل کرنے کے لئے ایک چھوٹا ATR ضرب (m2) استعمال کرتا ہے۔ یہ حکمت عملی کا مرکز ہے۔

آخر میں ، اے ٹی آر اور قیمت کے وسط کے ساتھ مل کر ، یہ رجحان کی سمت کا تعین کرنے کے لئے اوپری اور نچلی بینڈ کا حساب لگاتا ہے۔ جب قیمت اوپری بینڈ کو توڑتی ہے تو ، یہ طویل ہوجاتی ہے۔ جب قیمت نچلی بینڈ کو توڑتی ہے تو ، یہ مختصر ہوجاتی ہے۔

لہذا حکمت عملی میں اے ٹی آر اور اے ڈی ایکس شامل ہیں، اور متحرک طور پر اے ٹی آر پیرامیٹرز کو ایڈجسٹ کرکے، یہ ٹریڈنگ کے لئے رجحانات کو بہتر طور پر پکڑ سکتا ہے.

فوائد کا تجزیہ

اس حکمت عملی کے کئی واضح فوائد ہیں:

  1. بہتر رجحان کی گرفتاری کے لئے پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرنے کے قابل
  2. زیادہ جامع فیصلے کے لئے اے ٹی آر اور اے ڈی ایکس کو یکجا کرتا ہے
  3. کنٹرول شدہ کھپت کی توقع کرتا ہے
  4. سادہ نفاذ اور سمجھنے میں آسان

لہذا، یہ ایک بہت ہی عملی رجحان ہے جس میں اچھی ڈراؤنڈ کنٹرول کے ساتھ حکمت عملی کی پیروی کی جاتی ہے۔ سفارش کرنے کے قابل.

خطرے کا تجزیہ

اس حکمت عملی میں کچھ خطرات بھی ہیں:

  1. اے ڈی ایکس میں تاخیر کے مسائل ہیں، رجحان کی تبدیلی کے نکات کو یاد کر سکتے ہیں
  2. ATR سائز کا غلط انتخاب ناکافی منافع یا زیادہ سٹاپ نقصان کا باعث بن سکتا ہے
  3. بلیک سوان واقعات کی وجہ سے بینڈوں کے خلاف تیزی سے فرار ہونے سے نقصانات ہوسکتے ہیں

لہذا پیرامیٹر کی اصلاح اور خطرے کے کنٹرول پر توجہ دینے کی ضرورت ہے۔ نیز ، بلیک سوان کے واقعات کا زیادہ اثر پڑ سکتا ہے۔

اصلاح کی ہدایات

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

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

لہذا مسائل کے مطابق پیرامیٹرز اور میکانزم کو ایڈجسٹ کرکے اصلاح کے لئے ابھی بھی بہت زیادہ گنجائش ہے۔

نتیجہ

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


/*backtest
start: 2022-11-28 00:00:00
end: 2023-12-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// From mortdiggiddy's indicator to strategy
// See also: https://www.tradingview.com/u/mortdiggiddy/

strategy(title = "Adaptive ATR-ADX Trend V2", shorttitle = "Adaptive ATR V2 Strategy", overlay = true)

//Mode
src = input(title = "Source",  defval = hlc3)
atrLen = input(title = "ATR",  defval = 21, minval = 1, maxval = 100)
m1 = input(title = "ATR Multiplier - ADX Rising", type = float, defval = 3.5, minval = 1, step = 0.1, maxval = 100)
m2 = input(title = "ATR Multiplier - ADX Falling", type = float, defval = 1.75, minval = 1, step = 0.1, maxval = 100)

adxLen = input(title = "ADX",  defval = 14, minval = 1, maxval = 100)
adxThresh = input(title = "ADX Threshold",  defval = 30, minval = 1)
aboveThresh = input(true, title = "ADX Above Threshold uses ATR Falling Multiplier Even if Rising?")
useHeiken = input(false, title = "Use Heiken-Ashi Bars (Source will be ohlc4)")
    
// DI-Pos, DI-Neg, ADX

hR = change(high)
lR = -change(low)

dmPos = hR > lR ? max(hR, 0) : 0
dmNeg = lR > hR ? max(lR, 0) : 0

sTR = nz(sTR[1]) - nz(sTR[1]) / adxLen + tr
sDMPos = nz(sDMPos[1]) - nz(sDMPos[1]) / adxLen + dmPos
sDMNeg = nz(sDMNeg[1]) - nz(sDMNeg[1]) / adxLen + dmNeg

DIP = sDMPos / sTR * 100
DIN = sDMNeg / sTR * 100
DX = abs(DIP - DIN) / (DIP + DIN) * 100
adx = sma(DX, adxLen)

// Heiken-Ashi

xClose = ohlc4
xOpen = (nz(xOpen[1]) + nz(close[1])) / 2
xHigh = max(high, max(xOpen, xClose))
xLow = min(low, min(xOpen, xClose))

// Trailing ATR

v1 = abs(xHigh - xClose[1])
v2 = abs(xLow - xClose[1])
v3 = xHigh - xLow

trueRange = max(v1, max(v2, v3))
atr = useHeiken ? rma(trueRange, atrLen) : atr(atrLen)

m = rising(adx, 1) and (adx < adxThresh or not aboveThresh) ? m1 : falling(adx, 1) or (adx > adxThresh and aboveThresh) ? m2 : nz(m[1])
mUp = DIP >= DIN ? m : m2
mDn = DIN >= DIP ? m : m2

src_ = useHeiken ? xClose : src
c = useHeiken ? xClose : close
t = useHeiken ? (xHigh + xLow) / 2 : hl2

up = t - mUp * atr
dn = t + mDn * atr

TUp = max(src_[1], c[1]) > TUp[1] ? max(up, TUp[1]) : up
TDown = min(src_[1], c[1]) < TDown[1] ? min(dn, TDown[1]) : dn

trend = min(src_, min(c, close)) > TDown[1] ? 1 : max(src_, max(c, close)) < TUp[1]? -1 : nz(trend[1], 1)
stop = trend == 1 ? TUp : TDown
trendChange = change(trend)

longCondition = (trendChange > 0)
if (longCondition)
    strategy.entry("long", strategy.long)
shortCondition = (trendChange < 0)
if (shortCondition)
    strategy.entry("short", strategy.short)    
    
// Plot

lineColor = not(trendChange) ? trend > 0 ? #00FF00DD : #FF0000DD : #00000000
shapeColor = trendChange ? trendChange > 0 ? #00FF00F8 : #FF0000F8 : #00000000

plot(stop, color = lineColor, style = line, linewidth = 1, title = "ATR Trend")
plotshape(trendChange ? stop : na, style = shape.circle, size = size.tiny, location = location.absolute, color = shapeColor, title = "Change")

alertcondition(trendChange > 0, title = "ATR-ADX Change Up", message = "ATR-ADX Change Up")
alertcondition(trendChange < 0, title = "ATR-ADX Change Down", message = "ATR-ADX Change Down")

// end

مزید