संसाधन लोड हो रहा है... लोड करना...

रणनीति के बाद एमएसीडी रुझान

लेखक:चाओझांग, दिनांक: 2023-12-11 14:57:00
टैगः

img

अवलोकन

एमएसीडी ट्रेंड फॉलोइंग रणनीति एमएसीडी संकेतक पर आधारित एक मात्रात्मक ट्रेडिंग रणनीति है। यह रणनीति बाजार के रुझानों को निर्धारित करने और मूल्य रुझानों को ट्रैक करने के लिए एमएसीडी स्वर्ण क्रॉस और मृत्यु क्रॉस संकेतों की पहचान करती है।

रणनीति तर्क

एमएसीडी ट्रेंड फॉलोइंग रणनीति का मूल तर्क हैः

  1. एमएसीडी रेखा और संकेत रेखा की गणना करें।
  2. जब एमएसीडी रेखा नीचे से ऊपर की ओर शून्य से ऊपर जाती है, तो उच्चतम बिंदु दर्ज करें, और मृत्यु क्रॉस संकेत की प्रतीक्षा करें।
  3. जब एमएसीडी रेखा ऊपर से नीचे 0 से नीचे जाती है, तो सबसे निचला बिंदु दर्ज करें, और स्वर्ण क्रॉस संकेत की प्रतीक्षा करें।
  4. जब गोल्डन क्रॉस होता है, तो वर्तमान समापन मूल्य को लॉन्ग एंट्री पॉइंट के रूप में रिकॉर्ड करें, स्टॉप लॉस पॉइंट सेट करें, ओपन लॉन्ग पोजीशन।
  5. जब मृत्यु क्रॉस होता है, तो वर्तमान समापन मूल्य को शॉर्ट एंट्री पॉइंट के रूप में रिकॉर्ड करें, स्टॉप लॉस पॉइंट सेट करें, शॉर्ट पोजीशन खोलें।
  6. लंबी स्थिति रखने पर, यदि लाभ अनुपात पूर्व निर्धारित लक्ष्य तक पहुँचता है या ड्रॉडाउन स्टॉप लॉस बिंदु तक पहुँचता है, तो लाभ प्राप्त करने के लिए स्थिति को बंद करें।
  7. शॉर्ट पोजीशन रखने पर, यदि लाभ अनुपात पूर्व निर्धारित लक्ष्य तक पहुंचता है या ड्रॉडाउन स्टॉप लॉस बिंदु तक पहुंचता है, तो लाभ प्राप्त करने के लिए बंद पोजीशन।

इस ट्रेंड फॉलो मैकेनिज्म के माध्यम से रणनीति समय पर बाजार के रुझानों को पकड़ सकती है और मुनाफा कमा सकती है।

लाभ विश्लेषण

एमएसीडी ट्रेंड फॉलोइंग रणनीति के निम्नलिखित फायदे हैंः

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

जोखिम विश्लेषण

एमएसीडी ट्रेंड फॉलोइंग रणनीति में निम्नलिखित जोखिम भी हैं:

  1. एमएसीडी संकेतक में झूठे संकेत उत्पन्न होते हैं, जिससे अल्ट्रा शॉर्ट टर्म ट्रेडों में नुकसान हो सकता है।
  2. गलत स्टॉप लॉस बिंदु सेटिंग्स एकल हानि को बढ़ा सकती हैं।
  3. लाभ ट्रैकिंग अनुपात और स्टॉप लॉस बिंदु के बीच संतुलन बनाना मुश्किल है, जिसमें नुकसान का कारण बनने वाले ओवर ट्रैकिंग का जोखिम है।

उपरोक्त जोखिमों से निपटने के लिए निम्नलिखित अनुकूलन उपायों को अपनाया जा सकता हैः

  1. झूठे संकेतों को फ़िल्टर करने के लिए अन्य संकेतकों के साथ संयोजन करें।
  2. गतिशील रूप से स्टॉप लॉस बिंदुओं को समायोजित करें।
  3. लाभ ट्रैकिंग अनुपात और स्टॉप लॉस बिंदुओं के मापदंडों को अनुकूलित करें।

अनुकूलन दिशाएँ

एमएसीडी ट्रेंड फॉलोइंग रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः

  1. गलत संकेत दर को कम करने के लिए एमएसीडी संकेतक मापदंडों का अनुकूलन करें। एमएसीडी के विभिन्न चक्र मापदंडों का परीक्षण किया जा सकता है।

  2. संकेतों को फ़िल्टर करने के लिए ट्रेडिंग वॉल्यूम जैसे अन्य संकेतक जोड़ें। न्यूनतम ट्रेडिंग वॉल्यूम शर्तें सेट की जा सकती हैं।

  3. गतिशील ट्रेलिंग स्टॉप लॉस तंत्र स्थापित करें। स्टॉप लॉस बिंदुओं को अस्थिरता के आधार पर गतिशील रूप से समायोजित किया जा सकता है।

  4. पदों को खोलने के लिए संकेत निर्धारण तर्क का अनुकूलन करें। अधिक कठोर ट्रिगर शर्तें निर्धारित की जा सकती हैं।

  5. संकेतों को फ़िल्टर करने के लिए मशीन लर्निंग मॉडल शामिल करें। संकेतों की विश्वसनीयता का न्याय करने के लिए मॉडल को प्रशिक्षित किया जा सकता है।

निष्कर्ष

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


/*backtest
start: 2023-11-10 00:00:00
end: 2023-12-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MACD Cross Strategy", overlay=true)

// Get MACD values
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
var float entryLongPrice = na
var float entryShortPrice = na

var float highestLongProfit = 0
var float highestShortProfit = 0

var float highestMACD = 0
var float lowestMACD = 0
var bool haveOpenedLong = false
var bool haveOpenedShort = false

var float stoploss = 0.04 // To be adjust for different investment
var float minProfit = 0.05 // To be adjust for different investment

if macdLine > 0
    lowestMACD := 0
    highestMACD := math.max(highestMACD, macdLine)
    haveOpenedShort := false
else
    highestMACD := 0
    lowestMACD := math.min(lowestMACD, macdLine)
    haveOpenedLong := false

// Enter long position when MACD line crosses above the signal line
if ta.crossover(macdLine, signalLine) and macdLine < highestMACD and macdLine > 0 and haveOpenedLong == false
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", from_entry = "Long", stop=close*(1 - stoploss))
    entryLongPrice := close
    haveOpenedLong := true

if ta.crossunder(macdLine, signalLine) and macdLine > lowestMACD and macdLine < 0 and haveOpenedShort == false
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", from_entry = "Short", stop=close*(1 + stoploss))
    entryShortPrice := close
    haveOpenedShort := true

// log.info("entryLongPrice:{0}", entryLongPrice)
if strategy.position_size > 0
    profit = close - entryLongPrice
    log.info("profit:{0}", profit)
    if profit > 0
        highestLongProfit := math.max(highestLongProfit, profit)
        if profit / entryLongPrice > minProfit and highestLongProfit * 0.8 > profit
            strategy.close("Long")
            highestLongProfit := 0

if strategy.position_size < 0
    profit = entryShortPrice - close
    if profit > 0
        highestShortProfit := math.max(highestShortProfit, profit)
        log.info("highestShortProfit={0}, profit={1}", highestShortProfit, profit)
        if profit / entryShortPrice > minProfit and highestShortProfit * 0.8 > profit
            strategy.close("Short")
            highestShortProfit := 0

अधिक