आरवीआई और ईएमए पर आधारित बिटकॉइन ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांकः 2024-02-22 13:50:17
टैगः

img

अवलोकन

यह रणनीति आरवीआई (रिलेटिव वीगोर इंडेक्स) और ईएमए (एक्सपोनेंशियल मूविंग एवरेज) संकेतकों पर आधारित है। यह लंबी होती है जब आरवीआई एक प्रवेश संकेत देता है और तेज ईएमए धीमी ईएमए से ऊपर होता है, और छोटी हो जाती है जब आरवीआई एक प्रवेश संकेत देता है और धीमी ईएमए तेज ईएमए से ऊपर होती है, प्रवृत्ति और ओवरबॉट-ओवरसोल्ड स्थितियों के आधार पर एक मात्रात्मक ट्रेडिंग रणनीति को लागू करता है।

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

  1. ओवरबॉट और ओवरसोल्ड स्थितियों का न्याय करने के लिए आरवीआई का उपयोग करें। जब आरवीआई संकेतक रेखा अपनी सिग्नल लाइन के ऊपर से गुजरती है, तो यह लंबी जाने के लिए ओवरबॉट सिग्नल है। जब आरवीआई रेखा अपनी सिग्नल लाइन के नीचे से गुजरती है, तो यह शॉर्ट जाने के लिए ओवरसोल्ड सिग्नल है।

  2. प्रवृत्ति की दिशा निर्धारित करने के लिए दोहरे ईएमए का प्रयोग करें। जब तेज ईएमए धीमे ईएमए से ऊपर होता है, तो यह एक तेजी की प्रवृत्ति होती है। जब धीमी ईएमए तेज ईएमए से ऊपर होती है, तो यह एक मंदी की प्रवृत्ति होती है।

  3. केवल तभी लंबी करें जब आरवीआई प्रवेश संकेत देता है और ईएमए तेजी की प्रवृत्ति दिखाता है। केवल तभी छोटी करें जब आरवीआई प्रवेश संकेत देता है और ईएमए मंदी की प्रवृत्ति दिखाता है।

  4. लंबे समय तक जाने के बाद स्टॉप लॉस को हाल के निचले स्तर से Atr की दूरी पर सेट किया जाता है।atrSL, और लाभ लेने के लिए हाल ही में उच्च से ऊपर एक दूरी पर सेट किया गया है atratrTP. शॉर्ट जाने के बाद स्टॉप लॉस को हाल के उच्च से ऊपर atr की दूरी पर सेट किया जाता हैatrSL, और लाभ लेने के लिए हाल ही में कम से नीचे एक दूरी पर सेट किया गया है atratrTP.

लाभ विश्लेषण

  1. रुझान और अधिक खरीदे-बेचे गए संकेतकों को मिलाकर झूठे ब्रेकआउट से बचा जा सकता है।

  2. गतिशील स्टॉप लॉस और ले लाभ बड़ी चालों को पकड़ने में मदद करता है।

  3. ट्रेंड क्वालिटी और ओवरबॉट/ओवरसोल्ड स्तरों को संतुलित करता है, जिससे सिग्नल की सटीकता में सुधार होता है।

  4. व्यापक बैकटेस्टिंग, अनुकूलित मापदंड, अच्छा वास्तविक व्यापार प्रदर्शन।

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

  1. ईएमए द्वारा रेंजिंग बाजारों के दौरान मूल्यांकन किए जाने वाले रुझानों के लगातार परिवर्तन से ओवरट्रेडिंग हो सकती है।

  2. आरवीआई मापदंडों और ईएमए अवधि को विभिन्न व्यापारिक साधनों के लिए अनुकूलित करने की आवश्यकता है, अन्यथा प्रदर्शन प्रभावित हो सकता है।

  3. स्टॉप लॉस और टेक प्रॉफिट गुणांक को बाजार की अस्थिरता के आधार पर उचित रूप से निर्धारित किया जाना चाहिए, अन्यथा जोखिमों को प्रभावी ढंग से नियंत्रित नहीं किया जा सकता है।

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

  1. ट्रेडिंग निर्णयों को अधिक सटीक बनाने के लिए अधिक संकेतकों को जोड़ा जा सकता है, जैसे ऑसिलेटर, बोलिंगर बैंड आदि।

  2. स्टॉप लॉस/टेक प्रॉफिट दूरी को एटीआर जैसे अस्थिरता उपायों के आधार पर गतिशील रूप से समायोजित किया जा सकता है, जिससे उच्च अस्थिरता अवधि के दौरान व्यापक स्टॉप की अनुमति मिलती है।

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

