यह रणनीति गतिशील जोखिम प्रबंधन के लिए औसत सच्ची सीमा (एटीआर) के साथ संयुक्त घातीय चलती औसत (ईएमए) क्रॉसओवर पर आधारित एक ट्रेडिंग प्रणाली है। यह रणनीति मूल्य रुझानों में गति परिवर्तन को पकड़ने के लिए अल्पकालिक और दीर्घकालिक ईएमए लाइनों का उपयोग करती है, जबकि एटीआर का उपयोग गतिशील रूप से लाभ लेने और स्टॉप-लॉस स्तरों को निर्धारित करने के लिए किया जाता है, जिससे ट्रेडिंग जोखिमों पर सटीक नियंत्रण प्राप्त होता है।
रणनीति का मूल तर्क विभिन्न अवधियों के दो ईएमए के बीच क्रॉसओवर संकेतों पर आधारित है (9 और 21). एक खरीद संकेत तब उत्पन्न होता है जब अल्पकालिक ईएमए दीर्घकालिक ईएमए के ऊपर पार करता है, जबकि एक बिक्री संकेत तब उत्पन्न होता है जब अल्पकालिक ईएमए दीर्घकालिक ईएमए के नीचे पार करता है। जोखिम का बेहतर प्रबंधन करने के लिए, रणनीति में 14-अवधि एटीआर के आधार पर एक गतिशील लाभ लेने और स्टॉप-लॉस तंत्र शामिल है, जिसमें लाभ लेने के स्तर 2x एटीआर और स्टॉप-लॉस स्तर 1x एटीआर पर निर्धारित होते हैं, समय पर जोखिम नियंत्रण बनाए रखते हुए पर्याप्त संभावित लाभ सुनिश्चित करते हैं।
यह रणनीति क्लासिक ईएमए क्रॉसओवर सिस्टम को गतिशील एटीआर जोखिम प्रबंधन के साथ जोड़कर एक व्यापक ट्रेडिंग सिस्टम बनाती है। इसकी मुख्य ताकत गतिशील जोखिम प्रबंधन क्षमताओं और प्रभावी प्रवृत्ति-अनुसरण विशेषताओं में निहित है। सुझाए गए अनुकूलन दिशाओं के माध्यम से, आगे सुधार के लिए जगह है। लाइव ट्रेडिंग कार्यान्वयन के लिए, विशिष्ट बाजार विशेषताओं के आधार पर उचित समायोजन के साथ गहन बैकटेस्टिंग और पैरामीटर अनुकूलन करने की सिफारिश की जाती है।
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Improved EMA Crossover Strategy", overlay=true) // User-defined inputs for EMAs shortTermLength = input(9, title="Short-Term EMA Length") longTermLength = input(21, title="Long-Term EMA Length") // Dynamic Take Profit and Stop Loss atrLength = input(14, title="ATR Length") atrMultiplierTP = input(2.0, title="ATR Multiplier for Take Profit") atrMultiplierSL = input(1.0, title="ATR Multiplier for Stop Loss") // Calculate EMAs and ATR shortTermEMA = ta.ema(close, shortTermLength) longTermEMA = ta.ema(close, longTermLength) atr = ta.atr(atrLength) // Plot the EMAs plot(shortTermEMA, color=color.blue, title="Short-Term EMA") plot(longTermEMA, color=color.red, title="Long-Term EMA") // Generate Entry Conditions longCondition = ta.crossover(shortTermEMA, longTermEMA) shortCondition = ta.crossunder(shortTermEMA, longTermEMA) // Optional Debugging: Print conditions (you can remove this later) var label longLabel = na var label shortLabel = na if longCondition longLabel := label.new(bar_index, high, "Buy Signal", color=color.green, style=label.style_label_down, textcolor=color.white) if shortCondition shortLabel := label.new(bar_index, low, "Sell Signal", color=color.red, style=label.style_label_up, textcolor=color.white) if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Long Exit", "Long", limit=close + atr * atrMultiplierTP, stop=close - atr * atrMultiplierSL) if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Short Exit", "Short", limit=close - atr * atrMultiplierTP, stop=close + atr * atrMultiplierSL)