चलती औसत रिबन रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-18 12:29:19
टैगः

img

अवलोकन

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

रणनीति तर्क

यह रणनीति 5 फास्ट मूविंग एवरेज (5-, 8-, 13-, 20- और 30-दिवसीय लाइनें) और 4 स्लो मूविंग एवरेज (45, 70, 105- और 150-दिवसीय लाइनें) का उपयोग करती है। फास्ट लाइनें एक आंतरिक मूविंग एवरेज रिबन बनाती हैं और स्लो लाइनें एक बाहरी मूविंग एवरेज रिबन बनाती हैं। जब कीमतें आंतरिक रिबन से ऊपर टूटती हैं तो एक खरीद संकेत उत्पन्न होता है, और जब कीमतें आंतरिक रिबन से नीचे टूटती हैं तो एक बिक्री संकेत उत्पन्न होता है। झूठे ब्रेक को फ़िल्टर करने के लिए, कीमतों को लगातार 3 मोमबत्तियों के लिए आंतरिक रिबन के माध्यम से तोड़ने की आवश्यकता होती है, और अधिकांश फास्ट मूविंग एवरेज ट्रेडिंग सिग्नल उत्पन्न करने से पहले सिंक्रोनस रूप से भी तोड़ते हैं।

इसके अलावा, रणनीति दीर्घकालिक रुझानों का भी न्याय करती है। यह केवल खरीद संकेत उत्पन्न करने पर विचार करती है जब कीमतें 200-दिवसीय चलती औसत से ऊपर होती हैं। इसके विपरीत, यह केवल बिक्री संकेत उत्पन्न करने पर विचार करती है जब कीमतें 200-दिवसीय चलती औसत से नीचे जाती हैं। दीर्घकालिक रुझानों का निर्धारण करके, यह समेकन के दौरान फंसने से रोकता है।

लाभ विश्लेषण

इस रणनीति के निम्नलिखित फायदे हैंः

  1. मल्टी-मोविंग एवरेज डिज़ाइन ट्रेंड की दिशा को सटीक रूप से निर्धारित कर सकता है। तेज और धीमी रेखाओं के साथ आंतरिक और बाहरी मूविंग एवरेज रिबन का संयोजन मध्यम से दीर्घकालिक रुझानों की पहचान करने में अच्छी तरह से काम करता है।

  2. अनुक्रमिक ब्रेक तंत्र प्रभावी रूप से झूठे ब्रेक को फ़िल्टर कर सकता है। इस बीच, अधिकांश तेजी से चलती औसत के माध्यम से तोड़ने की आवश्यकता है, यह सुनिश्चित करता है कि प्रवृत्ति बदल रही है।

  3. दीर्घकालिक रुझानों का आकलन करने से समेकन के दौरान फंसने से बचा जाता है। निर्धारित करने के लिए 200-दिवसीय रेखा का उपयोग करने से रुझानों के उलटने पर ही पद खोलने की अनुमति मिलती है।

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

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

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

  1. असफल ब्रेकआउट जोखिम जब झूठे ब्रेकआउट होते हैं, तो रणनीति पूरी तरह से नुकसान से बच नहीं सकती है।

  2. जब बाजार लंबी अवधि के लिए भिन्न होता है, तो स्टॉप लॉस पॉइंट्स अक्सर हिट हो सकते हैं, जिससे बड़े नुकसान हो सकते हैं।

  3. मापदंड अनुकूलन जोखिमः चलती औसत मापदंडों की अनुचित सेटिंग भी व्यापार संकेतों में त्रुटियों का कारण बन सकती है, जिसके परिणामस्वरूप अधिक नुकसान हो सकता है।

