यह रणनीति ट्रेंड की दिशा की पहचान करने और संकेत उत्पन्न करने के लिए तेज और धीमी गति से चलती औसत का उपयोग करती है जब तेज एमए धीमी एमए को पार करता है, जिससे एक दोहरी एमए प्रणाली बनती है।
इस रणनीति में एक छोटा तेज एमए और एक लंबा धीमा एमए का उपयोग किया गया है।
धीमी एमए मुख्य प्रवृत्ति दिशा को परिभाषित करती है। एमए से ऊपर की कीमत अपट्रेंड है, नीचे की कीमत डाउनट्रेंड है।
अपट्रेंड में, जब तेज एमए धीमी एमए से ऊपर जाता है तो लंबा संकेत उत्पन्न होता है। डाउनट्रेंड में, जब तेज एमए धीमी एमए से नीचे जाता है तो छोटा संकेत होता है।
सिग्नल के बाद, अनुवर्ती स्टॉप वैकल्पिक रूप से सक्षम किया जा सकता है।
तेज और धीमी एमए संयोजन प्रभावी रूप से प्रवृत्ति की पहचान करता है।
तेज एमए संवेदनशील ट्रेडिंग सिग्नल उत्पन्न करता है।
धीमी एमए शोर को फ़िल्टर करती है जिससे झूठा ब्रेकआउट हो जाता है।
ईएमए, डीईएमए जैसे विभिन्न एमए प्रकारों का उपयोग किया जा सकता है।
ट्रेलिंग स्टॉप लॉस सक्षम किया जा सकता है।
एमए विलंब संकेतों में देरी कर सकता है। अधिक संवेदनशील मापदंडों का परीक्षण किया जा सकता है।
स्टॉप लॉस बहुत तंग हो सकता है जिससे समय से पहले बाहर निकलना पड़ सकता है।
मात्रा को अनदेखा किया जाता है, मूल्य में हेरफेर का खतरा मौजूद है। मात्रा की पुष्टि जोड़ सकते हैं।
केवल संकेतक झूठे संकेतों के लिए प्रवण है। अतिरिक्त पुष्टि की आवश्यकता है।
पैरामीटर अनुकूलन मुश्किल है. चरणबद्ध अनुकूलन या जीए इष्टतम पैरामीटर पा सकते हैं.
सर्वोत्तम परिणामों के लिए विभिन्न एमए प्रकारों और मापदंडों का परीक्षण करें।
बेहतर संवेदनशीलता के लिए अनुकूलनशील चलती औसत का शोध करें।
सिग्नल फ़िल्टरिंग के लिए अन्य संकेतक या कारक जोड़ें।
लचीले स्टॉप के लिए गतिशील स्टॉप बनाएं।
एटीआर के साथ गतिशील स्थिति आकार जैसे धन प्रबंधन का अनुकूलन करें।
यह रणनीति रुझानों की पहचान करने के लिए दोहरे एमए क्रॉसओवर का व्यापार करती है, जोखिम को सीमित करने वाले स्टॉप के साथ। तर्क सरल और स्पष्ट है लेकिन पैरामीटर चयन और अन्य मुद्दे मौजूद हैं। अनुकूलन, फ़िल्टरिंग, स्टॉप के माध्यम से सुधार मजबूतता में सुधार कर सकते हैं। यह एक उचित आधार रेखा प्रवृत्ति निम्नलिखित प्रणाली के रूप में कार्य करता है।
/*backtest start: 2023-08-18 00:00:00 end: 2023-09-17 00:00:00 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title = "Noro's Trend MAs Strategy v1.7", shorttitle = "Trend MAs str 1.7", 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, %") type = input(7, defval = 7, minval = 1, maxval = 7, title = "Type of Slow MA") src = input(close, defval = close, title = "Source of Slow MA") usefastsma = input(true, "Use fast MA Filter") fastlen = input(5, defval = 5, minval = 1, maxval = 50, title = "fast MA Period") len = input(20, 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?") fastsma = ema(src, fastlen) //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 //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] //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 min = min(open, close) max = max(open, close) up = trend == 1 and (low < fastsma or usefastsma == false) and redbars == 1 ? 1 : 0 dn = trend == -1 and (high > fastsma or usefastsma == false) and greenbars == 1 ? 1 : 0 //Lines colorfastsma = usefastsma == true ? red : na plot(fastsma, color = colorfastsma, title = "Fast MA") plot(ma, color = blue, linewidth = 3, transp = 0, title = "Slow MA") //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)