यह रणनीति ट्रेडिंग सिग्नल उत्पन्न करने के लिए ईएमए गोल्डन क्रॉस का उपयोग करती है, अर्थात, जब तेजी से ईएमए लाइन धीमी ईएमए लाइन के ऊपर पार करती है तो एक खरीद संकेत उत्पन्न होता है, और जब तेजी से ईएमए लाइन धीमी ईएमए लाइन के नीचे पार करती है तो एक बिक्री संकेत उत्पन्न होता है। यह एक विशिष्ट प्रवृत्ति निम्नलिखित रणनीति से संबंधित है। साथ ही, रणनीति लाभ सुनिश्चित करते हुए जोखिमों को नियंत्रित करने के लिए गतिशील स्टॉप लॉस सेट करने के लिए एटीआर संकेतक का उपयोग करती है।
समाधान:
यह रणनीति अपेक्षाकृत सरल और उपयोग करने में आसान है। यह ईएमए क्रॉसओवर के आधार पर संकेत उत्पन्न करता है, प्रवृत्ति का पालन करता है, और जोखिमों को प्रभावी ढंग से नियंत्रित करने के लिए एटीआर ट्रेलिंग स्टॉप लॉस का उपयोग करता है। हालांकि कुछ झूठे संकेत हो सकते हैं, लेकिन इसमें मुख्य रुझानों को पकड़ने में मजबूत क्षमताएं हैं और रिटर्न अपेक्षाकृत स्थिर हैं। यह एक बुनियादी मात्रात्मक ट्रेडिंग रणनीति के रूप में उपयुक्त है। पैरामीटर अनुकूलन और फ़ंक्शन एक्सटेंशन के माध्यम से सुधार के लिए भी बहुत संभावना है।
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © byee322 /// This strategy uses the EMA to generate buy and sell signals with a 1.5x ATR stop loss //@version=5 strategy("EMA Strategy with ATR Stop Loss", overlay=true) // Define the EMA lengths as input parameters emaLength1 = input(13, "EMA Length 1") emaLength2 = input(48, "EMA Length 2") // Define the moving averages ema1 = ta.ema(close, emaLength1) ema2 = ta.ema(close, emaLength2) // Buy signal: EMA 1 crosses above EMA 2 buy = ta.crossover(ema1, ema2) // Sell signal: EMA 1 crosses below EMA 2 sell = ta.crossunder(ema1, ema2) // Define the state variable state = 0 state := buy ? 1 : sell ? -1 : nz(state[1]) // Change the color of the candles color = state == 1 ? color.green : state == -1 ? color.red : na // Plot the colored candles plotcandle(open, high, low, close, color=color) // Plot the signals on the chart with text labels plotshape(buy, style=shape.triangleup, color=color.new(color.green, 50), location=location.belowbar, text="Buy") plotshape(sell, style=shape.triangledown, color=color.new(color.red, 50), location=location.abovebar, text="Sell") // Calculate the ATR atrVal = ta.atr(14) // Calculate the stop loss level for buy stopLossBuy = buy ? close[1] - 1.5 * atrVal : na // Calculate the stop loss level for sell stopLossSell = sell ? close[1] + 1.5 * atrVal : na // Plot the stop loss level for buy plot(stopLossBuy, color=color.new(color.green, 50), linewidth=3) // Plot the stop loss level for sell plot(stopLossSell, color=color.new(color.red, 50), linewidth=3) if buy strategy.entry("Enter Long", strategy.long) else if sell strategy.entry("Enter Short", strategy.short)