अनुकूली एटीआर-एडीएक्स ट्रेंड रणनीति V2


निर्माण तिथि: 2023-12-05 18:08:14 अंत में संशोधित करें: 2023-12-05 18:08:14
कॉपी: 0 क्लिक्स: 1058
1
ध्यान केंद्रित करना
1621
समर्थक

अनुकूली एटीआर-एडीएक्स ट्रेंड रणनीति V2

अवलोकन

यह रणनीति एटीआर सूचक और एडीएक्स सूचक के संयोजन के साथ एक प्रवृत्ति ट्रैकिंग रणनीति है। यह बेहतर प्रवृत्ति ट्रैकिंग के लिए एटीआर के गुणकों को गतिशील रूप से बाजार की प्रवृत्ति की स्थिति के अनुसार समायोजित करता है।

रणनीति सिद्धांत

यह रणनीति मुख्य रूप से एटीआर और एडीएक्स पर आधारित है।

सबसे पहले, वास्तविक उतार-चढ़ाव की सीमा (ATR) और ADX की गणना की जाती है। एटीआर बाजार में उतार-चढ़ाव की डिग्री को दर्शाता है, जबकि ADX प्रवृत्ति की ताकत का आकलन करता है।

इसके बाद, ADX के बहुमुखी संकेतक DX के अंतर के आधार पर, वर्तमान प्रवृत्ति की बहुमुखी स्थिति का न्याय करें। यदि डीआई + डीआई - से अधिक है, तो यह एक बहुमुखी प्रवृत्ति है, और यदि डीआई - डीआई + से अधिक है, तो यह एक शून्य प्रवृत्ति है।

इसके बाद, जब एडीएक्स बढ़ता है, तो एटीआर के एक बड़े गुणांक का उपयोग करें (m1) और जब एडीएक्स गिरता है, तो एटीआर के एक छोटे गुणांक का उपयोग करें (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