दोहरी चलती औसत ट्रेंड ट्रैकिंग रणनीति

लेखक:चाओझांग, दिनांकः 2024-01-24 11:28:57
टैगः

img

अवलोकन

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

रणनीति तर्क

डबल मूविंग एवरेज ट्रेंड ट्रैकिंग रणनीति दो मूविंग एवरेज का उपयोग करती है - एक फास्ट मूविंग एवरेज (5 पीरियड्स) और एक स्लो मूविंग एवरेज (21 पीरियड्स) । फास्ट एमए का उपयोग ट्रेडिंग सिग्नल उत्पन्न करने के लिए किया जाता है जबकि स्लो एमए का उपयोग बाजार की प्रवृत्ति दिशा निर्धारित करने के लिए किया जाता है। जब फास्ट एमए स्लो एमए से ऊपर जाता है, तो एक खरीद संकेत उत्पन्न होता है। जब फास्ट एमए स्लो एमए से नीचे जाता है, तो एक बिक्री संकेत उत्पन्न होता है।

यह रणनीति प्रवृत्ति को निर्धारित करने में सहायता के लिए एक मूल्य चैनल संकेतक का भी उपयोग करती है। मूल्य चैनल उच्चतम और निम्नतम कीमतों के चलती औसत द्वारा निर्धारित किया जाता है। जब कीमतें चैनल को तोड़ती हैं, तो यह एक प्रवृत्ति उलट का संकेत देती है। यह रणनीति क्रमशः 21 और 5 की अवधि के साथ दो मूल्य चैनलों का उपयोग करती है, जो एमए अवधि से मेल खाती है।

खरीदने और बेचने के संकेतों को निर्धारित करते समय, रणनीति के लिए एक अतिरिक्त फ़िल्टर स्थिति के रूप में लगातार लाल/हरे रंग की मोमबत्तियों (उपयोगकर्ता द्वारा समायोजित) की आवश्यकता होती है। इससे बाजार समेकन के दौरान गलत संकेतों से बचने में मदद मिलती है।

संक्षेप में, इस रणनीति में रुझान निर्धारित करने का तर्क हैः

  1. उच्चतर समय सीमा प्रवृत्ति दिशा निर्धारित करने के लिए मूल्य चैनल का उपयोग करें
  2. अल्पकालिक प्रवृत्ति निर्धारित करने और व्यापार संकेत उत्पन्न करने के लिए त्वरित एमए का उपयोग करें
  3. समेकन के दौरान गलत संकेतों से बचने के लिए अतिरिक्त मोमबत्ती फिल्टर जोड़ें

समय-सीमाओं में रुझान का आकलन करके, बाजार शोर को प्रभावी ढंग से फ़िल्टर किया जा सकता है और रुझान की दिशा की पुष्टि की जा सकती है।

लाभ विश्लेषण

दोहरी चलती औसत ट्रेंड ट्रैकिंग रणनीति के निम्नलिखित फायदे हैंः

  1. दोहरी एमए प्रणाली प्रभावी ढंग से रुझानों की पहचान कर सकती है और प्रमुख रुझान की दिशा निर्धारित कर सकती है
  2. तेजी से एमए ट्रेडिंग संकेत उत्पन्न करता है ताकि समय पर रुझान उलटने को पकड़ सकें
  3. बाजार के शोर से भ्रमित होने से बचने के लिए मूल्य चैनल उच्च समय सीमा की प्रवृत्ति निर्धारित करता है
  4. लाल/हरी मोमबत्ती फिल्टर समेकन के दौरान गलत संकेतों की संभावना को कम करते हैं
  5. समायोज्य मापदंड मजबूतता में सुधार के लिए विभिन्न बाजारों के लिए अनुकूलन की अनुमति देते हैं
  6. प्रति व्यापार जोखिम को प्रभावी ढंग से नियंत्रित करने के लिए स्टॉप लॉस रणनीतियों को जोड़ा जा सकता है

अंत में, इस रणनीति में अपेक्षाकृत अच्छी समग्र स्थिरता है और यह मजबूत ट्रेंडिंग बाजारों में अच्छा प्रदर्शन करती है।

जोखिम विश्लेषण

डबल मूविंग एवरेज ट्रेंड ट्रैकिंग रणनीति में भी कुछ जोखिम हैं, मुख्यतः

  1. लंबे समय तक समेकन के दौरान यह गलत संकेत और लगातार छोटे नुकसान पैदा करने के लिए प्रवण है।
  2. अनुचित पैरामीटर सेटिंग्स व्यापार संकेतों में देरी कर सकती हैं और सर्वोत्तम प्रवेश अवसरों को याद कर सकती हैं
  3. प्रभावी स्टॉप लॉस के बिना, प्रति व्यापार जोखिम को नियंत्रित करना मुश्किल है

जोखिमों को कम करने के लिए संबंधित उपायों में निम्नलिखित शामिल हैंः

  1. समेकित बाजारों में कम व्यापार आवृत्ति के लिए लाल/हरा कैंडल फिल्टर सेटिंग्स को समायोजित करें
  2. समय पर ट्रेडिंग सिग्नल उत्पन्न सुनिश्चित करने के लिए तेजी से एमए मापदंडों का अनुकूलन
  3. प्रति व्यापार हानि पर सख्ती से नियंत्रण करने के लिए चलती या प्रतिशत स्टॉप हानि जोड़ें

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

इस रणनीति को और अधिक अनुकूलित करने की गुंजाइश है, मुख्य रूप से निम्नलिखित दिशाओं मेंः

  1. स्टॉप लॉस को स्वतः समायोजित करने के लिए एटीआर जैसे अस्थिरता संकेतकों को शामिल करें
  2. मापदंडों का स्वतः अनुकूलन करने के लिए मशीन सीखने का उपयोग करें
  3. रुझान दिशा निर्धारित करने के लिए तंत्रिका नेटवर्क मॉड्यूल जोड़ें
  4. कई संकेतकों और फ़िल्टरों को जोड़ने वाली समग्र प्रणालियों का निर्माण

इन अनुकूलन दिशाओं से रणनीति की स्थिरता, अनुकूलन क्षमता और बुद्धिमत्ता स्तर में और सुधार हो सकता है।

निष्कर्ष

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


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

अधिक