डबल क्रॉस ट्रेंड फॉलोइंग रणनीति: इंडेक्स मूविंग एवरेज और एमएसीडी सहयोगी ट्रेडिंग सिस्टम

EMA MACD DIF DEA TP SL RR
निर्माण तिथि: 2025-01-17 16:06:16 अंत में संशोधित करें: 2025-01-17 16:06:16
कॉपी: 0 क्लिक्स: 374
1
ध्यान केंद्रित करना
1617
समर्थक

डबल क्रॉस ट्रेंड फॉलोइंग रणनीति: इंडेक्स मूविंग एवरेज और एमएसीडी सहयोगी ट्रेडिंग सिस्टम

अवलोकन

यह रणनीति एक प्रवृत्ति ट्रैकिंग ट्रेडिंग प्रणाली है जो चलती औसत और एमएसीडी दोहरे तकनीकी संकेतकों को जोड़ती है। यह मुख्य रूप से EMA9 मूविंग एवरेज और कीमत के प्रतिच्छेदन के माध्यम से बाजार के रुझान को पकड़ता है, साथ ही MACD संकेतक में फास्ट लाइन (DIF) और स्लो लाइन (DEA) के प्रतिच्छेदन को भी पकड़ता है। इसके साथ ही, यह रणनीति पिछली 5 K-लाइनों पर आधारित एक अनुकूली स्टॉप-लॉस पद्धति को अपनाती है और लाभ लक्ष्य निर्धारित करने के लिए 3.5 गुना जोखिम-वापसी अनुपात का उपयोग करती है, जिससे एक पूर्ण ट्रेडिंग प्रणाली बनती है।

रणनीति सिद्धांत

रणनीति का मूल तर्क दो दिशाओं में विभाजित है: दीर्घ और लघु:

  1. लंबी शर्तें: जब समापन मूल्य नीचे से ऊपर तक EMA9 को तोड़ता है, और MACD की DIF रेखा नीचे से ऊपर तक DEA रेखा को पार करती है, तो सिस्टम एक लंबा संकेत भेजता है।
  2. शॉर्ट सेलिंग की स्थिति: जब समापन मूल्य ऊपर से नीचे तक EMA9 से नीचे गिरता है, और MACD की DIF रेखा ऊपर से नीचे तक DEA रेखा को पार करती है, तो सिस्टम शॉर्ट सेलिंग संकेत भेजता है।
  3. जोखिम प्रबंधन:
    • लंबे ऑर्डर का स्टॉप लॉस पिछली 5 K लाइनों के निम्नतम बिंदु से नीचे सेट किया गया है
    • शॉर्ट ऑर्डर के लिए स्टॉप लॉस पिछली 5 K-लाइनों के उच्चतम बिंदु से ऊपर सेट किया गया है
    • लाभ लक्ष्य स्टॉप लॉस दूरी का 3.5 गुना है

रणनीतिक लाभ

  1. दोहरी पुष्टि तंत्र: चलती औसत और एमएसीडी के समन्वित सहयोग के माध्यम से, झूठे संकेतों को प्रभावी ढंग से फ़िल्टर किया जा सकता है और लेनदेन की सटीकता में सुधार किया जा सकता है।
  2. अनुकूली स्टॉप लॉस: हाल के मूल्य उतार-चढ़ाव के आधार पर निर्धारित स्टॉप लॉस स्तर, बाजार की अस्थिरता के अनुसार सुरक्षा स्थिति को स्वचालित रूप से समायोजित कर सकता है।
  3. स्पष्ट जोखिम-वापसी अनुपात: 3.5 गुना का निश्चित जोखिम-वापसी अनुपात दीर्घावधि में स्थिर लाभ प्राप्त करने में मदद करता है।
  4. रणनीति का तर्क स्पष्ट है: प्रवेश और निकास की शर्तें स्पष्ट, समझने में आसान और क्रियान्वयन में आसान हैं।
  5. मजबूत अनुकूलनशीलता: मापदंडों को विभिन्न बाजार स्थितियों के अनुसार समायोजित किया जा सकता है।

रणनीतिक जोखिम

  1. अस्थिर बाजार का जोखिम: एकतरफा और अस्थिर बाजार में झूठे ब्रेकआउट अक्सर हो सकते हैं, जिससे लगातार स्टॉप लॉस हो सकता है।
  2. फिसलन जोखिम: तेजी वाले बाजार में, वास्तविक स्टॉप लॉस और लाभ मूल्य अपेक्षित मूल्यों से विचलित हो सकते हैं।
  3. पैरामीटर संवेदनशीलता: ईएमए और एमएसीडी की अवधि सेटिंग्स का रणनीति प्रदर्शन पर बहुत प्रभाव पड़ता है।
  4. प्रवृत्ति पर निर्भरता: स्पष्ट प्रवृत्ति के बिना बाजार के माहौल में रणनीतियाँ खराब प्रदर्शन कर सकती हैं।

