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

लेखक:चाओझांग, दिनांकः 2024-01-31 15:17:31
टैगः

img

अवलोकन

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

रणनीति तर्क

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

जब अल्पकालिक एमए नीचे से दीर्घकालिक एमए को पार करता है, तो यह संकेत देता है कि अल्पकालिक प्रवृत्ति मजबूत हो रही है और बाजार ऊपर की ओर प्रवृत्ति में प्रवेश कर रहा है। इस प्रकार इस क्रॉसओवर बिंदु पर एक खरीद संकेत उत्पन्न होता है। इसके विपरीत, जब अल्पकालिक एमए दीर्घकालिक एमए से नीचे पार करता है, तो यह संकेत देता है कि अल्पकालिक प्रवृत्ति कमजोर हो रही है और बाजार नीचे की ओर उलट रहा है। तदनुसार, एक बिक्री संकेत उत्पन्न होता है।

इस तरह के एमए क्रॉसवर्स का पता लगाकर, यह रणनीति व्यापार के लिए बाजार की प्रवृत्ति का पालन करती है।

लाभ

  • प्रमुख रुझानों को निर्धारित करने के लिए क्लासिक और व्यावहारिक एमए क्रॉसओवर पद्धति का उपयोग करता है
  • विभिन्न एमओ प्रकारों के संयोजनों का समर्थन करता है, लचीलापन प्रदान करता है
  • सरल और स्पष्ट तर्क, समझने और स्वचालित करने में आसान
  • विन्यास योग्य मापदंड विभिन्न बाजार स्थितियों के अनुकूल हैं

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

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

समाधान:

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

सुधार की दिशाएँ

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

निष्कर्ष

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


/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//study(title="MA Crossover Strategy", overlay = true)
strategy("MA Crossover Strategy", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(25, title="1st MA Length")
type1 = input("HMA", "1st MA Type", options=["SMA", "EMA", "HMA", "VWMA"])

ma2 = input(7, title="2nd MA Length")
type2 = input("HMA", "2nd MA Type", options=["SMA", "EMA", "HMA", "VWMA"])

f_hma(_src, _length)=>
    _return = wma((2*wma(_src, _length/2))-wma(_src, _length), round(sqrt(_length)))

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    if (type1 == "EMA")
        ema(price, ma1)
    else
        if (type1 == "VWMA")
            vwma(price, ma1)
        else
            f_hma(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    if (type2 == "EMA")
        ema(price, ma2)
    else
        if (type2 == "VWMA")
            vwma(price, ma2)
        else
            f_hma(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


longCondition = crossover(price1, price2)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(price1, price2)
if (shortCondition)
    strategy.entry("Short", strategy.short)


अधिक