यह रणनीति प्रवेश और निकास के लिए प्रवृत्ति दिशा निर्धारित करने के लिए आरएसआई संकेतक के साथ संयुक्त, घातीय चलती औसत (ईएमए) क्रॉसओवर के सिद्धांत का उपयोग करती है।
यह रणनीति विभिन्न अवधि के साथ 3 ईएमए लाइनों का उपयोग करती है - तेज, मध्यम और धीमी लाइनें। जब तेज ईएमए मध्यम ईएमए के ऊपर पार करता है तो एक खरीद संकेत उत्पन्न होता है, और जब तेज ईएमए मध्यम ईएमए के नीचे पार करता है तो एक बिक्री संकेत उत्पन्न होता है।
इस रणनीति में ओवरबॉट और ओवरसोल्ड स्थितियों को मापने के लिए आरएसआई संकेतक भी शामिल है। आरएसआई एक अवधि में एक परिसंपत्ति की सापेक्ष ताकत दिखाने के लिए औसत अप दिनों और औसत डाउन दिनों के अनुपात की गणना करता है। ओवरबोल्ड थ्रेशोल्ड से ऊपर के मूल्य ओवरबोल्ड स्थितियों का संकेत देते हैं, जबकि ओवरसोल्ड थ्रेशोल्ड से नीचे के मूल्य ओवरसोल्ड स्थितियों का संकेत देते हैं।
रणनीति के लिए खरीद की शर्तें निम्नलिखित हैंः
बिक्री की शर्तें इस प्रकार हैं:
ट्रेंड दिशा निर्धारित करने के लिए ईएमए क्रॉसओवर का उपयोग करते हुए आरएसआई के साथ मिलकर अल्पकालिक उलट अवसरों की पहचान करने के लिए, यह रणनीति ट्रेंड फॉलोइंग और मीडियन रिवर्सन दोनों अवधारणाओं का उपयोग करती है।
यह रणनीति ईएमए क्रॉसओवर और आरएसआई को ट्रेंड और ओवरबॉट/ओवरसोल्ड दोनों स्तरों को मापने के लिए जोड़ती है, झूठे ब्रेकआउट और शोर वाले ट्रेडों को फ़िल्टर करती है। 3 ईएमए लाइनों का उपयोग करने से स्पष्ट ट्रेंड पूर्वाग्रह मिलता है।
आरएसआई सेटिंग्स रणनीति को लाभदायक ओवरबॉट/ओवरसोल्ड क्षेत्रों में प्रवेश और निकास का समय देने की अनुमति देती हैं।
ट्रेडों में प्रवेश करने से पहले कीमत के लिए सभी 3 ईएमए लाइनों को तोड़ने की आवश्यकता को रोकने में मदद मिलती है।
सभी बैकटेस्ट की गई रणनीतियों की तरह, इस रणनीति को बैकटेस्ट ओवरफिटिंग का खतरा है। लाइव ट्रेडिंग में बदलती बाजार स्थितियां अनुकूलित मापदंडों को अनुपयुक्त बना सकती हैं।
सीमांत बाजारों में, रणनीति गलत संकेत उत्पन्न कर सकती है और घाटे का सामना कर सकती है।
खराब आरएसआई पैरामीटर ट्यूनिंग से खोए हुए अवसर या झूठे संकेत हो सकते हैं।
शोर से बचने के लिए अधिक समय सीमा पर सत्यापन जोड़ने पर विचार करें।
संकेत को मान्य करने के लिए ट्रेडों में प्रवेश करने से पहले ईएमए लाइनों के पुनः परीक्षण की प्रतीक्षा करें।
संयुक्त संकेत की पुष्टि के लिए अन्य संकेतकों जैसे एमएसीडी, बोलिंगर बैंड को शामिल करें।
मजबूती के लिए मापदंडों को अनुकूलित करने के लिए मशीन लर्निंग का उपयोग करें।
अनिश्चित रुझानों से जल्दी बाहर निकलने के लिए स्टॉप लॉस जोड़ने पर विचार करें।
इस रणनीति में ईएमए क्रॉसओवर और आरएसआई को जोड़कर ट्रेंड की पहचान की जाती है जबकि अल्पकालिक उलटफेर का लाभ उठाया जाता है। यह ट्रेंड फॉलो और मीडियन रिवर्सन दोनों अवधारणाओं का कुशलता से उपयोग करता है। सिग्नल वैलिडेशन, पैरामीटर ट्यूनिंग, स्टॉप लॉस आदि के माध्यम से अनुकूलन के लिए गुंजाइश है। लेकिन बैकटेस्ट ओवरफिटिंग पर विचार करने की आवश्यकता है, और लाइव प्रदर्शन का मूल्यांकन किया जाना चाहिए। कुल मिलाकर, यह सीखने के लिए एक उपयोगी संदर्भ के रूप में कार्य करता है, लेकिन लाइव बाजारों में आगे सत्यापन की आवश्यकता होती है।
/*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)