
ट्रेंड ट्रैकिंग ईएमए रणनीति ईएमए सूचक के आधार पर एक प्रवृत्ति ट्रैकिंग रणनीति है। यह रणनीति ईएमए लाइन की गणना करके निर्धारित अवधि के लिए मूल्य प्रवृत्ति की दिशा का आकलन करती है, और प्रवृत्ति ट्रैकिंग को लागू करती है। जब कीमत ईएमए लाइन को पार करती है, तो इसे खाली कर देती है, और जब कीमत ईएमए लाइन को पार करती है, तो यह एक विशिष्ट प्रवृत्ति ट्रैकिंग रणनीति है।
यह रणनीति ईएमए सूचकांक के आधार पर कीमतों के रुझान को निर्धारित करने के लिए है। ईएमए सूचकांक कीमतों का एक सूचकांक स्लैश मूविंग एवरेज है, जो हाल की कीमतों को अधिक वजन देता है और कीमतों में बदलाव के लिए अधिक तेजी से प्रतिक्रिया करता है। रणनीति ईएमए चक्र के भीतर औसत कीमतों की गणना करके स्लैश की गई वक्र उत्पन्न करती है। जब कीमतें नीचे से ईएमए लाइन को पार करती हैं, तो कीमतें बढ़ना शुरू हो जाती हैं, जो एक bullish संकेत है; जब कीमतें ऊपर से ईएमए लाइन को पार करती हैं, तो कीमतें गिरना शुरू हो जाती हैं, जो एक bearish संकेत है।
इस सिद्धांत के अनुसार, यह रणनीति ईएमए लाइन को ट्रैक करके मूल्य रुझान के परिवर्तनों को ट्रैक करने के लिए ईएमए लाइन को पार करने पर कम और ईएमए लाइन को पार करने पर अधिक करती है। विशेष रूप से, यह कोड में एक 8 चक्र ईएमए लाइन की गणना करता है, ईएमए लाइन को पार करने पर एक स्थिति खोलने के लिए और ईएमए लाइन को पार करने पर एक स्थिति खोलने के लिए। और जोखिम को नियंत्रित करने के लिए स्टॉपलॉस सेट करें।
ट्यूनिंग पॉइंट को याद करने का जोखिम हो सकता है। जब कीमत तेजी से उलट जाती है, तो ईएमए लाइन को समायोजन करने के लिए कुछ समय की आवश्यकता होती है, और सबसे अच्छा प्रवेश समय को याद किया जा सकता है। ट्यूनिंग पॉइंट को समझने के लिए अन्य संकेतकों के साथ मिलकर समाधान किया जाता है।
बढ़ी हुई हानि का जोखिम है. ईएमए लाइन प्रवृत्ति का पालन करने के लिए काम करती है, ट्यूनिंग बिंदु का सटीक आकलन नहीं किया जा सकता है। यदि कीमत उलट जाती है, तो बड़ी हानि हो सकती है। समाधान उचित स्टॉप-लॉस सेट करना है।
ट्रेडिंग की आवृत्ति बहुत अधिक या बहुत कम हो सकती है। ईएमए की अवधि अलग-अलग होती है, और प्रोडक्शन रणनीति की ट्रेडिंग आवृत्ति भी अलग-अलग होती है। बहुत कम अवधि के कारण अत्यधिक व्यापार हो सकता है, और बहुत लंबी अवधि के कारण अवसरों को याद किया जा सकता है। समाधान विभिन्न ईएमए मापदंडों का परीक्षण करना है ताकि इष्टतम अवधि मिल सके।
ईएमए पैरामीटर का अनुकूलन करें, इष्टतम संतुलन बिंदु ढूंढें। चरणबद्ध अनुकूलन के माध्यम से इष्टतम ईएमए चक्र मान निर्धारित किया जा सकता है।
ट्यूनिंग पॉइंट का निर्धारण करने के लिए अन्य संकेतकों को जोड़ें। उदाहरण के लिए, आरएसआई जैसे ओवरबॉट और ओवरबॉट संकेतकों के संयोजन के साथ, कीमत टर्निंग पॉइंट का बेहतर निर्धारण किया जा सकता है।
स्टॉप-लॉस रणनीति को अनुकूलित करें, सबसे अच्छा स्टॉप-लॉस पाएं। रिटर्निंग के माध्यम से विभिन्न स्टॉप-लॉस को परीक्षण करके, अधिकतम लॉकिंग लाभ के लिए स्टॉप-लॉस पोजीशन पाएं।
अनुकूलित किस्मों का चयन करना। विभिन्न किस्मों की विशेषताओं के आधार पर ईएमए चक्र पैरामीटर को अनुकूलित करना, इष्टतम प्रभाव उत्पन्न करना।
ट्रेंड ट्रैकिंग ईएमए रणनीति एक बहुत ही विशिष्ट सूचक-आधारित ट्रेंड ट्रैकिंग रणनीति है। यह सरल, प्रत्यक्ष, लागू करने में आसान है, और शुरुआती सीखने के लिए उपयुक्त है। साथ ही यह स्केलेबल भी है, जो अन्य संकेतकों या अनुकूलन मापदंडों को जोड़कर रणनीति की प्रभावशीलता को और बढ़ा सकता है। निरंतर अनुकूलन और सुधार के साथ, यह रणनीति एक बहुत ही व्यावहारिक ट्रेंड ट्रैकिंग उपकरण बन सकती है।
/*backtest
start: 2022-10-09 00:00:00
end: 2023-10-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "EMA Close Strategy", shorttitle = "EMA Close",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
EmaSource = input(defval = close, title = "EMA Source")
EmaLength = input(defval = 8, title = "EMA Period", minval = 1)
StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
stopLoss = input(30, title = "Stop loss percentage(0.1%)")
UseStopLoss = input(true,"UseStopLoss")
window() => time >= timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false
EMA = ema(EmaSource,EmaLength)
plot(EMA, title = "EMA", color = green, linewidth = 2, style = line, transp = 50)
long = crossunder(EMA, close)
short= crossover(EMA, close)
if (long)
strategy.entry("LongId", strategy.long, when=window())
if (short)
strategy.entry("ShortId", strategy.short, when=window())
if (UseStopLoss)
strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)