संबंधित समाधान हैंः

  1. उचित रूप से स्टॉप लॉस पॉइंट्स को चौड़ा करें ताकि कीमतों को आगे बढ़ने के लिए पर्याप्त जगह मिल सके। या स्टॉप लॉस लाइन को कीमतों का अनुसरण करने की अनुमति देने के लिए ट्रेलिंग स्टॉप लॉस विधि को अपनाएं।

  2. समेकन के दौरान दिशाहीन स्थिति स्थापित करने से बचने के लिए रुझान आकलन करने वाले संकेतक जोड़ें। जैसे कि डीएमआई, एमएसीडी और अन्य संकेतक के साथ फ़िल्टरिंग।

  3. सर्वोत्तम पैरामीटर संयोजनों का चयन करने के लिए ऐतिहासिक बैकटेस्टिंग और पैरामीटर अनुकूलन विधियों का उपयोग करें। वास्तविक व्यापार में पैरामीटर प्रभावशीलता को भी ट्रैक करें और गतिशील अनुकूलन करें।

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

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

  1. सर्वोत्तम चक्र संख्याओं का चयन करने के लिए चलती औसत मापदंडों का अनुकूलन करें। इष्टतम पैरामीटर संयोजन खोजने के लिए विभिन्न चक्र संख्याओं के साथ चलती औसत के बैकटेस्ट चलाएं।

  2. फ़िल्टरिंग के लिए रुझान आकलन करने वाले संकेतक जोड़ें। जैसे कि ओवरबॉट/ओवरसोल्ड के लिए आरएसआई, चैनल ब्रेकआउट के लिए बोलिंगर बैंड आदि। रुझान अस्पष्ट होने पर अंधाधुंध स्थिति स्थापित करने से बचें।

  3. अनुकूलनशील चलती औसत को अपनाना। चलती औसत मापदंडों को गतिशील रूप से बदलती बाजार स्थितियों और अस्थिरता के अनुसार अनुकूलित करें, ताकि वे वर्तमान बाजार स्थितियों के लिए बेहतर फिट हों।

  4. प्रवृत्ति की संभावनाओं का न्याय करने के लिए मशीन लर्निंग मॉडल को मिलाएं। सफल ब्रेकआउट की संभावनाओं का मूल्यांकन करने के लिए संभावना मॉडल स्थापित करें, निर्णय प्रणाली को आदर्श प्रवेश समय का न्याय करने में सहायता करें।

  5. कीमतों की बेहतर ट्रैकिंग के लिए स्टॉप लॉस रणनीतियों का अनुकूलन करें। जैसे कि स्टॉप लॉस को ट्रेलिंग करना या स्टॉप लॉस लाइन को अधिक बुद्धिमान बनाने के लिए गतिशील स्थिति आकार स्टॉप लॉस करना।

सारांश

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


//@version=4
strategy(title="Moving Average Ribbon", shorttitle="MA Ribbon", overlay=true)
src = input(close, type=input.source, title="Source")
matype = input(title="Input one in lowercase: sma, ema, wma, trima, zlema, dema, tema, or hma", type=input.string, defval="trima")
// possible values: sma, ema, wma, trima, zlema, dema, tema, hma (hull ma)



trima(_src, _len) =>
    sma(sma(_src, _len), _len)
hma(_src, _len) =>
    wma(2 * wma(_src, _len / 2) - wma(_src, _len), round(sqrt(_len)))
dema(_src, _len) =>
    2 * ema(_src, _len) - ema(ema(_src, _len), _len)
tema(_src, _len) =>
    3 * ema(_src, _len) - 3 * ema(ema(_src, _len), _len) + 
       ema(ema(ema(_src, _len), _len), _len)
zlema(_src, _len) =>
    ema(_src, _len) + ema(_src, _len) - ema(ema(_src, _len), _len)

ma(_src, _len) =>
    hma__1 = hma(_src, _len)
    ema_1 = ema(_src, _len)
    sma_1 = sma(_src, _len)
    wma_1 = wma(_src, _len)
    trima__1 = trima(_src, _len)
    zlema__1 = zlema(_src, _len)
    dema__1 = dema(_src, _len)
    tema__1 = tema(_src, _len)
    matype == "hma" ? hma__1 : matype == "ema" ? ema_1 : matype == "sma" ? sma_1 : 
       matype == "wma" ? wma_1 : matype == "trima" ? trima__1 : 
       matype == "zlema" ? zlema__1 : matype == "dema" ? dema__1 : tema__1

ma05 = ma(src, 5)
ma08 = ma(src, 8)
ma13 = ma(src, 13)
ma20 = ma(src, 20)
ma30 = ma(src, 30)
ma45 = ma(src, 45)
ma70 = ma(src, 70)
ma105 = ma(src, 105)
ma150 = ma(src, 150)
ma200 = ma(src, 200)