निष्कर्ष

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


/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//this strategy works well on h4 (btc or eth)


//@version=5
strategy(title="Relative Vigor Index", shorttitle="RVGI",overlay=true)
//indicator(title="Relative Vigor Index", shorttitle="RVGI", format=format.price, precision=4, timeframe="", timeframe_gaps=true)
len = input.int(4, title="Length rvi", minval=1)
rvi = math.sum(ta.swma(close-open), len)/math.sum(ta.swma(high-low),len)
sig = ta.swma(rvi)
offset = input.int(0, "Offset rvi", minval = -500, maxval = 500)


atrlength = input.int(19,title="Atr Length",minval=1)
ema1 =  input.int(95,title="Long EMA rapida",minval=1,step=10)
ema2 =  input.int(200,title="Long EMA lenta",minval=1,step=10)

atrSL = input.float(2.0,title="Atr SL", step=0.1)
atrTP = input.float(1.0,title="Atr TP", step=0.1)

atr = ta.atr(atrlength)
esalcista = low > ta.ema(close,ema1) and ta.ema(close,ema1) > ta.ema(close,ema2)
bajista = high < ta.ema(close,ema1) and ta.ema(close,ema1) < ta.ema(close,ema2)


//plot(high + atr)
//plot(low - atr)

//strategy.entry("compra",strategy.long, when=ta.crossover(rvi,sig))
//strategy.close("compra",when=ta.crossunder(rvi,sig))

//plot(rvi, color=#008000, title="RVGI", offset = offset)
//plot(sig, color=#FF0000, title="Signal", offset = offset)
//plotshape(true,style=shape.xcross)

var TP = 0.0
var SL = 0.0

comprado = strategy.position_size>0
vendido = strategy.position_size<0

crucepositivo = ta.crossover(rvi,sig)
crucenegativo = ta.crossunder(rvi,sig)

if comprado
    // ver SL
    if low < SL
        strategy.close("BUY",comment="SL")
        
        
if comprado    
    //ver tp
    if high > TP
        strategy.close("BUY",comment="TP")
        
       
    
    
    
if not comprado and not vendido
    if crucepositivo and esalcista
        strategy.entry("BUY",strategy.long)
        SL := low - (atr * atrSL)
        TP := high + (atr * atrTP)
        alert("BUY",alert.freq_once_per_bar)



//---------------

if vendido
    // ver SL
    if high > SL
        strategy.close("SELL",comment="SL")
        
        
if vendido    
    //ver tp
    if low < TP
        strategy.close("SELL",comment="TP")
        
       

if not vendido and not comprado
    if crucenegativo and bajista
        strategy.entry("SELL",strategy.short)
        SL := high + (atr * atrSL)
        TP := low - (atr * atrTP)
        alert("SELL",alert.freq_once_per_bar)







//----------------

//plotshape(comprado,style=shape.xcross)
plot( comprado ? SL : na, color=color.red,style=plot.style_circles)
plot( comprado ? TP : na, color=color.blue,style=plot.style_circles)

plot( ta.ema(close,ema1),color=color.orange)
plot( ta.ema(close,ema2),color=color.yellow)


plot( vendido ? SL : na, color=color.red,style=plot.style_circles)
plot( vendido ? TP : na, color=color.blue,style=plot.style_circles)


अधिक