रणनीति अनुकूलन दिशा

  1. ट्रेंड फ़िल्टर जोड़ें: आप लंबी अवधि के साथ ट्रेंड संकेतक पेश कर सकते हैं और केवल मुख्य ट्रेंड की दिशा में ही पोजीशन खोल सकते हैं।
  2. गतिशील जोखिम गुणक: बाजार की अस्थिरता के आधार पर जोखिम-लाभ अनुपात को स्वचालित रूप से समायोजित करता है।
  3. समय फ़िल्टर: कम तरलता अवधि से बचने के लिए ट्रेडिंग समय अवधि फ़िल्टर जोड़ें।
  4. स्थिति प्रबंधन अनुकूलन: स्थिति अनुपात को सिग्नल शक्ति के अनुसार गतिशील रूप से समायोजित किया जा सकता है।
  5. अस्थिरता सूचक का परिचय: स्टॉप लॉस दूरी को गतिशील रूप से समायोजित करने के लिए उपयोग किया जाता है।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2024-01-17 00:00:00
end: 2025-01-16 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

// =======================
// @version=6
strategy(title="MACD + EMA9 3 h",
     shorttitle="MACD+EMA9+StopTP_5candles",
     overlay=true,
     initial_capital=100000,    // Ajuste conforme desejar
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=200)      // Ajuste % de risco ou quantidade

// ----- Entradas (Inputs) -----
emaLen          = input.int(9,     "Período da EMA 9", minval=1)
macdFastLen     = input.int(12,    "Período MACD Rápido", minval=1)
macdSlowLen     = input.int(26,    "Período MACD Lento",  minval=1)
macdSignalLen   = input.int(9,     "Período MACD Signal", minval=1)
riskMultiplier  = input.float(3.5, "Fator de Multiplicação do Risco (TP)")
lookbackCandles = input.int(5,     "Quantidade de candles p/ Stop", minval=1)

// ----- Cálculo da EMA -----
ema9 = ta.ema(close, emaLen)

// ----- Cálculo do MACD -----
[macdLine, signalLine, histLine] = ta.macd(close, macdFastLen, macdSlowLen, macdSignalLen)
// DIF cruza DEA para cima ou para baixo
macdCrossover   = ta.crossover(macdLine, signalLine)   // DIF cruza DEA p/ cima
macdCrossunder  = ta.crossunder(macdLine, signalLine)  // DIF cruza DEA p/ baixo

// ----- Condições de Compra/Venda -----

// Compra quando:
// 1) Preço cruza EMA9 de baixo pra cima
// 2) MACD cruza a linha de sinal para cima
buySignal = ta.crossover(close, ema9) and macdCrossover

// Venda quando:
// 1) Preço cruza EMA9 de cima pra baixo
// 2) MACD cruza a linha de sinal para baixo
sellSignal = ta.crossunder(close, ema9) and macdCrossunder

// ----- Execução das ordens -----

// Identifica o menor e o maior preço dos últimos 'lookbackCandles' candles.
// A função ta.lowest() e ta.highest() consideram, por padrão, a barra atual também.
// Se você quiser EXCLUIR a barra atual, use low[1] / high[1] dentro do ta.lowest() / ta.highest().
lowestLow5  = ta.lowest(low, lookbackCandles)
highestHigh5= ta.highest(high, lookbackCandles)

// >>> Quando há sinal de COMPRA <<<
if (buySignal)
    // Fecha posição vendida, se existir
    strategy.close("Sell")
    // Entra comprado
    strategy.entry("Buy", strategy.long)
    
    // STOP: abaixo do menor preço dos últimos 5 candles
    stopPrice = lowestLow5
    // Risco = (preço de entrada) - (stop)
    // Note que strategy.position_avg_price só fica disponível a partir da barra seguinte.
    // Por isso, o exit costuma funcionar corretamente apenas na barra seguinte.
    // Para fins de teste, podemos usar 'close' como proxy do "entry" (ou aceitar essa limitação).
    // A forma "correta" de usar strategy.position_avg_price seria via calc_on_order_fills = true,
    // mas isso pode exigir algumas configurações adicionais.
    risk = strategy.position_avg_price - stopPrice
    
    // Take Profit = entrada + 2,5 * risco
    takeProfitPrice = strategy.position_avg_price + riskMultiplier * risk

    // Registra a saída (stop e alvo) vinculada à posição "Buy"
    strategy.exit("Exit Buy", "Buy", stop=stopPrice, limit=takeProfitPrice)

// >>> Quando há sinal de VENDA <<<
if (sellSignal)
    // Fecha posição comprada, se existir
    strategy.close("Buy")
    // Entra vendido
    strategy.entry("Sell", strategy.short)
    
    // STOP: acima do maior preço dos últimos 5 candles
    stopPrice = highestHigh5
    // Risco = (stop) - (preço de entrada)
    risk = stopPrice - strategy.position_avg_price
    
    // Take Profit = entrada - 2,5 * risco
    takeProfitPrice = strategy.position_avg_price - riskMultiplier * risk

    // Registra a saída (stop e alvo) vinculada à posição "Sell"
    strategy.exit("Exit Sell", "Sell", stop=stopPrice, limit=takeProfitPrice)

// ----- Plotagens visuais -----
plot(ema9, color=color.orange, linewidth=2, title="EMA 9")

plot(macdLine,       color=color.new(color.blue, 0),   title="MACD")
plot(signalLine,     color=color.new(color.red, 0),    title="Signal")
plot(histLine,       color=color.new(color.purple, 0), style=plot.style_histogram, title="Histogram")

// Só para auxiliar na visualização, vamos plotar a linha do lowestLow5 e highestHigh5
plot(lowestLow5,    color=color.new(color.lime, 70),  style=plot.style_line, title="Lowest 5 bars")
plot(highestHigh5,  color=color.new(color.fuchsia,70),style=plot.style_line, title="Highest 5 bars")