इस रणनीति में ईएमए, एमएसीडी, वीडब्ल्यूएपी और आरएसआई जैसे कई संकेतकों को मिलाकर उच्च संभावना वाले ट्रेडिंग अवसरों को कैप्चर किया जाता है। यह ईएमए का उपयोग ट्रेंड की दिशा, गति के लिए एमएसीडी, वॉल्यूम के लिए वीडब्ल्यूएपी और ओवरबॉट और ओवरसोल्ड स्थितियों के लिए आरएसआई निर्धारित करने के लिए करता है। रणनीति लाभ की रक्षा के लिए एक ट्रेलिंग स्टॉप लॉस का उपयोग करते हुए इन संकेतकों के संयोजन के आधार पर खरीद और बिक्री संकेत उत्पन्न करती है।
यह रणनीति बाजार की स्थितियों का आकलन करने और लाभ की रक्षा के लिए ट्रेडिंग सिग्नल उत्पन्न करने के लिए कई संकेतकों को जोड़ती है। रणनीति मापदंडों को उपयोगकर्ता की प्राथमिकताओं के अनुसार समायोजित किया जा सकता है, जिससे रणनीति की लचीलापन बढ़ जाती है। हालांकि, रणनीति चंचल बाजारों में खराब प्रदर्शन कर सकती है और प्रवृत्ति उलट के दौरान बड़े ड्रॉडाउन का सामना कर सकती है, इसलिए इसे विभिन्न बाजारों और उपकरणों के लिए अनुकूलित और बेहतर बनाने की आवश्यकता है। भविष्य के अनुकूलन में रणनीति की स्थिरता और लाभप्रदता में सुधार के लिए अधिक फ़िल्टरिंग स्थितियों, गतिशील स्टॉप लॉस विधियों, पैरामीटर अनुकूलन और स्थिति आकार को जोड़ने पर विचार किया जा सकता है।
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Intraday Strategy", overlay=true) // Input parameters emaLength = input.int(50, title="EMA Length") macdShort = input.int(12, title="MACD Short Period") macdLong = input.int(26, title="MACD Long Period") macdSignal = input.int(9, title="MACD Signal Period") rsiLength = input.int(14, title="RSI Length") rsiOverbought = input.int(70, title="RSI Overbought Level") rsiOversold = input.int(30, title="RSI Oversold Level") risk = input.float(1, title="Risk Percentage", minval=0.1, step=0.1) trailOffset = input.float(0.5, title="Trailing Stop Offset", minval=0.1, step=0.1) // Calculating indicators ema = ta.ema(close, emaLength) [macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal) rsi = ta.rsi(close, rsiLength) vwap = ta.vwap(close) // Entry conditions longCondition = ta.crossover(macdLine, signalLine) and close > ema and rsi < rsiOverbought and close > vwap shortCondition = ta.crossunder(macdLine, signalLine) and close < ema and rsi > rsiOversold and close < vwap // Exit conditions longExitCondition = ta.crossunder(macdLine, signalLine) or close < ema shortExitCondition = ta.crossover(macdLine, signalLine) or close > ema // Position sizing based on risk percentage capital = strategy.equity positionSize = (capital * (risk / 100)) / close // Executing trades if (longCondition) strategy.entry("Long", strategy.long, qty=1) if (shortCondition) strategy.entry("Short", strategy.short, qty=1) if (longExitCondition) strategy.close("Long") if (shortExitCondition) strategy.close("Short") // Trailing stop loss if (strategy.position_size > 0) strategy.exit("Trailing Stop Long", from_entry="Long", trail_price=close, trail_offset=trailOffset) if (strategy.position_size < 0) strategy.exit("Trailing Stop Short", from_entry="Short", trail_price=close, trail_offset=trailOffset) // Plotting indicators plot(ema, title="EMA", color=color.blue) hline(rsiOverbought, "Overbought", color=color.red) hline(rsiOversold, "Oversold", color=color.green) plot(rsi, title="RSI", color=color.purple) plot(vwap, title="VWAP", color=color.orange)