maColor(ma, maRef) =>
    if change(ma) <= 0 and ma05 < maRef
        color.new(color.red, 20)
    else
        if change(ma) >= 0 and ma05 > maRef
            color.new(color.navy, 20)
        else
            if change(ma) < 0 and ma05 > maRef
                color.new(color.red, 20)
            else
                if change(ma) >= 0 and ma05 < maRef
                    color.new(color.navy, 20)
                else
                    color.gray


aboveConfirmed(x,maRef)=>
    above=true
    for i=1 to x
        if close[i]<maRef[i] and not (close[i]>ma200[i]*1.01) and not (ma05[i]>ma105[i]*1.015)
            above:=false
    above


aboveMost(x,len)=>
    above=0
    boolean=false
    if close[len]>ma05[len]
        above:=above+1
    if close[len]>ma08[len]
        above:=above+1
    if close[len]>ma13[len]
        above:=above+1
    if close[len]>ma20[len]
        above:=above+1
    if close[len]>ma30[len]
        above:=above+1
    if close[len]>ma45[len]
        above:=above+1
    if close[len]>ma70[len]
        above:=above+1
    if close[len]>ma105[len]
        above:=above+1
    if close[len]>ma150[len]
        above:=above+1
    if close[len]>ma200[len]
        above:=above+1
    if(above>=x)
        boolean:=true
    boolean
    
belowMost(x,len)=>
    above=0
    boolean=false
    if close[len]<ma05[len]
        above:=above+1
    if close[len]<ma08[len]
        above:=above+1
    if close[len]<ma13[len]
        above:=above+1
    if close[len]<ma20[len]
        above:=above+1
    if close[len]<ma30[len]
        above:=above+1
    if close[len]<ma45[len]
        above:=above+1
    if close[len]<ma70[len]
        above:=above+1
    if close[len]<ma105[len]
        above:=above+1
    if close[len]<ma150[len]
        above:=above+1
    if close[len]<ma200[len]
        above:=above+1
    if(above>=x)
        boolean:=true
    boolean
        
        
belowConfirmed(x,maRef)=>
    below=true
    for i=1 to x
        if close[i]>maRef[i] and not (close[i]<maRef[i]*0.99) and not (ma05[i]<ma105[i]*0.985)
            below:=false
    below
            
            
//plotshape(aboveConfirmed(5,ma150),color=color.navy,location=location.abovebar,style=shape.triangleup,size=size.large,title="above",text="above")
            
plot(ma05, color=maColor(ma05, ma150), style=plot.style_line, title="MMA05", linewidth=2)
plot(ma08, color=maColor(ma08, ma150), style=plot.style_line, title="MMA08", linewidth=1)
plot(ma13, color=maColor(ma13, ma150), style=plot.style_line, title="MMA13", linewidth=1)
plot(ma20, color=maColor(ma20, ma150), style=plot.style_line, title="MMA20", linewidth=1)
plot(ma30, color=maColor(ma30, ma150), style=plot.style_line, title="MMA30", linewidth=1)
plot(ma45, color=maColor(ma45, ma200), style=plot.style_line, title="MMA45", linewidth=1)
plot(ma70, color=maColor(ma70, ma200), style=plot.style_line, title="MMA70", linewidth=2)
plot(ma105, color=maColor(ma105, ma200), style=plot.style_line, title="MMA105", linewidth=2)
plot(ma150, color=maColor(ma150, ma200), style=plot.style_line, title="MMA150", linewidth=3)
plot(ma200, color=maColor(ma200, ma200), style=plot.style_line, title="MM200", linewidth=3)


closeLong=belowMost(6,1) and belowMost(6,2) and belowMost(6,3)
closeShort=aboveMost(6,1) and aboveMost(6,2) and aboveMost(6,3)

isAbove=aboveConfirmed(5,ma200)
strategy.entry("short", false, when=belowConfirmed(3,ma200) and belowMost(8,1) and belowMost(8,2) and belowMost(8,3))
strategy.entry("long", true, when=aboveConfirmed(3,ma200) and aboveMost(8,1) and aboveMost(8,2) and aboveMost(8,3))




strategy.close("long",when=closeLong)
strategy.close("short",when=closeShort)



अधिक