RVI और EMA पर आधारित बिटकॉइन ट्रेडिंग रणनीति


निर्माण तिथि: 2024-02-22 13:50:17 अंत में संशोधित करें: 2024-02-22 13:50:17
कॉपी: 0 क्लिक्स: 776
1
ध्यान केंद्रित करना
1617
समर्थक

RVI और EMA पर आधारित बिटकॉइन ट्रेडिंग रणनीति

अवलोकन

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

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

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

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

  3. केवल जब आरवीआई लाभ देता है और ईएमए इसे नीलामी के रूप में देखता है, तो अधिक संचालन किया जाता है; केवल जब आरवीआई लाभ देता है और ईएमए इसे गिरावट के रूप में देखता है, तो शून्य संचालन किया जाता है।

  4. अधिक करने के बाद रोक हाल ही में कम से नीचे स्थित हैatr*atrSL दूरी, बंदरगाह निकटतम ऊंचाई पर स्थित है*atrTP दूरी; बंद होने के बाद की हानि निकटतम ऊंचाई से ऊपर हैatr*atrSL दूरी, स्टॉपस्टॉप निकटतम निचले बिंदु से नीचे है*atrTP दूरी

श्रेष्ठता विश्लेषण

  1. ट्रेंड और ओवरबॉय ओवरसोल सूचकांकों के संयोजन से, झूठे ब्रेक से बचें।

  2. गतिशील स्टॉप-लॉस स्टॉप-अप, जो आपको स्थिति को समझने में मदद करता है।

  3. ट्रेडिंग सिग्नल सटीकता के साथ ट्रेंड क्वालिटी और ओवरबॉय ओवरसोल को ध्यान में रखते हुए।

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

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

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

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

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

अनुकूलन दिशा

  1. ट्रेडिंग निर्णयों को अधिक सटीक बनाने के लिए, अधिक सहायक संकेतकों को शामिल करने पर विचार किया जा सकता है जो प्रवृत्ति के गुणों का आकलन करते हैं, जैसे कि आघात सूचक, ब्रीनिंग लाइन चैनल आदि।

  2. अस्थिरता के संकेतकों जैसे कि एटीआर के साथ, स्टॉप लॉस स्टॉप दूरी को गतिशील रूप से समायोजित किया जा सकता है, और बड़े उतार-चढ़ाव के दौरान स्टॉप लॉस रेंज को उचित रूप से छूट दी जा सकती है।

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

संक्षेप

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

रणनीति स्रोत कोड
/*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)