यह रणनीति दो चलती औसत (ईएमए) के क्रॉसओवर के आधार पर ट्रेडिंग सिग्नल उत्पन्न करती है। जब अल्पकालिक ईएमए (20-दिवसीय) दीर्घकालिक ईएमए (50-दिवसीय) के ऊपर पार करता है, तो एक खरीद संकेत ट्रिगर किया जाता है; जब अल्पकालिक ईएमए दीर्घकालिक ईएमए के नीचे पार करता है, तो एक बिक्री संकेत ट्रिगर किया जाता है। इसके अलावा, रणनीति लंबी अवधि की प्रवृत्ति के लिए एक संदर्भ के रूप में 200-दिवसीय ईएमए को प्लॉट करती है। इस रणनीति के पीछे मुख्य विचार विभिन्न अवधियों के साथ चलती औसत के क्रॉसओवर का उपयोग करके बाजार के रुझानों में बदलाव को पकड़ना है।
ईएमए डबल मूविंग एवरेज क्रॉसओवर रणनीति ट्रेंडिंग बाजारों के लिए उपयुक्त एक सरल और सीधी ट्रेडिंग रणनीति है। यह दीर्घकालिक ट्रेंड संदर्भ को शामिल करते हुए बाजार के रुझानों में बदलाव को पकड़ने के लिए अल्पकालिक और दीर्घकालिक मूविंग एवरेज के क्रॉसओवर का उपयोग करता है। हालांकि रणनीति में कुछ सीमाएं हैं, जैसे कि अस्थिर बाजारों में उप-अनुकूल प्रदर्शन और मूविंग एवरेज की देरी, इसे अतिरिक्त संकेतकों को शामिल करके, मापदंडों को अनुकूलित करके, जोखिम प्रबंधन उपायों को लागू करके और रुझानों की पुष्टि करके और बढ़ाया जा सकता है। ये अनुकूलन रणनीति की मजबूती और लाभप्रदता में सुधार कर सकते हैं।
/*backtest start: 2023-03-23 00:00:00 end: 2024-03-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy by Peter Gangmei", overlay=true) // Define the length for moving averages short_ma_length = input.int(20, "Short MA Length") long_ma_length = input.int(50, "Long MA Length") long_ma_200_length = input.int(200, "Long MA 200 Length") // Define start time for testing start_time = timestamp(2024, 01, 01, 00, 00) // Calculate current date and time current_time = timenow // Calculate moving averages ema20 = ta.ema(close, short_ma_length) ema50 = ta.ema(close, long_ma_length) ema200 = ta.ema(close, long_ma_200_length) // Crossing conditions crossed_above = ta.crossover(ema20, ema50) crossed_below = ta.crossunder(ema20, ema50) // Entry and exit conditions within the specified time frame if true if (crossed_above) strategy.entry("Buy", strategy.long) alert("Buy Condition", alert.freq_once_per_bar_close) if (crossed_below) strategy.entry("Sell", strategy.short) alert("Sell Condition", alert.freq_once_per_bar_close) // Plotting moving averages for visualization plot(ema20, color=color.green, title="EMA20") plot(ema50, color=color.red, title="EMA50") plot(ema200, color=color.blue, title="EMA200") // Placing buy and sell markers plotshape(series=crossed_above, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=crossed_below, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")