ट्रेंड मूविंग एवरेज ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-09-21 20:34:43
टैगः

अवलोकन

यह रणनीति ट्रेंड ट्रेडिंग के लिए ट्रेंड की दिशा निर्धारित करने और मध्यम से दीर्घकालिक रुझानों को पकड़ने के लिए तेज़ और धीमी गति से चलती औसत के संयोजन का उपयोग करती है। जब तेज़ एमए धीमी एमए के ऊपर पार हो जाता है तो यह लंबा हो जाता है, और जब तेज़ एमए धीमी एमए के नीचे पार हो जाता है तो यह छोटा हो जाता है। यह एक विशिष्ट ट्रेंड-फॉलोइंग रणनीति है।

रणनीति तर्क

यह रणनीति मुख्य रूप से बाजार के रुझानों को निर्धारित करने के लिए चलती औसत के स्वर्ण क्रॉस और मृत्यु क्रॉस पर निर्भर करती है। विशेष रूप से, यह 5 अवधि के तेज एमए और 21 अवधि के धीमे एमए का उपयोग करती है।

जब तेज एमए धीमी एमए से ऊपर जाता है, तो यह बाजार में एक अपट्रेंड का संकेत देता है, और रणनीति अगले बार के खुलने पर लंबी हो जाएगी। जब तेज एमए धीमी एमए से नीचे जाता है, तो यह एक डाउनट्रेंड का संकेत देता है, और रणनीति अगले बार के खुलने पर छोटी हो जाएगी।

इसके अतिरिक्त, bars पैरामीटर को झूठे ब्रेकआउट को फ़िल्टर करने के लिए सेट किया गया है। डिफ़ॉल्ट मान 2 है, जिसका अर्थ है कि एक लंबे संकेत को ट्रिगर करने से पहले तेजी से एमए को लगातार 2 बार धीमी एमए के ऊपर बंद करने की आवश्यकता है। इससे प्रभावी रूप से झूठे ब्रेकआउट से बचा जाता है।

क्रिप्टो ट्रेडिंग के लिए, रणनीति में चरम मूल्य तर्क भी शामिल है - केवल जब तेज और धीमी एमए दोनों चरम क्षेत्रों तक पहुंचते हैं तो ट्रेडिंग सिग्नल ट्रिगर किए जाएंगे। इससे झूठे संकेतों से भी बचा जाता है।

बाहर निकलने का नियम सरल और सीधा है - स्टॉप लॉस को हिट करने पर बंद स्थिति।

लाभ

  • दोहरी एमए प्रणाली से रुझानों को प्रभावी ढंग से ट्रैक किया जा सकता है
  • तेजी से एमए रुझान परिवर्तनों पर तेजी से प्रतिक्रिया करता है
  • धीमी एमए समग्र दिशा निर्धारित करती है
  • bars पैरामीटर कुछ झूठे ब्रेकआउट फ़िल्टर करता है
  • चरम मूल्य गार्ड महत्वपूर्ण बिंदुओं के आसपास छिटपुट झूठे संकेतों से बचता है
  • स्टॉप लॉस को स्थानांतरित करने से जोखिमों का प्रबंधन होता है

जोखिम

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

जोखिमों को निम्न द्वारा कम किया जा सकता हैः

  • bars पैरामीटर का अनुकूलन
  • एमएसीडी जैसे अन्य फ़िल्टर जोड़ना
  • समय से पहले बंद होने से बचने के लिए स्टॉप लॉस स्तरों को समायोजित करना
  • पुनः प्रवेश पर विचार

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

इस रणनीति में निम्नलिखित पहलुओं से सुधार किया जा सकता हैः

  1. एमए पैरामीटर ट्यूनिंग

वर्तमान बाजार के लिए इष्टतम मापदंडों को खोजने के लिए अधिक एमए संयोजनों का परीक्षण करें, उदाहरण के लिए 10-अवधि तेज एमए और 50-अवधि धीमी एमए।

  1. अन्य संकेतक जोड़ना

अधिक सख्त प्रवेश नियम निर्धारित करने और झूठे संकेतों से बचने के लिए एमएसीडी, केडीजे और अन्य संकेतकों को जोड़कर परीक्षण करें।

  1. प्रविष्टियों का अनुकूलन

वर्तमान सरल दोहरी एमए प्रविष्टि को बढ़ाया जा सकता हैः

  • केवल तभी लंबा दर्ज करें यदि MACDDIFF भी 0 से ऊपर पार हो जाता है जब तेज MA धीमी MA से ऊपर पार हो जाता है
  • केवल तभी लंबा दर्ज करें यदि KDJ स्वर्ण क्रॉस देता है जब तेज एमए धीमी एमए के ऊपर से गुजरता है
  1. स्टॉप का अनुकूलन

समय से पहले रुकने से बचने के लिए अन्य स्टॉप तंत्र जैसे ट्रेसिंग स्टॉप का परीक्षण करें।

  1. पुनः प्रविष्टियाँ जोड़ना

रुकावटों के बाद पुनः प्रवेश की अनुमति दें, ताकि रुझानों को याद न किया जा सके।

सारांश

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


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's Trend MAs Strategy v2.3", shorttitle = "Trend MAs str 2.3", 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, %")
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?")
needex = input(true, defval = true, title = "Need extreme? (crypto/fiat only!!!)")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

src = close

//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
trend = low > center and low[1] > center[1] ? 1 : high < center and high[1] < center[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

//Fast RSI
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//CryptoBottom
mac = sma(close, 10)
len = abs(close - mac)
sma = sma(len, 100)
max = max(open, close)
min = min(open, close)

//Signals
up1 = trend == 1 and (low < center2 or usefastsma == false) and redbars == 1
dn1 = trend == -1 and (high > center2 or usefastsma == false) and greenbars == 1
up2 = high < center and high < center2 and bar == -1 and needex
dn2 = low > center and low > center2 and bar == 1 and needex
up3 = close < open and len > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0

//Lines
plot(center2, color = red, linewidth = 3, transp = 0, title = "Fast MA")
plot(center, color = blue, linewidth = 3, transp = 0, title = "Slow MA")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Trading
stoplong = up1 == 1 and needstops == true ? close - (close / 100 * stoppercent) : stoplong[1]
stopshort = dn1 == 1 and needstops == true ? close + (close / 100 * stoppercent) : stopshort[1]

if up1 or up2 or up3
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.exit("Stop Long", "Long", stop = stoplong)

if dn1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    strategy.exit("Stop Short", "Short", stop = stopshort)
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    

अधिक