डबल मूविंग एवरेज ट्रेंड फॉलोइंग रणनीति


निर्माण तिथि: 2024-01-24 11:28:57 अंत में संशोधित करें: 2024-01-24 11:28:57
कॉपी: 1 क्लिक्स: 559
1
ध्यान केंद्रित करना
1617
समर्थक

डबल मूविंग एवरेज ट्रेंड फॉलोइंग रणनीति

अवलोकन

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

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

द्वि-समानता ट्रेंड ट्रैकिंग रणनीति दो चलती औसत संकेतकों का उपयोग करती है - एक तेज चलती औसत ((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)