गतिशील प्रवृत्ति ट्रैकिंग और अस्थिरता फ़िल्टरिंग रणनीति: ADX और CI की दोहरी पुष्टि के आधार पर मूविंग एवरेज क्रॉसओवर सिस्टम

ADX CI SMA DM TR ATR DI
निर्माण तिथि: 2025-02-21 09:33:38 अंत में संशोधित करें: 2025-02-21 09:33:38
कॉपी: 0 क्लिक्स: 406
2
ध्यान केंद्रित करना
319
समर्थक

गतिशील प्रवृत्ति ट्रैकिंग और अस्थिरता फ़िल्टरिंग रणनीति: ADX और CI की दोहरी पुष्टि के आधार पर मूविंग एवरेज क्रॉसओवर सिस्टम गतिशील प्रवृत्ति ट्रैकिंग और अस्थिरता फ़िल्टरिंग रणनीति: ADX और CI की दोहरी पुष्टि के आधार पर मूविंग एवरेज क्रॉसओवर सिस्टम

अवलोकन

यह रणनीति एक ट्रेडिंग प्रणाली है जिसमें इक्विटी लाइन क्रॉस सिग्नल और मार्केट स्टेटस फ़िल्टरिंग शामिल है। यह 9 चक्र और 21 चक्र सरल चलती औसत (एसएमए) के क्रॉसिंग के माध्यम से बाजार की प्रवृत्ति को पकड़ता है, जबकि औसत दिशा सूचकांक (एडीएक्स) और अराजकता सूचकांक (चोपनेस इंडेक्स, सीआई) का उपयोग करके बाजार के वातावरण को फ़िल्टर करता है, यह सुनिश्चित करता है कि केवल ट्रेंड स्पष्ट और अच्छी तरह से अस्थिर बाजारों में व्यापार किया जाए। यह विधि पारंपरिक प्रवृत्ति ट्रैकिंग रणनीतियों को आधुनिक तकनीकी संकेतकों के साथ प्रभावी रूप से जोड़ती है, जो एक अधिक मजबूत ट्रेडिंग फ्रेमवर्क प्रदान करती है।

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

