मोमेंटम मूविंग एवरेज क्रॉसओवर रणनीति


निर्माण तिथि: 2024-01-23 14:18:26 अंत में संशोधित करें: 2024-01-23 14:18:26
कॉपी: 1 क्लिक्स: 537
1
ध्यान केंद्रित करना
1617
समर्थक

मोमेंटम मूविंग एवरेज क्रॉसओवर रणनीति

अवलोकन

यह रणनीति ईएमए औसत रेखा के विभिन्न चक्रों के क्रॉसिंग के आधार पर प्रवृत्ति की दिशा का आकलन करती है, और इसके आधार पर बहु-कम-कम सिग्नल का निर्माण करती है। मुख्य रूप से 2 औसत रेखाओं का उपयोग किया जाता है, क्रमशः 10 वीं रेखा और 20 वीं रेखा। जब 10 वीं रेखा ऊपर से नीचे से 20 वीं रेखा को पार करती है, तो कम हो जाती है; जब 10 वीं रेखा नीचे से ऊपर तक 20 वीं रेखा को पार करती है, तो अधिक होती है। यह रणनीति मध्य-लंबी व्यापार रणनीति के अंतर्गत आती है।

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

इस रणनीति में दो ईएमए औसत रेखाओं का उपयोग किया जाता है, जिसमें 10 वीं और 20 वीं लाइन शामिल हैं। ईएमए औसत रेखा मूल्य की प्रवृत्ति की दिशा को अच्छी तरह से दर्शाती है। जब अल्पकालिक ईएमए रेखा नीचे से ऊपर की ओर लंबी ईएमए रेखा को पार करती है, तो यह संकेत देती है कि कीमतें नीचे से ऊपर की ओर बढ़ रही हैं, और यह एक मल्टी सिग्नल है। जब अल्पकालिक ईएमए रेखा ऊपर से नीचे की ओर लंबी ईएमए रेखा को पार करती है, तो यह संकेत देती है कि कीमतें ऊपर से नीचे की ओर बढ़ रही हैं।

यह रणनीति एक ही समय में अस्थिरता के अधिकतम और न्यूनतम मानों को जोड़ती है ताकि कुछ ट्रेडिंग सिग्नल को फ़िल्टर किया जा सके। केवल एक निश्चित मात्रा में कीमतों में उतार-चढ़ाव के बाद ही ट्रेडिंग सिग्नल जारी किए जाते हैं। यह कुछ हद तक कुछ झूठे संकेतों को फ़िल्टर कर सकता है।

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

रणनीति का विश्लेषण

इस रणनीति के कुछ फायदे हैंः

  1. ईएमए औसत रेखा का उपयोग करके प्रवृत्ति की दिशा का आकलन करने के लिए, बाजार की गति को प्रभावी ढंग से ट्रैक करें
  2. विभिन्न चक्रों के ईएमए औसत के संयोजन के साथ, मध्य और लघु रेखा पर व्यापार के अवसरों को पकड़ना
  3. चरम फ़िल्टरिंग सिग्नल के माध्यम से, कुछ शोर को फ़िल्टर किया जा सकता है और व्यापार के अवसरों को याद नहीं किया जा सकता है
  4. रणनीति तर्क सरल और स्पष्ट है, इसे समझना और संशोधित करना आसान है
  5. विभिन्न किस्मों और व्यापार वरीयताओं के अनुसार पैरामीटर को समायोजित करने में सक्षम, अनुकूलनीय

रणनीतिक जोखिम विश्लेषण

इस रणनीति के कुछ जोखिम भी हैं:

  1. ईएमए औसत स्वयं में देरी का अनुभव करता है, जो कि अल्पकालिक मूल्य परिवर्तन को याद कर सकता है।
  2. शोर-सिग्नल फ़िल्टरिंग अपूर्ण है, कुछ गलत लेनदेन हो सकता है
  3. विभिन्न बाजार स्थितियों के लिए पैरामीटर को ठीक से समायोजित करने की आवश्यकता

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

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

