
यह रणनीति एटीआर सूचक और एडीएक्स सूचक के संयोजन के साथ एक प्रवृत्ति ट्रैकिंग रणनीति है। यह बेहतर प्रवृत्ति ट्रैकिंग के लिए एटीआर के गुणकों को गतिशील रूप से बाजार की प्रवृत्ति की स्थिति के अनुसार समायोजित करता है।
यह रणनीति मुख्य रूप से एटीआर और एडीएक्स पर आधारित है।
सबसे पहले, वास्तविक उतार-चढ़ाव की सीमा (ATR) और ADX की गणना की जाती है। एटीआर बाजार में उतार-चढ़ाव की डिग्री को दर्शाता है, जबकि ADX प्रवृत्ति की ताकत का आकलन करता है।
इसके बाद, ADX के बहुमुखी संकेतक DX के अंतर के आधार पर, वर्तमान प्रवृत्ति की बहुमुखी स्थिति का न्याय करें। यदि डीआई + डीआई - से अधिक है, तो यह एक बहुमुखी प्रवृत्ति है, और यदि डीआई - डीआई + से अधिक है, तो यह एक शून्य प्रवृत्ति है।
इसके बाद, जब एडीएक्स बढ़ता है, तो एटीआर के एक बड़े गुणांक का उपयोग करें (m1) और जब एडीएक्स गिरता है, तो एटीआर के एक छोटे गुणांक का उपयोग करें (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