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


تخلیق کی تاریخ: 2023-12-05 18:08:14 آخر میں ترمیم کریں: 2023-12-05 18:08:14
کاپی: 0 کلکس کی تعداد: 1056
1
پر توجہ دیں
1619
پیروکار

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

جائزہ

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

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

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

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

اس کے بعد ، ADX کے کثیر جہتی اشارے DX کے فرق کی بنیاد پر ، موجودہ رجحان کی کثیر جہتی حالت کا فیصلہ کریں۔ اگر DI + DI - سے زیادہ ہے تو ، کثیر جہتی رجحان ہے ، اگر DI - DI + سے زیادہ ہے تو ، یہ ایک خالی رجحان ہے۔

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

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

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

طاقت کا تجزیہ

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

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

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

خطرے کا تجزیہ

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

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

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

اصلاح کی سمت

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*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