चलती औसत क्रॉसओवर के आधार पर रणनीति का अनुसरण करने वाली प्रवृत्ति

लेखक:चाओझांग, दिनांकः 2024-02-23 12:21:40
टैगः

img

अवलोकन

यह रणनीति विभिन्न पैरामीटर सेटिंग्स के साथ दो चलती औसत की गणना करके और उनके क्रॉसओवर स्थितियों की तुलना करके मूल्य प्रवृत्ति की दिशा निर्धारित करती है, ताकि ट्रेडिंग के बाद प्रवृत्ति को लागू किया जा सके। जब तेजी से चलती औसत नीचे से धीमी गति से चलती औसत को तोड़ती है, तो इसे तेजी का संकेत माना जाता है। जब तेजी से चलती औसत ऊपर से धीमी गति से चलती औसत को तोड़ती है, तो इसे मंदी का संकेत माना जाता है। यह रणनीति मापदंडों को समायोजित करके विभिन्न चक्रों के रुझानों का न्याय प्राप्त कर सकती है।

रणनीतिक सिद्धांत

यह रणनीति तुलना के लिए विभिन्न पैरामीटर सेटिंग्स के साथ चलती औसत के दो सेट का उपयोग करती है। पहला चलती औसत पैरामीटर len1 और type1 द्वारा सेट किया जाता है, और दूसरा चलती औसत पैरामीटर len2 और type2 द्वारा सेट किया जाता है। जहां len1 और len2 क्रमशः दो चलती औसत की चक्र लंबाई का प्रतिनिधित्व करते हैं, और type1 और type2 चलती औसत के एल्गोरिथ्म प्रकार का प्रतिनिधित्व करते हैं।

जब तेजी से चलती औसत स्वर्ण क्रॉस बनाने के लिए धीमी गति से चलती औसत से ऊपर जाती है, तो इसे तेजी का संकेत माना जाता है। जब तेजी से चलती औसत धीमी गति से चलती औसत से नीचे जाती है और मृत क्रॉस बनाती है, तो इसे मंदी का संकेत माना जाता है।

क्रॉसओवर सिग्नल की दिशा के अनुसार, लंबी या छोटी पोजीशन निष्पादित की जाएंगी। जब एक तेजी का संकेत ट्रिगर किया जाता है, यदि needlong पैरामीटर सही है, तो एक लंबी स्थिति default_qty_value या प्रतिशत_अक्च्यूटी_ऑफ_इक्विटी मात्रा के साथ खोली जाएगी। जब एक मंदी का संकेत ट्रिगर किया जाता है, यदि needshort पैरामीटर सही है, तो एक छोटी स्थिति default_qty_value या प्रतिशत_ऑफ_इक्विटी मात्रा के साथ खोली जाएगी।

लाभ

  1. बाजार की स्थितियों के अनुकूल लचीलेपन के लिए 7 विभिन्न प्रकार के चलती औसत के संयोजन का समर्थन करना
  2. दीर्घकालिक और मध्यम अल्पकालिक रुझानों का न्याय करने के लिए दो चलती औसत के मापदंडों को अनुकूलित करें
  3. सरल और स्पष्ट संकेत निर्णय नियम, समझने और लागू करने में आसान
  4. लंबी और छोटी स्थिति का समर्थन करें, ट्रेंड ट्रैकिंग लेनदेन कर सकते हैं

जोखिम और समाधान

  1. मूविंग एवरेज के पीछे के गुण होते हैं और मूल्य उलट बिंदुओं को याद कर सकते हैं
    समाधानः चलती औसत चक्रों को उचित रूप से छोटा करें या अन्य संकेतकों के साथ संयोजन में उपयोग करें

  2. उच्च अस्थिरता और लगातार उलटफेर वाले बाजारों के लिए उपयुक्त नहीं
    समाधानः दोहराने वाले बाजारों में व्यापार से बचने के लिए फ़िल्टरिंग शर्तें जोड़ें

  3. झूठे संकेतों के कुछ जोखिम हैं
    समाधानः सिग्नल विश्वसनीयता में सुधार के लिए संयोजन के लिए अन्य फ़िल्टरिंग संकेतक जोड़ें

अनुकूलन दिशाएँ

  1. चलती औसत के चक्र संयोजन को अनुकूलित करें और रणनीति रिटर्न पर लंबे और छोटे चक्र मापदंडों के प्रभाव का परीक्षण करें
  2. इष्टतम चलती औसत एल्गोरिथ्म खोजने के लिए विभिन्न प्रकार के चलती औसत के प्रदर्शन का परीक्षण करें
  3. सिग्नल की गुणवत्ता में सुधार के लिए संयोजन के लिए ट्रेडिंग वॉल्यूम चर या बोलिंगर बैंड जोड़ें
  4. फिक्स्ड पोजीशन प्रतिशत_अक्चुअल_पॉजिशन दृष्टिकोण में सुधार के लिए पोजीशन प्रबंधन रणनीति का अनुकूलन करना

सारांश

यह रणनीति दो चलती औसत के क्रॉसओवर की तुलना करके मूल्य प्रवृत्ति का न्याय करती है, और रुझानों को पकड़ने और लाभ उठाने के लिए संबंधित लंबे और छोटे संचालन करती है। लाभ यह है कि संकेत नियम सरल और स्पष्ट हैं, पैरामीटर समायोज्य हैं, प्रयोज्यता मजबूत है, और इसे विभिन्न बाजार वातावरण के लिए अनुकूलित और समायोजित किया जा सकता है। चलती औसत और चंचल बाजारों के पिछड़े जोखिमों को रोकने के लिए ध्यान दें, जिन्हें संकेत की गुणवत्ता में सुधार के लिए फ़िल्टरिंग के लिए अन्य संकेतकों को जोड़कर कम किया जा सकता है।


/*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)

अधिक