यह एक मात्रात्मक ट्रेडिंग रणनीति है जो एक्सपोनेंशियल मूविंग एवरेज (ईएमए) क्रॉसओवर को एक औसत ट्रू रेंज (एटीआर) फिल्टर के साथ जोड़ती है। रणनीति का उद्देश्य मजबूत रुझानों की पहचान करना और उच्च अस्थिरता वाले बाजार की स्थिति में ट्रेडों को निष्पादित करना है, जिससे शार्प अनुपात और समग्र प्रदर्शन में प्रभावी ढंग से सुधार होता है। यह मध्यम से दीर्घकालिक रुझानों को पकड़ने के लिए 50-अवधि और 200-अवधि के ईएमए का उपयोग करता है, जबकि बाजार की अस्थिरता का आकलन करने के लिए एटीआर संकेतक का उपयोग करता है, केवल तभी व्यापार करता है जब अस्थिरता एक विशिष्ट सीमा से अधिक हो।
मूल तर्क में दो मुख्य घटक होते हैंः प्रवृत्ति निर्धारण और अस्थिरता फ़िल्टरिंग। प्रवृत्ति निर्धारण के लिए, रणनीति 50 अवधि के ईएमए को फास्ट लाइन के रूप में और 200 अवधि के ईएमए को धीमी रेखा के रूप में उपयोग करती है, जब तेजी से रेखा धीमी रेखा के ऊपर पार करती है तो लंबे संकेत उत्पन्न करती है और जब यह नीचे पार करती है तो छोटे संकेत उत्पन्न करती है। अस्थिरता फ़िल्टरिंग के लिए, रणनीति 14 अवधि के एटीआर मूल्य की गणना करती है और इसे मूल्य के प्रतिशत में परिवर्तित करती है, केवल तब ही पदों की अनुमति देती है जब एटीआर प्रतिशत एक पूर्व निर्धारित सीमा (डिफ़ॉल्ट 2%) से अधिक हो। यह डिज़ाइन यह सुनिश्चित करता है कि रणनीति केवल पर्याप्त अस्थिरता वाले बाजारों में व्यापार करती है, प्रभावी रूप से बाजारों में झूठे संकेतों को कम करती है।
यह रणनीति क्लासिक तकनीकी संकेतकों को आधुनिक जोखिम प्रबंधन अवधारणाओं के साथ जोड़ती है। व्यापार समय को नियंत्रित करने के लिए एटीआर फिल्टर का उपयोग करते हुए ईएमए क्रॉसओवर का उपयोग करके रुझानों को पकड़ने के लिए, रणनीति मजबूत व्यावहारिकता प्राप्त करते हुए सादगी बनाए रखती है। जबकि कुछ अंतर्निहित जोखिम मौजूद हैं, रणनीति अभी भी उचित अनुकूलन और जोखिम प्रबंधन उपायों के माध्यम से अच्छा अनुप्रयोग मूल्य रखती है। व्यापारियों को विशिष्ट बाजार विशेषताओं और व्यावहारिक अनुप्रयोगों में अपनी खुद की जोखिम वरीयताओं के अनुसार मापदंडों को समायोजित करने की सलाह दी जाती है।
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover with ATR Filter", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // Inputs for Moving Averages fastLength = input.int(50, title="Fast EMA Length") slowLength = input.int(200, title="Slow EMA Length") // Inputs for ATR Filter atrLength = input.int(14, title="ATR Length") atrMultiplier = input.float(1.5, title="ATR Multiplier") atrThreshold = input.float(0.02, title="ATR Threshold (%)") // Calculate EMAs fastEMA = ta.ema(close, fastLength) slowEMA = ta.ema(close, slowLength) // Calculate ATR atr = ta.atr(atrLength) // Convert ATR to a percentage of price atrPct = atr / close // Define Long Condition (Cross and ATR filter) longCondition = ta.crossover(fastEMA, slowEMA) and atrPct > atrThreshold / 100 // Define Short Condition shortCondition = ta.crossunder(fastEMA, slowEMA) and atrPct > atrThreshold / 100 // Define Exit Conditions exitConditionLong = ta.crossunder(fastEMA, slowEMA) exitConditionShort = ta.crossover(fastEMA, slowEMA) // Long Entry if (longCondition) strategy.entry("Long", strategy.long) // Short Entry if (shortCondition) strategy.entry("Short", strategy.short) // Long Exit if (exitConditionLong) strategy.close("Long") // Short Exit if (exitConditionShort) strategy.close("Short") // Plot EMAs for visual reference plot(fastEMA, title="50 EMA", color=color.blue) plot(slowEMA, title="200 EMA", color=color.red) // Plot ATR for reference plot(atrPct, title="ATR Percentage", color=color.orange, style=plot.style_line) hline(atrThreshold / 100, "ATR Threshold", color=color.green)