
یہ حکمت عملی اے ٹی آر اشارے اور اے ڈی ایکس اشارے کے ساتھ مل کر ایک رجحان سے باخبر رہنے کی حکمت عملی ہے۔ یہ مارکیٹ کے رجحان کی حالت کے مطابق ، اے ٹی آر کے ضرب کو متحرک طور پر ایڈجسٹ کرے گا ، جس سے بہتر رجحان سے باخبر رہنا ممکن ہوگا۔
یہ حکمت عملی بنیادی طور پر اے ٹی آر اور اے ڈی ایکس اشارے پر مبنی ہے۔
سب سے پہلے ، حقیقی اتار چڑھاؤ کی حد (ATR) اور ADX کا حساب لگائیں۔ اے ٹی آر مارکیٹ میں اتار چڑھاؤ کی حد کی عکاسی کرتا ہے ، جبکہ ADX رجحان کی طاقت کا اندازہ لگاتا ہے۔
اس کے بعد ، ADX کے کثیر جہتی اشارے DX کے فرق کی بنیاد پر ، موجودہ رجحان کی کثیر جہتی حالت کا فیصلہ کریں۔ اگر DI + DI - سے زیادہ ہے تو ، کثیر جہتی رجحان ہے ، اگر DI - DI + سے زیادہ ہے تو ، یہ ایک خالی رجحان ہے۔
اس کے بعد ، جب ADX بڑھتا ہے تو ، ATR کا ایک بڑا ضرب استعمال کریں (m1) اور جب ADX گرتا ہے تو ، ATR کا ایک چھوٹا سا ضرب استعمال کریں (m2) ، تاکہ متحرک ایڈجسٹمنٹ حاصل کی جاسکے۔ یہ حکمت عملی کا مرکز ہے۔
آخر میں ، اے ٹی آر اور قیمت کی درمیانی قیمت کے ساتھ مل کر ، اوپر اور نیچے کا حساب لگائیں ، اور پھر رجحان کی سمت کا فیصلہ کریں۔ جب قیمت اوپر کی ٹریک کو توڑتی ہے تو زیادہ دیکھیں ، جب قیمت نیچے کی ٹریک کو توڑتی ہے تو کم دیکھیں۔
لہذا ، اس حکمت عملی میں اے ٹی آر اشارے اور اے ڈی ایکس اشارے کو ملا دیا گیا ہے تاکہ اے ٹی آر پیرامیٹرز کو متحرک طور پر ایڈجسٹ کیا جاسکے تاکہ رجحانات کو بہتر طور پر پکڑنے اور تجارت کی جاسکے۔
اس حکمت عملی کے کچھ واضح فوائد ہیں:
لہذا ، یہ ایک بہت ہی عملی رجحانات کی نگرانی کی حکمت عملی ہے ، جس میں بہت اچھا پیچھے ہٹنے کا اختیار ہے ، اور اس کی سفارش کی جاتی ہے۔
اس حکمت عملی کے کچھ خطرات بھی ہیں:
لہذا ، پیرامیٹرز کی اصلاح اور خطرے پر قابو پانے پر توجہ دی جانی چاہئے۔ اس کے علاوہ ، بلیک سوان واقعات سے حکمت عملی پر بھی زیادہ اثر پڑتا ہے۔
اس حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:
لہذا ، اس حکمت عملی میں ابھی بھی بہت زیادہ اصلاح کی گنجائش موجود ہے ، اور اس مسئلے کے مطابق پیرامیٹرز اور میکانزم کو ایڈجسٹ کرنا ضروری ہے۔
اے ٹی آر - اے ڈی ایکس ٹرینڈ اسٹریٹجی جو خود کو ایڈجسٹ کرتی ہے 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