आरएसआई एमएसीडी मूविंग एवरेज रणनीति में सुधार

लेखक:चाओझांग, दिनांकः 2024-01-05 16:11:23
टैगः

img

अवलोकन

यह आरएसआई, एमएसीडी और मूविंग एवरेज का उपयोग करने वाली एक संयोजन रणनीति है। इसमें आरएसआई से ओवरबॉट/ओवरसोल्ड सिग्नल, एमएसीडी की संवेदनशीलता और प्रवेश बिंदुओं को निर्धारित करते समय मूविंग एवरेज के संकेतक प्रभाव शामिल हैं।

रणनीति तर्क

रणनीति में मुख्य रूप से निम्नलिखित चार शर्तों का आकलन किया गया है ताकि लंबी प्रविष्टि का निर्णय लिया जा सकेः

  1. एमएसीडी हिस्टोग्राम सेट लंबे प्रवेश स्तर से अधिक है;
  2. आरएसआई 50 से ऊपर है, जो ओवरबॉट स्थिति को दर्शाता है;
  3. लघु अवधि के ईएमए लंबे समय के ईएमए के ऊपर पार करते हुए स्वर्ण क्रॉस बनाते हैं।
  4. बंद मूल्य दीर्घकालिक ईएमए के माध्यम से टूटता है और दीर्घकालिक ईएमए प्लस एटीआर स्टॉप लॉस रेंज से अधिक है।

जब निम्नलिखित दो बाहर निकलने की शर्तें पूरी हो जाती हैं, तो रणनीति स्टॉप लॉस के लिए पदों को बंद कर देगी:

  1. एमएसीडी हिस्टोग्राम सेट स्टॉप लॉस स्तर से कम है;
  2. दीर्घकालिक ईएमए के नीचे अल्पकालिक ईएमए पार हो जाता है, जिससे मृत क्रॉस बनता है।

इस प्रकार रणनीति समय पर हानि को रोकती है और लाभ लेने या वापसी के समय भारी नुकसान से बचती है।

लाभ विश्लेषण

इस रणनीति का सबसे बड़ा लाभ संकेतकों के संयोजन में निहित है, प्रत्येक संकेतक के गुणों को पूरी तरह से खेलते हुएः

  1. आरएसआई के लागू होने से सीमाबद्ध बाजारों में बार-बार पद खोलने से होने वाले लेनदेन शुल्क के नुकसान से बचा जा सकता है।

  2. एमएसीडी हिस्टोग्राम संकेतक की संवेदनशीलता पलटने के बिंदुओं को समय पर कैप्चर करना सुनिश्चित करती है।

  3. चलती औसत अल्पकालिक बाजार शोर को फ़िल्टर करती है और सूचक प्रभाव को पूर्णता देती है।

जोखिम और समाधान

इस रणनीति के मुख्य जोखिमों में निम्नलिखित शामिल हैंः

  1. उच्च प्रतिगमन जोखिम. प्रवृत्ति के बाद की रणनीतियों की तरह चलती औसत का सबसे बड़ा जोखिम प्रवृत्ति उलटने के कारण बड़ा पुलबैक है। इसे स्थिति आकार, स्टॉप लॉस आदि के माध्यम से सक्रिय रूप से नियंत्रित किया जा सकता है।

  2. पैरामीटर अनुकूलन में कठिनाई। बहु-निर्देशक संयुक्त रणनीतियों में पैरामीटर सेटिंग और अनुकूलन में अधिक कठिनाई होती है। आगे बढ़ने, आनुवंशिक एल्गोरिथ्म जैसे तरीकों को अनुकूलित मापदंडों के लिए अपनाया जा सकता है।

उन्नयन दिशा-निर्देश

इस रणनीति को निम्नलिखित पहलुओं में और अधिक अनुकूलित किया जा सकता हैः

  1. झूठे संकेतों से बचने के लिए अतिरिक्त फ़िल्टर बढ़ाएं, उदाहरण के लिए वॉल्यूम, अस्थिरता संकेतक आदि के साथ संयोजन करें।

  2. परीक्षण मापदंडों में भिन्नता अधिक उत्पादों के अनुकूल है। अधिक किस्मों के अनुकूल मापदंडों को समायोजित करें।

  3. चलती औसत पैरामीटर सेटिंग्स का अनुकूलन करें. विभिन्न लंबाई मापदंडों के अंतर का परीक्षण करें.

  4. अनुकूलनशील चलती औसत का शोध करें। बाजार व्यवस्थाओं के आधार पर विभिन्न पैरामीटर सेट स्विच करें।

निष्कर्ष

निष्कर्ष में, यह रणनीति चलती औसत और प्रवृत्ति के बाद की रणनीति का एक विशिष्ट अनुकूलित संस्करण है। यह समय प्रविष्टि और हानि को रोकने के पहलुओं में एमएसीडी और आरएसआई जैसे मुख्यधारा के संकेतकों की ताकत को अवशोषित करता है। अगले कदम पैरामीटर अनुकूलन और जोखिम नियंत्रण जैसे दृष्टिकोणों से सुधार कर सकते हैं ताकि रणनीति अधिक मजबूत और अधिक उत्पादों के लिए अनुकूलन योग्य हो सके, जिससे उच्च स्थिरता हो।


/*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")

अधिक