डबल मूविंग एवरेज ट्रेंड ट्रैकिंग रणनीति एक रणनीति है जो बाजार की प्रवृत्ति निर्धारित करने के लिए तेज और धीमी गति से चलती औसत के संयोजन का उपयोग करती है, और जब प्रवृत्ति की दिशा बदलती है तो ट्रेडिंग संकेत उत्पन्न करती है। यह प्रवृत्ति की पहचान करने के लिए मूविंग एवरेज संकेतकों और मूल्य चैनल संकेतकों को जोड़ती है, जो प्रभावी रूप से बाजार शोर को फ़िल्टर कर सकती है और प्रवृत्ति की दिशा निर्धारित कर सकती है।
डबल मूविंग एवरेज ट्रेंड ट्रैकिंग रणनीति दो मूविंग एवरेज का उपयोग करती है - एक फास्ट मूविंग एवरेज (5 पीरियड्स) और एक स्लो मूविंग एवरेज (21 पीरियड्स) । फास्ट एमए का उपयोग ट्रेडिंग सिग्नल उत्पन्न करने के लिए किया जाता है जबकि स्लो एमए का उपयोग बाजार की प्रवृत्ति दिशा निर्धारित करने के लिए किया जाता है। जब फास्ट एमए स्लो एमए से ऊपर जाता है, तो एक खरीद संकेत उत्पन्न होता है। जब फास्ट एमए स्लो एमए से नीचे जाता है, तो एक बिक्री संकेत उत्पन्न होता है।
यह रणनीति प्रवृत्ति को निर्धारित करने में सहायता के लिए एक मूल्य चैनल संकेतक का भी उपयोग करती है। मूल्य चैनल उच्चतम और निम्नतम कीमतों के चलती औसत द्वारा निर्धारित किया जाता है। जब कीमतें चैनल को तोड़ती हैं, तो यह एक प्रवृत्ति उलट का संकेत देती है। यह रणनीति क्रमशः 21 और 5 की अवधि के साथ दो मूल्य चैनलों का उपयोग करती है, जो एमए अवधि से मेल खाती है।
खरीदने और बेचने के संकेतों को निर्धारित करते समय, रणनीति के लिए एक अतिरिक्त फ़िल्टर स्थिति के रूप में लगातार लाल/हरे रंग की मोमबत्तियों (उपयोगकर्ता द्वारा समायोजित) की आवश्यकता होती है। इससे बाजार समेकन के दौरान गलत संकेतों से बचने में मदद मिलती है।
संक्षेप में, इस रणनीति में रुझान निर्धारित करने का तर्क हैः
समय-सीमाओं में रुझान का आकलन करके, बाजार शोर को प्रभावी ढंग से फ़िल्टर किया जा सकता है और रुझान की दिशा की पुष्टि की जा सकती है।
दोहरी चलती औसत ट्रेंड ट्रैकिंग रणनीति के निम्नलिखित फायदे हैंः
अंत में, इस रणनीति में अपेक्षाकृत अच्छी समग्र स्थिरता है और यह मजबूत ट्रेंडिंग बाजारों में अच्छा प्रदर्शन करती है।
डबल मूविंग एवरेज ट्रेंड ट्रैकिंग रणनीति में भी कुछ जोखिम हैं, मुख्यतः
जोखिमों को कम करने के लिए संबंधित उपायों में निम्नलिखित शामिल हैंः
इस रणनीति को और अधिक अनुकूलित करने की गुंजाइश है, मुख्य रूप से निम्नलिखित दिशाओं मेंः
इन अनुकूलन दिशाओं से रणनीति की स्थिरता, अनुकूलन क्षमता और बुद्धिमत्ता स्तर में और सुधार हो सकता है।
निष्कर्ष में, डबल मूविंग एवरेज ट्रेंड ट्रैकिंग रणनीति एक अपेक्षाकृत मजबूत ट्रेंड फॉलोअप रणनीति है। यह ट्रेंड की दिशा और ताकत निर्धारित करने के लिए मूविंग एवरेज और मूल्य चैनलों को जोड़ती है, तेजी से एमए के साथ ट्रेडिंग सिग्नल उत्पन्न करती है। अतिरिक्त मोमबत्ती फिल्टर भी गलत संकेतों से बचने में मदद करते हैं। समायोज्य मापदंड विभिन्न बाजार वातावरण के अनुकूलन की अनुमति देते हैं। एक विश्वसनीय, बुद्धिमान स्वचालित ट्रेडिंग रणनीति बनाने के लिए आगे अनुकूलन के लिए भी पर्याप्त जगह है।
/*backtest start: 2023-12-24 00:00:00 end: 2024-01-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's Trend MAs Strategy v1.8", shorttitle = "Trend MAs str 1.8", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, "long") needshort = input(true, "short") needstops = input(false, "stops") stoppercent = input(5, defval = 5, minval = 1, maxval = 50, title = "Stop, %") useohlc4 = input(false, defval = false, title = "Use OHLC4") usefastsma = input(true, "Use fast MA Filter") fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period") slowlen = input(21, defval = 20, minval = 2, maxval = 200, title = "slow MA Period") bars = input(2, defval = 2, minval = 0, maxval = 3, title = "Bars Q") needbg = input(false, defval = false, title = "Need trend Background?") needarr = input(false, defval = false, title = "Need entry arrows?") src = useohlc4 == true ? ohlc4 : close fastsma = ema(src, 5) //PriceChannel 1 lasthigh = highest(src, slowlen) lastlow = lowest(src, slowlen) center = (lasthigh + lastlow) / 2 //PriceChannel 2 lasthigh2 = highest(src, fastlen) lastlow2 = lowest(src, fastlen) center2 = (lasthigh2 + lastlow2) / 2 //Trend //ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0 //trend = low > ma and low[1] > ma[1] and low[2] > ma[2] ? 1 : high < ma and high[1] < ma[1] ? -1 : trend[1] trend1 = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[1] ? -1 : trend1[1] trend2 = low > center2 and low[1] > center2[1] ? 1 : high < center2 and high[1] < center2[1] ? -1 : trend1[1] trend = trend1 == 1 and trend2 == 1 ? 1 : trend2 == -1 and trend2 == -1 ? -1 : trend[1] //Bars bar = close > open ? 1 : close < open ? -1 : 0 redbars = bars == 0 ? 1 : bars == 1 and bar == -1 ? 1 : bars == 2 and bar == -1 and bar[1] == -1 ? 1 : bars == 3 and bar == -1 and bar[1] == -1 and bar[2] == -1 ? 1 : 0 greenbars = bars == 0 ? 1 : bars == 1 and bar == 1 ? 1 : bars == 2 and bar == 1 and bar[1] == 1 ? 1 : bars == 3 and bar == 1 and bar[1] == 1 and bar[2] == 1 ? 1 : 0 //Signals up = trend == 1 and (low < center2 or usefastsma == false) and (redbars == 1) ? 1 : 0 dn = trend == -1 and (high > center2 or usefastsma == false) and (greenbars == 1) ? 1 : 0 //Lines colorfastsma = usefastsma == true ? red : na plot(fastsma, color = colorfastsma, title = "Fast MA") plot(center, color = blue, linewidth = 3, transp = 0, title = "Slow MA") plot(center2, color = red, linewidth = 3, transp = 0, title = "PriceChannel 2") //Arrows plotarrow(up == 1 and needarr == true ? 1 : 0, colorup = black, colordown = black, transp = 0) plotarrow(dn == 1 and needarr == true ? -1 : 0, colorup = black, colordown = black, transp = 0) //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 90) //Alerts alertcondition(up == 1, title='buy', message='Uptrend') alertcondition(dn == 1, title='sell', message='Downtrend') //Trading stoplong = up == 1 and needstops == true ? close - (close / 100 * stoppercent) : stoplong[1] stopshort = dn == 1 and needstops == true ? close + (close / 100 * stoppercent) : stopshort[1] longCondition = up == 1 if (longCondition) strategy.entry("Long", strategy.long, needlong == false ? 0 : na) strategy.exit("Stop Long", "Long", stop = stoplong) shortCondition = dn == 1 if (shortCondition) strategy.entry("Short", strategy.short, needshort == false ? 0 : na) strategy.exit("Stop Short", "Short", stop = stopshort)