यह रणनीति ट्रेडिंग निर्णयों के आधार के रूप में एमए और एडीएक्स संकेतकों के क्रॉसओवर का उपयोग करती है। जब एडीएक्स सीमा से ऊपर होता है और डीआईडीफ (डीआई + - डीआई-) 0 से अधिक होता है, तो यह लंबा होता है। जब एडीएक्स सीमा से ऊपर होता है और डीआईडीफ 0 से कम होता है, तो यह पदों से बाहर निकलता है।
इसके अतिरिक्त, यह रणनीति पैरामीटर गणनाओं पर आधारित पूरी तरह से मात्रात्मक रणनीति है, जिसमें अच्छे बैकटेस्टिंग परिणाम और स्थिर लाइव प्रदर्शन हैं, जो इसे एल्गोरिथम ट्रेडिंग के लिए उपयुक्त बनाता है।
यह रणनीति महत्वपूर्ण बाजार उतार-चढ़ाव के दौरान ट्रेडिंग जोखिम के लिए प्रवण है। जब कीमतें हिंसक रूप से चलती हैं और संकेतक प्रतिक्रिया नहीं करते हैं, तो यह खाते में नुकसान ला सकती है। इसके अलावा, अनुचित पैरामीटर सेटिंग्स रणनीति के प्रदर्शन को भी प्रभावित कर सकती हैं।
स्टॉप लॉस के द्वारा नुकसान को नियंत्रित किया जा सकता है। एक ही समय में पैरामीटर को अनुकूलित किया जा सकता है और झूठे संकेतों को कम करने के लिए फ़िल्टरिंग के लिए अन्य संकेतकों के साथ संयुक्त किया जा सकता है।
इस रणनीति के निम्नलिखित पहलुओं को अनुकूलित किया जा सकता हैः
सिग्नल की गुणवत्ता में सुधार के लिए फिल्टरिंग के लिए अन्य संकेतकों जैसे बोलिंगर बैंड, आरएसआई आदि के साथ संयोजन करें
इष्टतम पैरामीटर संयोजन खोजने के लिए चलती औसत और ADX की लंबाई मापदंडों का अनुकूलन
एकल हानि को नियंत्रित करने के लिए स्टॉप लॉस तंत्र जोड़ें
इष्टतम रखरखाव चक्र खोजने के लिए विभिन्न रखरखाव अवधि का परीक्षण करें
मोमेंटम एवरेज डायरेक्शनल मूवमेंट इंडेक्स मूविंग एवरेज क्रॉसओवर रणनीति प्रभावी रूप से मूल्य गति और प्रवृत्ति शक्ति की गणना करके बाजार की प्रवृत्ति दिशाओं की पहचान कर सकती है। यह एक विश्वसनीय प्रवृत्ति ट्रैकिंग रणनीति है। इस रणनीति में उच्च एल्गोरिथम डिग्री, स्थिर बैकटेस्टिंग और अच्छा लाइव प्रदर्शन है। आगे अनुकूलन से बेहतर रणनीति दक्षता हो सकती है।
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © Julien_Eche //@version=5 strategy("MA ADX Strategy", overlay=true, default_qty_type=strategy.percent_of_equity) start_date = input(timestamp("1975-01-01T00:00:00"), title="Start Date") end_date = input(timestamp("2099-01-01T00:00:00"), title="End Date") // Indicator Inputs group1 = "MA Parameters" lengthMA = input.int(50, title="MA Length", minval=1, group=group1) sourceMA = input(close, title="MA Source", group=group1) group2 = "ADX Parameters" diLength = input.int(14, title="DI Length", minval=1, group=group2) adxSmoothing = input.int(14, title="ADX Smoothing", minval=1, maxval=50, group=group2) adxMAActive = input.int(15, title="ADX MA Active", minval=1, group=group2) // Directional Movement calculations upwardMovement = ta.change(high) downwardMovement = -ta.change(low) trueRangeSmoothed = ta.rma(ta.atr(diLength), diLength) positiveDM = fixnan(100 * ta.rma(upwardMovement > downwardMovement and upwardMovement > 0 ? upwardMovement : 0, diLength) / trueRangeSmoothed) negativeDM = fixnan(100 * ta.rma(downwardMovement > upwardMovement and downwardMovement > 0 ? downwardMovement : 0, diLength) / trueRangeSmoothed) dmSum = positiveDM + negativeDM // Average Directional Index (ADX) calculation averageDX = 100 * ta.rma(math.abs(positiveDM - negativeDM) / math.max(dmSum, 1), adxSmoothing) // Line color determination lineColor = averageDX > adxMAActive and positiveDM > negativeDM ? color.teal : averageDX > adxMAActive and positiveDM < negativeDM ? color.red : color.gray // Moving Average (MA) calculation maResult = ta.wma(sourceMA, lengthMA) // Plotting the Moving Average with color plot(maResult, color=lineColor, title="MA", linewidth=3) // Strategy logic if (averageDX > adxMAActive and positiveDM > negativeDM) strategy.entry("Buy", strategy.long) if (averageDX > adxMAActive and positiveDM < negativeDM) strategy.close("Buy")