डबल ईएमए गोल्डन क्रॉस लॉन्ग लाइन रणनीति एक ट्रेंड ट्रैकिंग रणनीति है जो केवल लंबी स्थिति खोलती है। रणनीति तीन चलती औसत, अल्पकालिक ईएमए, मध्यमकालिक ईएमए और दीर्घकालिक ईएमए का उपयोग करती है। विशिष्ट प्रवेश नियम हैः जब कीमत दीर्घकालिक ईएमए से ऊपर होती है और अल्पकालिक ईएमए मध्यमकालिक ईएमए से ऊपर जाता है तो स्वर्ण क्रॉस बनाते हैं।
लघु अवधि के ईएमए, मध्यम अवधि के ईएमए और दीर्घकालिक ईएमए की गणना तीन ईएमए अवधियों का उपयोग करके की जाती है जो विन्यास योग्य हैं।
यदि मूल्य दीर्घकालिक ईएमए से ऊपर है, तो यह साबित करता है कि यह वर्तमान में तेजी की प्रवृत्ति में है।
यदि अल्पकालिक ईएमए नीचे से मध्यम अवधि के ईएमए के ऊपर से गुजरता है और स्वर्ण क्रॉस बनाता है, तो यह आगे साबित करता है कि तेजी का रुझान मजबूत हो रहा है।
जब उपरोक्त दोनों शर्तें एक ही समय में पूरी हो जाती हैं, तो लंबे समय तक खोलें।
इस रणनीति का सबसे बड़ा लाभ यह है कि यह अल्पकालिक बाजार शोर से गुमराह होने से बचने के लिए बहु-अवधि ईएमए के संयुक्त निर्णय का उपयोग करके प्रभावी ढंग से रुझानों की पहचान कर सकती है। साथ ही, स्टॉप लॉस को एक निश्चित सीमा के भीतर नुकसान रखने के लिए जोखिम नियंत्रण के साधन के रूप में कॉन्फ़िगर किया गया है।
इस रणनीति का मुख्य जोखिम लंबी स्थिति है। जब बाजार उलट जाता है, तो यह समय पर पदों को बंद करने में असमर्थ होता है, जिससे घाटे का विस्तार होने का जोखिम होता है। इसके अलावा, गलत ईएमए अवधि सेट करने से लगातार व्यापार और लेनदेन लागत में वृद्धि हो सकती है।
एक निश्चित प्रतिशत तक पहुंचने पर पोजीशनों को कम करने के लिए पोजीशन साइजिंग मैनेजमेंट को बढ़ाएं।
नए उच्च स्तरों को तोड़ते समय स्टॉप लॉस सेटिंग्स बढ़ाएं।
व्यापारिक आवृत्ति को कम करने के लिए ईएमए के अवधि मापदंडों को अनुकूलित करें।
यह रणनीति समग्र रूप से एक स्थिर उच्च गुणवत्ता वाली दीर्घकालिक होल्डिंग रणनीति है। इसमें उचित जोखिम नियंत्रण के साथ रुझानों की पहचान करने की मजबूत क्षमता है। आगे के अनुकूलन के साथ, बेहतर स्थिर रिटर्न प्राप्त करने की उम्मीद है।
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Strategia EMA Long con Opzioni di Uscita Avanzate e Periodi EMA Personalizzabili", overlay=true) // Parametri di input generali useVolatilityFilter = input.bool(true, title="Usa Filtro di Volatilità") atrPeriods = input.int(14, title="Periodi ATR", minval=1) atrMultiplier = input.float(1.5, title="Moltiplicatore ATR", step=0.1) useTrailingStop = input.bool(true, title="Usa Trailing Stop") trailingStopPercent = input.float(15.0, title="Percentuale Trailing Stop", minval=0.1, step=0.1) / 100.0 useEMAExit = input.bool(true, title="Usa Uscita EMA Corta incrocia EMA Media al Ribasso") // Parametri di input per periodi EMA personalizzabili emaLongTermPeriod = input.int(200, title="Periodo EMA Lungo Termine", minval=1) emaShortTermPeriod = input.int(5, title="Periodo EMA Breve Termine", minval=1) emaMidTermPeriod = input.int(10, title="Periodo EMA Medio Termine", minval=1) // Calcolo delle EMA con periodi personalizzabili longTermEMA = ta.ema(close, emaLongTermPeriod) shortTermEMA = ta.ema(close, emaShortTermPeriod) midTermEMA = ta.ema(close, emaMidTermPeriod) // Calcolo ATR e soglia di volatilità atr = ta.atr(atrPeriods) atrThreshold = ta.sma(atr, atrPeriods) * atrMultiplier // Condizione di entrata enterLongCondition = close > longTermEMA and shortTermEMA > midTermEMA enterLong = useVolatilityFilter ? (enterLongCondition and atr > atrThreshold) : enterLongCondition if (enterLong) strategy.entry("Enter Long", strategy.long) // Tracking del prezzo di entrata e del massimo prezzo raggiunto per il trailing stop var float entryPrice = na var float maxPriceSinceEntry = na if (strategy.position_size > 0) maxPriceSinceEntry := math.max(na(maxPriceSinceEntry) ? high : maxPriceSinceEntry, high) entryPrice := na(entryPrice) ? strategy.position_avg_price : entryPrice else maxPriceSinceEntry := na entryPrice := na // Calcolo del valore del trailing stop trailStopPrice = maxPriceSinceEntry * (1 - trailingStopPercent) // Implementazione delle condizioni di uscita exitCrossUnder = close < longTermEMA emaCross = ta.crossunder(shortTermEMA, midTermEMA) if (useEMAExit and emaCross) strategy.close("Enter Long", comment="EMA Cross Exit") if (useTrailingStop) strategy.exit("Trailing Stop", from_entry="Enter Long", stop=trailStopPrice) // Visualizzazioni plot(longTermEMA, color=color.yellow, title="EMA Lungo Termine") plot(shortTermEMA, color=color.blue, title="EMA Breve Termine") plot(midTermEMA, color=color.green, title="EMA Medio Termine") plot(useVolatilityFilter ? atrThreshold : na, color=color.purple, title="ATR Threshold") plot(strategy.position_size > 0 ? trailStopPrice : na, color=color.orange, title="Trailing Stop Value", style=plot.style_linebr)