यह रणनीति विभिन्न अवधियों के दो चलती औसत के क्रॉसओवर के आधार पर ट्रेडिंग सिग्नल उत्पन्न करती है।
रणनीति उपयोगकर्ताओं को चलती औसत के प्रकार और लंबाई का चयन करने की अनुमति देती है। प्रकारों में एसएमए, ईएमए, वीडब्ल्यूएमए, आदि शामिल हैं। लंबाई चलती औसत की अवधि निर्धारित करती है।
उपयोगकर्ता के चयन के आधार पर दो चलती औसत की गणना की जाती है। यदि तेज रेखा धीमी रेखा के ऊपर पार करती है, तो एक स्वर्ण क्रॉस बनता है और एक खरीद संकेत उत्पन्न होता है। यदि तेज रेखा धीमी रेखा के नीचे पार करती है, तो एक मृत्यु क्रॉस बनता है और एक बिक्री संकेत उत्पन्न होता है।
जब अल्पकालिक औसत मूल्य दीर्घकालिक औसत मूल्य से ऊपर होता है, तो इसे अपट्रेंड माना जाता है और लंबी स्थिति ली जानी चाहिए। जब अल्पकालिक मूल्य दीर्घकालिक मूल्य से नीचे होता है, तो इसे डाउनट्रेंड माना जाता है और छोटी स्थिति ली जानी चाहिए।
मापदंडों का अनुकूलन, संकेत उत्पन्न करने के लिए अन्य संकेतकों का संयोजन, स्टॉप लॉस/टेक प्रॉफिट आदि को लागू करके जोखिमों का प्रबंधन किया जा सकता है।
रणनीति में दोहरे एमए क्रॉसओवर के साथ संकेत उत्पन्न करने का एक सरल और स्पष्ट तर्क है। यह अनुकूलन के लिए अन्य रणनीतियों के साथ लचीले पैरामीटर ट्यूनिंग और संयोजन की अनुमति देता है, लेकिन बाजारों की सीमा के जोखिमों की निगरानी की जानी चाहिए और धन प्रबंधन महत्वपूर्ण है। कुल मिलाकर यह एक रणनीति है जिसे विचार करने योग्य है।
/*backtest start: 2023-09-09 00:00:00 end: 2023-09-13 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's MAs Tests", shorttitle = "MAs tests", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length") type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type") src = input(close, defval = close, title = "Source") //DEMA dema = 2 * ema(src, len) - ema(ema(close, len), len) //TEMA xPrice = close xEMA1 = ema(src, len) xEMA2 = ema(xEMA1, len) xEMA3 = ema(xEMA2, len) tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3 //KAMA xvnoise = abs(src - src[1]) nfastend = 0.20 nslowend = 0.05 nsignal = abs(src - src[len]) nnoise = sum(xvnoise, len) nefratio = iff(nnoise != 0, nsignal / nnoise, 0) nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2) kama = nz(kama[1]) + nsmooth * (src - nz(kama[1])) //PriceChannel lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 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 plot(ma, color = blue, linewidth = 3, transp = 0) trend = low > ma ? 1 : high < ma ? -1 : trend[1] longCondition = trend == 1 and trend[1] == -1 if (longCondition) strategy.entry("Long", strategy.long) shortCondition = trend == -1 and trend[1] == 1 if (shortCondition) strategy.entry("Short", strategy.short)