रणनीति अनुकूलन दिशा

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

  1. अन्य तकनीकी संकेतकों के पोर्टफोलियो को जोड़ना, ट्रेडिंग सिग्नल की सटीकता में सुधार करना। जैसे MACD, KD आदि।
  2. ईएमए औसत रेखा के पैरामीटर को अनुकूलित करें ताकि यह विशिष्ट किस्मों के लिए अधिक अनुकूल हो सके।
  3. मूल्य में उतार-चढ़ाव के बारे में निर्णय में सुधार के लिए अधिकतम और न्यूनतम मानों के लिए पैरामीटर का अनुकूलन करना।
  4. एकल व्यापार के अधिकतम नुकसान को नियंत्रित करने के लिए एक स्टॉप-लॉस रणनीति जोड़ें।
  5. विभिन्न किस्मों के लिए इस रणनीति का परीक्षण करें और इसकी उपयुक्तता का आकलन करें।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2024-01-15 00:00:00
end: 2024-01-22 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("PierceMAStrat", overlay=true)

lenMA0 = input(title="Length 0",defval=2)
lenMA1=input(title="Length 1",defval=10)
lenMA2=input(title="Length 2", defval=20)
lenMA3 = input(title = "Length3", defval =50)




emaLen0 = ema(close, lenMA0)
emaLen1 = ema(close, lenMA1)
emaLen2 = ema(close, lenMA2)
emaLen3 = ema(close, lenMA3)

    
ascent = if emaLen1[1] < emaLen1[0]
    true
else
    false
    
descent = if emaLen1[1] > emaLen1[0]
    true
else
    false
    
TimeSinceAscensionStart = if ascent == true
    barssince(descent == true)
else
    0
    

StartUp = if TimeSinceAscensionStart < 1
    true
else
    false

StartDown = if TimeSinceAscensionStart < 1
    false
else
    true


AscentBarCounter = barssince(StartUp == true)

DescentBarCounter = barssince(StartDown == true)

MaxAscent = if AscentBarCounter[1] > AscentBarCounter[0] and AscentBarCounter[1] > 10
    true
else
    false
    
MaxDescent = if DescentBarCounter[1] > DescentBarCounter[0] and DescentBarCounter[1] > 5
    true
else
    false
    
longCond = if crossover(emaLen1, emaLen2) and barssince(MaxDescent == true) > 3
    true
else
    false
shortCond = if crossunder(emaLen1, emaLen2) and barssince(MaxAscent == true) > 3
    true
else
    false


//longCond = (crossover(emaLen1, emaLen2) and (emaLen2 > emaLen3))
//shortCond = crossunder(emaLen1, emaLen2) and (emaLen2 < emaLen3)



if longCond == true
    strategy.entry("LONG", strategy.long)

if shortCond == true
    strategy.entry("SHORT", strategy.short)
    


plotshape(series=MaxAscent, title="MaximaReached", style=shape.triangledown, location=location.abovebar, color=green, text="MaximaReached", size=size.small)
plotshape(series=MaxDescent, title="MinimaReached", style=shape.triangleup, location=location.belowbar, color=red, text="MinimaReached", size=size.small)
//plotshape(series=StartUp, title="StartUp", style=shape.triangleup, location=location.belowbar, color=red, text="StartUp", size=size.tiny)
//plotshape(series=StartDown, title="StartDown", style=shape.triangleup, location=location.belowbar, color=green, text="StartDown", size=size.tiny)

//plotshape(series=(crossover(emaLen1, emaLen3)), title="GBXOVER", style=shape.triangleup, location=location.belowbar, color=green, text="GBXO", size=size.small)
//plotshape(series=(crossover(emaLen2, emaLen3)), title="RBXOVER", style=shape.triangledown, location=location.abovebar, color=orange, text="RBXO", size=size.small)
//plotshape(series=(crossover(emaLen1, emaLen2)), title="GRXOVER", style=shape.triangledown, location=location.abovebar, color=teal, text="GRXO", size=size.small)
//plotshape(series=(crossunder(emaLen1, emaLen2)), title="GRXUNDER", style=shape.triangledown, location=location.abovebar, color=purple, text="GRXU", size=size.small)
//plotshape(series=(crossunder(emaLen1, emaLen3)), title="GBXOVER", style=shape.triangleup, location=location.belowbar, color=yellow, text="GBXU", size=size.small)
//plotshape(series=(crossunder(emaLen2, emaLen3)), title="RBXOVER", style=shape.triangledown, location=location.abovebar, color=yellow, text="RBXU", size=size.small)
    
//plotshape(convergence, color=lime, style=shape.arrowup, text="CROSS")
plot(emaLen1, color=green, transp=0, linewidth=2)
plot(emaLen2, color=red, transp=30, linewidth=2)
plot(emaLen3, color=blue, transp=30, linewidth=2)