यह रणनीति एक मिश्रित ट्रेडिंग प्रणाली है जो गति संकेतक आरएसआई और प्रवृत्ति संकेतक ईएमए को जोड़ती है। 1 मिनट और 5 मिनट के दोनों समय सीमाओं पर काम करना, यह आरएसआई ओवरबॉट / ओवरसोल्ड संकेतों और ट्रिपल ईएमए प्रवृत्ति निर्धारण के आधार पर ट्रेडिंग निर्णय लेता है। रणनीति में प्रवृत्ति के बाद और औसत प्रतिगमन दोनों विशेषताएं शामिल हैं, जिससे यह विभिन्न बाजार वातावरण में व्यापार के अवसरों को पकड़ने में सक्षम हो जाता है।
यह रणनीति 21/50/200-दिवसीय ट्रिपल ईएमए को ट्रेंड जजमेंट बेंचमार्क के रूप में उपयोग करती है, जो एक संशोधित आरएसआई संकेतक (चेबिशेव विधि का उपयोग करके गणना की जाती है) के साथ संयुक्त है ताकि बाजार के ओवरबॉट / ओवरसोल्ड स्थितियों की पहचान की जा सके। 1 मिनट की समय सीमा पर, यह शॉर्ट पोजीशन शुरू करता है जब आरएसआई 94 से ऊपर टूट जाता है और 4 से नीचे गिर जाता है, जब आरएसआई 50 पर लौटता है तो ब्रेक एवन स्टॉप सेट होता है। 5 मिनट की समय सीमा पर, यह लंबी पोजीशन शुरू करता है जब कीमत 200-दिवसीय ईएमए से नीचे गिरने के बाद उछाल लेती है, जब आरएसआई ओवरबॉट या मध्यवर्ती से नीचे टूट जाता है तो बंद हो जाती है। स्थिति प्रबंधन चर inPositionLong और inPositionShort में दोहराए गए प्रविष्टियों को रोकते हैं।
रणनीति कई तकनीकी संकेतकों और बहु-समय-सीमा विश्लेषण के संयोजन के माध्यम से व्यापार स्थिरता और विश्वसनीयता को बढ़ाती है। जबकि कुछ जोखिम मौजूद हैं, उन्हें उचित स्थिति प्रबंधन और स्टॉप-लॉस तंत्र के माध्यम से प्रभावी ढंग से नियंत्रित किया जा सकता है। रणनीति में महत्वपूर्ण अनुकूलन क्षमता है, और अतिरिक्त तकनीकी संकेतकों और अनुकूलन मापदंडों को पेश करके इसके प्रदर्शन में और सुधार किया जा सकता है।
/*backtest start: 2023-11-12 00:00:00 end: 2024-07-10 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Combined RSI Primed and 3 EMA Strategy", overlay=true) // Input for EMA lengths emaLength1 = input(21, title="EMA Length 1") emaLength2 = input(50, title="EMA Length 2") emaLength3 = input(200, title="EMA Length 3") // Input for RSI settings rsiLength = input(14, title="RSI Length") rsiOverbought = input(94, title="RSI Overbought Level") rsiNeutral = input(50, title="RSI Neutral Level") rsiOversold = input(4, title="RSI Oversold Level") // Calculate EMAs ema1 = ta.ema(close, emaLength1) ema2 = ta.ema(close, emaLength2) ema3 = ta.ema(close, emaLength3) // Calculate RSI using Chebyshev method from RSI Primed rsi(source) => up = math.max(ta.change(source), 0) down = -math.min(ta.change(source), 0) rs = up / down rsiValue = down == 0 ? 100 : 100 - (100 / (1 + rs)) rsiValue rsiValue = rsi(close) // Plot EMAs plot(ema1, color=color.red, title="EMA 21") plot(ema2, color=color.white, title="EMA 50") plot(ema3, color=color.blue, title="EMA 200") // Plot RSI for visual reference hline(rsiOverbought, "Overbought", color=color.red) hline(rsiNeutral, "Neutral", color=color.gray) hline(rsiOversold, "Oversold", color=color.green) plot(rsiValue, color=color.blue, title="RSI") // Trading logic with position management var bool inPositionShort = false var bool inPositionLong = false // Trading logic for 1-minute timeframe if (rsiValue > rsiOverbought and not inPositionShort) strategy.entry("Sell", strategy.short) inPositionShort := true if (rsiValue < rsiOversold and inPositionShort) strategy.close("Sell") inPositionShort := false if (ta.crossover(rsiValue, rsiNeutral) and inPositionShort) strategy.exit("Break Even", "Sell", stop=close) // Trading logic for 5-minute timeframe var float lastBearishClose = na if (close < ema3 and close[1] >= ema3) // Check if the current close is below EMA200 lastBearishClose := close if (not na(lastBearishClose) and close > lastBearishClose and not inPositionLong) strategy.entry("Buy", strategy.long) inPositionLong := true if (rsiValue > rsiOverbought and inPositionLong) strategy.close("Buy") inPositionLong := false if (ta.crossunder(rsiValue, rsiNeutral) and inPositionLong) strategy.exit("Break Even", "Buy", stop=close) lastBearishClose := na // Reset after trade execution