आरएसआई ईएमए क्रॉसओवर रणनीति

लेखक:चाओझांग, दिनांकः 2023-10-25 11:46:49
टैगः

img

अवलोकन

यह रणनीति प्रवेश और निकास के लिए प्रवृत्ति दिशा निर्धारित करने के लिए आरएसआई संकेतक के साथ संयुक्त, घातीय चलती औसत (ईएमए) क्रॉसओवर के सिद्धांत का उपयोग करती है।

रणनीति तर्क

यह रणनीति विभिन्न अवधि के साथ 3 ईएमए लाइनों का उपयोग करती है - तेज, मध्यम और धीमी लाइनें। जब तेज ईएमए मध्यम ईएमए के ऊपर पार करता है तो एक खरीद संकेत उत्पन्न होता है, और जब तेज ईएमए मध्यम ईएमए के नीचे पार करता है तो एक बिक्री संकेत उत्पन्न होता है।

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

रणनीति के लिए खरीद की शर्तें निम्नलिखित हैंः

  1. तेजी से, मध्यम और धीमी ईएमए रेखाओं से ऊपर की कीमतों का क्रॉसिंग
  2. आरएसआई ओवरसोल्ड थ्रेशोल्ड से ऊपर

बिक्री की शर्तें इस प्रकार हैं:

  1. मध्यम ईएमए के नीचे तेजी से ईएमए पार करना
  2. आरएसआई मध्यम रेखा के नीचे पार करना

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

लाभ विश्लेषण

यह रणनीति ईएमए क्रॉसओवर और आरएसआई को ट्रेंड और ओवरबॉट/ओवरसोल्ड दोनों स्तरों को मापने के लिए जोड़ती है, झूठे ब्रेकआउट और शोर वाले ट्रेडों को फ़िल्टर करती है। 3 ईएमए लाइनों का उपयोग करने से स्पष्ट ट्रेंड पूर्वाग्रह मिलता है।

आरएसआई सेटिंग्स रणनीति को लाभदायक ओवरबॉट/ओवरसोल्ड क्षेत्रों में प्रवेश और निकास का समय देने की अनुमति देती हैं।

ट्रेडों में प्रवेश करने से पहले कीमत के लिए सभी 3 ईएमए लाइनों को तोड़ने की आवश्यकता को रोकने में मदद मिलती है।

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

सभी बैकटेस्ट की गई रणनीतियों की तरह, इस रणनीति को बैकटेस्ट ओवरफिटिंग का खतरा है। लाइव ट्रेडिंग में बदलती बाजार स्थितियां अनुकूलित मापदंडों को अनुपयुक्त बना सकती हैं।

सीमांत बाजारों में, रणनीति गलत संकेत उत्पन्न कर सकती है और घाटे का सामना कर सकती है।

खराब आरएसआई पैरामीटर ट्यूनिंग से खोए हुए अवसर या झूठे संकेत हो सकते हैं।

बढ़ोतरी के अवसर

  1. शोर से बचने के लिए अधिक समय सीमा पर सत्यापन जोड़ने पर विचार करें।

  2. संकेत को मान्य करने के लिए ट्रेडों में प्रवेश करने से पहले ईएमए लाइनों के पुनः परीक्षण की प्रतीक्षा करें।

  3. संयुक्त संकेत की पुष्टि के लिए अन्य संकेतकों जैसे एमएसीडी, बोलिंगर बैंड को शामिल करें।

  4. मजबूती के लिए मापदंडों को अनुकूलित करने के लिए मशीन लर्निंग का उपयोग करें।

  5. अनिश्चित रुझानों से जल्दी बाहर निकलने के लिए स्टॉप लॉस जोड़ने पर विचार करें।

निष्कर्ष

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


/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © chadsadachai

//@version=5
strategy("EMA Cross V1", overlay= true)

//rsi
length = input.int(title = "Rsi Lenght" , defval=26 , minval=1, maxval=50)
overS = input.int(title = "Rsi OVS line" , defval=30 , minval=1, maxval=40)
overB = input.int(title = "Rsi OVB line" , defval=70 , minval=1, maxval=100)
mLine = input.int(title = "Rsi Medium line" , defval=42 , minval=1, maxval=60)
price = close
vrsi = ta.rsi(price, length)
co = vrsi >= mLine and vrsi < overB 
cu = ta.crossunder(vrsi, overB)
//ema
F = input.int(title = "EMA Fast" , defval=17 , minval=1, maxval=50)
M = input.int(title = "EMA Medium" , defval=35, minval=1, maxval=100)
S = input.int(title = "EMA Slow" , defval=142, minval=1, maxval=200)
emaF = ta.ema(price , F)
emaM = ta.ema(price , M)
emaS = ta.ema(price , S)

//plot
plot(emaF , color = color.green , linewidth=1)
plot(emaM , color = color.yellow , linewidth=1)
plot(emaS , color = color.red , linewidth=1)

//Time Stamp
start = timestamp(input.int(title = "Start Year" , defval=2011 , minval=2011, maxval=2025), input.int(title = "Start Month" , defval=1 , minval=1, maxval=12), input.int(title = "Start Day" , defval=1 , minval=1, maxval=31), 0, 0)
end = timestamp(input.int(title = "End Year" , defval=2025 , minval=2011, maxval=2025), input.int(title = "End Month" , defval=1 , minval=1, maxval=12), input.int(title = "End Day" , defval=1 , minval=1, maxval=31), 0, 0)
// years = input.int(title = "Year" , defval=2018 , minval=2011, maxval=2025)
// months = input.int(title = "Month" , defval=1 , minval=1, maxval=12)
// days = input.int(title = "Day" , defval=1 , minval=1, maxval=31)

//longCondition Default
// longCondition1 = EMA_Fast >= EMA_Slow and EMA_Fast >= EMA_Medium//ta.crossover(EMA_Fast, EMA_Slow)  EMA_Fast > EMA_Slow and EMA_Medium > EMA_Slow
// longCondition3 = price >= EMA_Medium and price > EMA_Slow
// longCondition2 = vrsi >= overSold and vrsi <= overBought 

//longCondition & shortCondition ETHUSD
// 1.price > emaF > emaM > emaS
// 2.rsi overcross overS
longC1 = price > emaF and price > emaM and price > emaS 
// longC1 = ta.crossover(emaF, emaM)
longC2 = if longC1
    co
// shortC1 = EMA_Fast < EMA_Medium //and EMA_Fast < EMA_Slow and EMA_Medium < EMA_Slow //and cu
// shortC2 = overBought > vrsi //and vrsi < overBought //overSold < vrsi and vrsi < mediumLine

// exitLong Condition
// 1.price < emaF < emaM < emaS
// 2.rsi overcross mediumLine
exitLong1 = ta.crossunder(emaF, emaM) //or emaF < emaM//and price < emaM and price < emaF
exitLong2 = ta.crossunder(vrsi,mLine)
//exitLong3 = price < emaM
//strategy.entry
if time >=start and time <=end
    strategy.entry("Buy", strategy.long , when = longC1 and longC2)

// if(exitLong1 or exitLong2)
strategy.close("Buy" , when = exitLong1 or exitLong2)
    
// exitShort1 = EMA_Fast > EMA_Medium
// //exitShort2 = ta.crossover(vrsi , mediumLine) 
// exitShort2 = ta.crossunder (vrsi,mediumLine)
// strategy.close("Short" , when = exitShort1 or exitShort2)
// //shortCondition = cu


// //if (shortCondition1 and shortCondition2)
//     //strategy.entry("My Short Entry Id", strategy.short)


अधिक