
यह रणनीति दो अलग-अलग पैरामीटर सेट की एक चलती औसत की गणना करके और उनके क्रॉसिंग की तुलना करके मूल्य की प्रवृत्ति की दिशा का न्याय करने के लिए ट्रेडों को ट्रेंड ट्रैक करने के लिए सक्षम है। जब तेजी से चलती औसत नीचे से धीमी गति से चलती औसत को तोड़ता है, तो यह एक आशावादी संकेत है; जब तेजी से चलती औसत ऊपर से नीचे से धीमी गति से चलती औसत को तोड़ता है, तो यह एक आशावादी संकेत है।
इस रणनीति में दो अलग-अलग पैरामीटर सेट के साथ चलती औसत की तुलना की गई है, पहला चलती औसत पैरामीटर len1 और type1 द्वारा सेट किया गया है, दूसरा चलती औसत पैरामीटर len2 और type2 द्वारा सेट किया गया है। len1 और len2 क्रमशः दो चलती औसत की अवधि की लंबाई का प्रतिनिधित्व करते हैं, और type1 और type2 चलती औसत के एल्गोरिथ्म प्रकार का प्रतिनिधित्व करते हैं।
जब एक तेज चलती औसत नीचे से धीमी चलती औसत को तोड़कर गोल्ड फोर्क बनाता है, तो इसे एक bullish संकेत माना जाता है; जब एक तेज चलती औसत ऊपर से नीचे से धीमी चलती औसत को तोड़कर एक मृत फोर्क बनाता है, तो इसे एक bearish संकेत माना जाता है।
क्रॉस सिग्नल की दिशा के आधार पर, अधिक या कम कार्रवाई करें। जब पूल सिग्नल ट्रिगर किया जाता है, तो यदि needlong पैरामीटर सही है, तो डिफ़ॉल्ट_qty_value की संख्या या पोजीशन प्रतिशत_of_equity के प्रतिशत के अनुसार अधिक करें; जब गिरावट सिग्नल ट्रिगर किया जाता है, तो यदि needshort पैरामीटर सही है, तो डिफ़ॉल्ट_qty_value की संख्या या पोजीशन प्रतिशत_of_equity के अनुसार शून्य करें।
मूविंग एवरेज में विलंबता है, कीमतों के टर्नओवर से चूक सकता है समाधानः उचित रूप से कम चलती औसत चक्र, या अन्य संकेतकों के साथ संयोजन में उपयोग किया जाता है
उच्च अस्थिरता वाले और अक्सर उलटने वाले बाजारों के लिए उपयुक्त नहीं समाधानः फ़िल्टर को बढ़ाएं और अस्थिरता में व्यापार करने से बचें
गलत संकेतों का खतरा समाधानः सिग्नल की विश्वसनीयता बढ़ाने के लिए अन्य फ़िल्टरिंग मापदंडों के साथ संयोजन
इस रणनीति में दो चलती औसत के क्रॉसिंग की तुलना करके कीमतों के रुझान का आकलन किया गया है, और इसके अनुसार पूर्वावलोकन और पूर्वावलोकन ऑपरेशन किया गया है, ताकि रुझान को पकड़ने और ट्रैक करने के लिए लाभ प्राप्त किया जा सके। रणनीति का लाभ यह है कि सिग्नल नियम सरल और स्पष्ट हैं, पैरामीटर को समायोजित किया जा सकता है, और यह कई प्रकार के बाजार की परिस्थितियों के लिए अनुकूलित समायोजन करने में सक्षम है। चलती औसत के पीछे और उतार-चढ़ाव की स्थिति के जोखिम को रोकने के लिए ध्यान देने की आवश्यकता है, सिग्नल की गुणवत्ता को बढ़ाने के लिए अन्य संकेतकों को जोड़कर फ़िल्टर किया जा सकता है।
/*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=2
strategy(title = "Noro's MAs Cross Tests v1.0", shorttitle = "MAs Cross tests 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0)
needlong = input(true, "long")
needshort = input(true, "short")
len2 = input(15, defval = 15, minval = 2, maxval = 1000, title = "Fast MA length")
type2 = input(1, defval = 1, minval = 1, maxval = 7, title = "Fast MA Type")
src2 = input(close, defval = close, title = "Fast MA Source")
len1 = input(30, defval = 30, minval = 2, maxval = 1000, title = "Slow MA length")
type1 = input(1, defval = 1, minval = 1, maxval = 7, title = "Slow MA Type")
src1 = input(close, defval = close, title = "Slow MA Source")
col = input(false, defval = false, title = "Color of bar")
o = input(false, title = "1 SMA, 2 EMA, 3 VWMA, 4 DEMA, 5 TEMA, 6 KAMA, 7 Price Channel")
//DEMA 1
dema1 = 2 * ema(src1, len1) - ema(ema(close, len1), len1)
//TEMA 1
xEMA1 = ema(src1, len1)
xEMA2 = ema(xEMA1, len1)
xEMA3 = ema(xEMA2, len1)
tema1 = 3 * xEMA1 - 3 * xEMA2 + xEMA3
//KAMA 1
xvnoise = abs(src1 - src1[1])
nfastend = 0.20
nslowend = 0.05
nsignal = abs(src1 - src1[len1])
nnoise = sum(xvnoise, len1)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2)
kama1 = nz(kama1[1]) + nsmooth * (src1 - nz(kama1[1]))
//PriceChannel 1
lasthigh1 = highest(src1, len1)
lastlow1 = lowest(src1, len1)
center1 = (lasthigh1 + lastlow1) / 2
//DEMA 2
dema2 = 2 * ema(src2, len2) - ema(ema(close, len2), len2)
//TEMA 2
xEMA12 = ema(src2, len2)
xEMA22 = ema(xEMA12, len2)
xEMA32 = ema(xEMA22, len2)
tema2 = 3 * xEMA12 - 3 * xEMA22 + xEMA32
//KAMA 2
xvnoise2 = abs(src2 - src2[1])
nfastend2 = 0.20
nslowend2 = 0.05
nsignal2 = abs(src2 - src2[len2])
nnoise2 = sum(xvnoise2, len2)
nefratio2 = iff(nnoise2 != 0, nsignal2 / nnoise2, 0)
nsmooth2 = pow(nefratio2 * (nfastend2 - nslowend2) + nslowend2, 2)
kama2 = nz(kama2[1]) + nsmooth2 * (src2 - nz(kama2[1]))
//PriceChannel 2
lasthigh2 = highest(src2, len2)
lastlow2 = lowest(src2, len2)
center2 = (lasthigh2 + lastlow2) / 2
//MAs
ma1 = type1 == 1 ? sma(src1, len1) : type1 == 2 ? ema(src1, len1) : type1 == 3 ? vwma(src1, len1) : type1 == 4 ? dema1 : type1 == 5 ? tema1 : type1 == 6 ? kama1 : type1 == 7 ? center1 : 0
ma2 = type2 == 1 ? sma(src2, len2) : type2 == 2 ? ema(src2, len2) : type2 == 3 ? vwma(src2, len2) : type2 == 4 ? dema2 : type2 == 5 ? tema2 : type2 == 6 ? kama2 : type2 == 7 ? center2 : 0
plot(ma1, color = blue, linewidth = 3, transp = 0)
plot(ma2, color = red, linewidth = 3, transp = 0)
//Signals
trend = ma2 > ma1 ? 1 : ma2 < ma1 ? -1 : trend[1]
up = trend == 1 and ((close < open and close[1] < open[1]) or col == false)
dn = trend == -1 and ((close > open and close[1] > open[1]) or col == false)
if up
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
if dn
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)