यह आरएसआई, एमएसीडी और मूविंग एवरेज का उपयोग करने वाली एक संयोजन रणनीति है। इसमें आरएसआई से ओवरबॉट/ओवरसोल्ड सिग्नल, एमएसीडी की संवेदनशीलता और प्रवेश बिंदुओं को निर्धारित करते समय मूविंग एवरेज के संकेतक प्रभाव शामिल हैं।
रणनीति में मुख्य रूप से निम्नलिखित चार शर्तों का आकलन किया गया है ताकि लंबी प्रविष्टि का निर्णय लिया जा सकेः
जब निम्नलिखित दो बाहर निकलने की शर्तें पूरी हो जाती हैं, तो रणनीति स्टॉप लॉस के लिए पदों को बंद कर देगी:
इस प्रकार रणनीति समय पर हानि को रोकती है और लाभ लेने या वापसी के समय भारी नुकसान से बचती है।
इस रणनीति का सबसे बड़ा लाभ संकेतकों के संयोजन में निहित है, प्रत्येक संकेतक के गुणों को पूरी तरह से खेलते हुएः
आरएसआई के लागू होने से सीमाबद्ध बाजारों में बार-बार पद खोलने से होने वाले लेनदेन शुल्क के नुकसान से बचा जा सकता है।
एमएसीडी हिस्टोग्राम संकेतक की संवेदनशीलता पलटने के बिंदुओं को समय पर कैप्चर करना सुनिश्चित करती है।
चलती औसत अल्पकालिक बाजार शोर को फ़िल्टर करती है और सूचक प्रभाव को पूर्णता देती है।
इस रणनीति के मुख्य जोखिमों में निम्नलिखित शामिल हैंः
उच्च प्रतिगमन जोखिम. प्रवृत्ति के बाद की रणनीतियों की तरह चलती औसत का सबसे बड़ा जोखिम प्रवृत्ति उलटने के कारण बड़ा पुलबैक है। इसे स्थिति आकार, स्टॉप लॉस आदि के माध्यम से सक्रिय रूप से नियंत्रित किया जा सकता है।
पैरामीटर अनुकूलन में कठिनाई। बहु-निर्देशक संयुक्त रणनीतियों में पैरामीटर सेटिंग और अनुकूलन में अधिक कठिनाई होती है। आगे बढ़ने, आनुवंशिक एल्गोरिथ्म जैसे तरीकों को अनुकूलित मापदंडों के लिए अपनाया जा सकता है।
इस रणनीति को निम्नलिखित पहलुओं में और अधिक अनुकूलित किया जा सकता हैः
झूठे संकेतों से बचने के लिए अतिरिक्त फ़िल्टर बढ़ाएं, उदाहरण के लिए वॉल्यूम, अस्थिरता संकेतक आदि के साथ संयोजन करें।
परीक्षण मापदंडों में भिन्नता अधिक उत्पादों के अनुकूल है। अधिक किस्मों के अनुकूल मापदंडों को समायोजित करें।
चलती औसत पैरामीटर सेटिंग्स का अनुकूलन करें. विभिन्न लंबाई मापदंडों के अंतर का परीक्षण करें.
अनुकूलनशील चलती औसत का शोध करें। बाजार व्यवस्थाओं के आधार पर विभिन्न पैरामीटर सेट स्विच करें।
निष्कर्ष में, यह रणनीति चलती औसत और प्रवृत्ति के बाद की रणनीति का एक विशिष्ट अनुकूलित संस्करण है। यह समय प्रविष्टि और हानि को रोकने के पहलुओं में एमएसीडी और आरएसआई जैसे मुख्यधारा के संकेतकों की ताकत को अवशोषित करता है। अगले कदम पैरामीटर अनुकूलन और जोखिम नियंत्रण जैसे दृष्टिकोणों से सुधार कर सकते हैं ताकि रणनीति अधिक मजबूत और अधिक उत्पादों के लिए अनुकूलन योग्य हो सके, जिससे उच्च स्थिरता हो।
/*backtest start: 2022-12-29 00:00:00 end: 2024-01-04 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Improved RSI MACD Strategy with Moving Averages", overlay=true) // Inputs src = input(close, title="RSI Source") // RSI Settings lengthRSI = input.int(14, minval=1) // Stop Loss Settings stopLossPct = input.float(0.09, title="Stop Loss Percentage") takeProfitPct = input.float(0.15, title="Take Profit Percentage") // MACD Settings fastlen = input(12) slowlen = input(26) siglen = input(9) // Strategy Settings longEntry = input(0, title="Long Entry Level") exitLevel = input(0, title="Exit Level") // EMA Settings emaShortLength = input(8, title="Short EMA Length") emaLongLength = input(21, title="Long EMA Length") atrMultiplier = input.float(2, title="atrMultiplier") atrLength = input.int(20, title="atrLength") // Indicators rsi1 = ta.rsi(src, lengthRSI) [macd, signal, hist] = ta.macd(src, fastlen, slowlen, siglen) // Calculate EMAs emaShort = ta.ema(src, emaShortLength) emaLong = ta.ema(src, emaLongLength) // Calculate ATR atr = ta.atr(atrLength) // Variables var bool canEnterLong = na // Strategy conditions longCondition = hist > longEntry and rsi1 > 50 and emaShort > emaLong and close > emaLong + atrMultiplier * atr // Entries and Exits if hist < exitLevel and emaShort < emaLong canEnterLong := true strategy.close("Long") // Store last entry price var lastEntryPrice = float(na) var lastEntryPrice2 = float(na) if longCondition strategy.entry("Long", strategy.long) canEnterLong := false lastEntryPrice := close if lastEntryPrice < close lastEntryPrice := close // Calculate Stop Loss and Take Profit Levels based on last entry price stopLossLevel = lastEntryPrice * (1 - stopLossPct) // Check for stop loss and take profit levels and close position if triggered if (strategy.position_size > 0) last_buy = strategy.opentrades[0] if (close < stopLossLevel) strategy.close("Long", comment="Stop Loss Triggered") if (close * (1 - takeProfitPct) > strategy.opentrades.entry_price(strategy.opentrades - 1) ) strategy.close("Long", comment="Take Profit Triggered")