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