इस रणनीति के मूल में तीन प्रमुख तत्व शामिल हैंः

  1. रुझान सिग्नल जनरेशनः 9 चक्र और 21 चक्र SMA के क्रॉसिंग का उपयोग करके ट्रेंड की दिशा निर्धारित करने के लिए, एक आधारभूत ट्रेडिंग सिग्नल बनाने के लिए।
  2. प्रवृत्ति की ताकत की पुष्टि करेंः प्रवृत्ति की ताकत को सत्यापित करने के लिए ADX सूचक का उपयोग करें ((20 पर थ्रेशोल्ड सेट करें), यह सुनिश्चित करने के लिए कि केवल स्पष्ट रूप से ट्रेंडिंग बाजार के वातावरण में व्यापार किया जाए।
  3. बाजार में उतार-चढ़ाव फ़िल्टरिंगः बाजार में उतार-चढ़ाव की पहचान करने के लिए अराजकता सूचकांक (थ्रेड 50 पर सेट) की शुरुआत करें, और अत्यधिक अस्थिर बाजार में व्यापार से बचें।

रणनीति में अनुकूलित तकनीकी संकेतकों की गणना के तरीके शामिल हैं, जिसमें एक अनुकूलित योग फंक्शन, अधिकतम और न्यूनतम गणना, और मानकीकृत वास्तविक तरंग दैर्ध्य ((TR) गणना शामिल है, जिससे संकेत की सटीकता और गणना दक्षता सुनिश्चित होती है।

रणनीतिक लाभ

  1. एकाधिक सत्यापन तंत्रः ट्रेडिंग सिग्नल की विश्वसनीयता में काफी वृद्धि हुई है, जिसमें सम-रेखा पार करना, एडीएक्स और सीआई ट्रिपल फ़िल्टरिंग शामिल हैं।
  2. अनुकूलनशीलताः रणनीति पैरामीटर को विभिन्न बाजार स्थितियों के अनुसार समायोजित किया जा सकता है, जिसमें अच्छी अनुकूलनशीलता होती है।
  3. जोखिम नियंत्रण में सुधारः उच्च उतार-चढ़ाव के दौरान सीआई सूचकांक फ़िल्टर के माध्यम से, झूठे ब्रेकडाउन के जोखिम को प्रभावी ढंग से कम किया गया।
  4. उच्च गणना दक्षताः अनुकूलित गणना विधियों का उपयोग करना, विशेष रूप से ऐतिहासिक डेटा के साथ काम करने में उत्कृष्ट प्रदर्शन करना।

रणनीतिक जोखिम

  1. पैरामीटर संवेदनशीलताः रणनीति की प्रभावशीलता ADX और CI की थ्रेशोल्ड सेटिंग्स पर अत्यधिक निर्भर करती है, विभिन्न बाजार स्थितियों के लिए विभिन्न पैरामीटर कॉन्फ़िगरेशन की आवश्यकता हो सकती है।
  2. विलंबता: एक से अधिक चलती औसत का उपयोग करने के कारण सिग्नल विलंबता की समस्या हो सकती है।
  3. अस्थिर बाजार प्रदर्शनः अस्थिर बाज़ार में, कुछ शॉर्ट-लाइन ट्रेडिंग अवसरों को याद किया जा सकता है।
  4. गणना की जटिलताः एकाधिक सूचकांकों की गणना रणनीति की जटिलता को बढ़ाती है, जो वास्तविक समय के लेनदेन के निष्पादन की दक्षता को प्रभावित कर सकती है।

रणनीति अनुकूलन दिशा

  1. गतिशील पैरामीटर समायोजनः बाजार की गतिशील स्थिति के अनुसार ADX और CI के थ्रेशोल्ड को समायोजित करने के लिए एक अनुकूलन पैरामीटर समायोजन तंत्र की शुरुआत की गई।
  2. स्टॉप लॉस ऑप्टिमाइज़ेशनः डायनामिक स्टॉप लॉस मैकेनिज्म जोड़ा गया है, जो एटीआर या वॉलैलिटी बैंड के आधार पर अधिक लचीली स्टॉप लॉस रणनीति डिजाइन कर सकता है।
  3. सिग्नल पुष्टिकरण में सुधारः सिग्नल की विश्वसनीयता को और बढ़ाने के लिए एक परिमाण पुष्टिकरण तंत्र को जोड़ने पर विचार किया जा सकता है।
  4. कम्प्यूटेशनल दक्षता में सुधारः विशेष रूप से लंबी अवधि के डेटा को संसाधित करते समय प्रदर्शन प्रदर्शन को अनुकूलित करने के लिए सूचकांक गणना विधि।

संक्षेप

इस रणनीति में एक पूर्ण व्यापार प्रणाली का निर्माण किया गया है, जिसमें क्लासिक समरेखा क्रॉसिंग रणनीति को आधुनिक तकनीकी संकेतकों के साथ जोड़ा गया है। यह न केवल रुझानों को पकड़ने पर ध्यान केंद्रित करता है, बल्कि बाजार की स्थिति के लिए उपयुक्तता पर भी विशेष ध्यान देता है, जो कई फ़िल्टरिंग तंत्रों के माध्यम से व्यापार की स्थिरता को बढ़ाता है। हालांकि कुछ पैरामीटर संवेदनशीलता और पिछड़ेपन की समस्याएं हैं, लेकिन प्रस्तावित अनुकूलन दिशा के माध्यम से रणनीति में अभी भी बहुत सुधार की जगह है। कुल मिलाकर, यह एक तर्कसंगत, व्यावहारिक और मजबूत व्यापार रणनीति है।

रणनीति स्रोत कोड
/*backtest
start: 2024-02-22 00:00:00
end: 2024-12-06 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("MA9/MA21 Cross with ADX & CHOP Filter", overlay=true, initial_capital=10000, currency=currency.USD)

// ─── CUSTOM FUNCTIONS ──────────────────────────────────────────────────────
// Custom function to compute the sum over the last 'len' bars.
f_sum(src, len) =>
    s = 0.0
    for i = 0 to len - 1
        s += src[i]
    s

// Custom function to compute the highest value over the last 'len' bars.
f_highest(src, len) =>
    h = src[0]
    for i = 1 to len - 1
        h := math.max(h, src[i])
    h

// Custom function to compute the lowest value over the last 'len' bars.
f_lowest(src, len) =>
    l = src[0]
    for i = 1 to len - 1
        l := math.min(l, src[i])
    l

// ─── INPUTS ──────────────────────────────────────────────────────────────
ma9Period   = input.int(9, title="MA 9 Period", minval=1)
ma21Period  = input.int(21, title="MA 21 Period", minval=1)
adxLength   = input.int(7, title="ADX Smoothing / DI Length", minval=1)
adxThresh   = input.float(20.0, title="ADX Threshold", step=0.1)
chopLen     = input.int(7, title="CHOP Length", minval=1)
chopOff     = input.int(0, title="CHOP Offset", minval=0)  // Not applied in calculation
chopThresh  = input.float(50.0, title="CHOP Maximum (do not trade if above)", step=0.1)

// ─── CALCULATE INDICATORS ────────────────────────────────────────────────────
// Moving Averages
ma9  = ta.sma(close, ma9Period)
ma21 = ta.sma(close, ma21Period)

// --- True Range Calculation ---
// Manual implementation of true range (tr)
tr = math.max(math.max(high - low, math.abs(high - nz(close[1]))), math.abs(low - nz(close[1])))

// --- ADX Calculation (Manual Implementation) ---
// Calculate directional movements
upMove   = high - nz(high[1])
downMove = nz(low[1]) - low
plusDM   = (upMove > downMove and upMove > 0) ? upMove : 0.0
minusDM  = (downMove > upMove and downMove > 0) ? downMove : 0.0

// Smooth the values using the built-in rma function
atr      = ta.rma(tr, adxLength)
plusDI   = 100 * ta.rma(plusDM, adxLength) / atr
minusDI  = 100 * ta.rma(minusDM, adxLength) / atr
dx       = 100 * math.abs(plusDI - minusDI) / (plusDI + minusDI)
adxValue = ta.rma(dx, adxLength)

// --- Choppiness Index Calculation ---
// Compute the sum of true range over chopLen periods
atrSum      = f_sum(tr, chopLen)
// Compute highest high and lowest low over chopLen periods using custom functions
highestHigh = f_highest(high, chopLen)
lowestLow   = f_lowest(low, chopLen)
priceRange  = highestHigh - lowestLow
chop        = priceRange != 0 ? 100 * math.log(atrSum / priceRange) / math.log(chopLen) : 0

// ─── STRATEGY CONDITIONS ─────────────────────────────────────────────────────
// MA Crossover Signals
longCond  = ta.crossover(ma9, ma21)
shortCond = ta.crossunder(ma9, ma21)

// Filter: Only trade if ADX > threshold and CHOP ≤ threshold.
filterCond = (adxValue > adxThresh) and (chop <= chopThresh)

// Entries and Exits
if longCond and filterCond
    strategy.entry("Long", strategy.long)
if shortCond and filterCond
    strategy.entry("Short", strategy.short)
if shortCond
    strategy.close("Long")
if longCond
    strategy.close("Short")

// ─── PLOTTING ──────────────────────────────────────────────────────────────
plot(ma9, color=color.red, title="MA 9")
plot(ma21, color=color.blue, title="MA 21")
plot(adxValue, title="ADX", color=color.purple)
hline(adxThresh, title="ADX Threshold", color=color.purple, linestyle=hline.style_dotted)
plot(chop, title="CHOP", color=color.orange)
hline(chopThresh, title="CHOP Threshold", color=color.orange, linestyle=hline.style_dotted)