एमएसीडी पर आधारित मिश्रित मात्रात्मक ट्रेडिंग रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-13 16:44:46
टैगः

img

अवलोकन

यह एमएसीडी संकेतक पर आधारित एक मिश्रित मात्रात्मक ट्रेडिंग रणनीति है। यह संकेतकों के संयोजन के माध्यम से ट्रेडिंग संकेत उत्पन्न करने के लिए एमएसीडी और केडीजे जैसे कई संकेतकों को जोड़ती है।

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

इस रणनीति का मुख्य संकेतक एमएसीडी है। एमएसीडी का अर्थ है मूविंग एवरेज कन्वर्जेंस डिवर्जेंस, जो एक ट्रेंड-फॉलोइंग संकेतक है। इसमें एक फास्ट मूविंग एवरेज (ईएमए) और एक स्लो मूविंग एवरेज (ईएमए) शामिल हैं। डिफ़ॉल्ट पैरामीटर फास्ट लाइन के लिए 12 और स्लो लाइन के लिए 26 हैं। रणनीति दो ईएमए लाइनों के बीच अंतर की गणना करती है, जिसे डीआईएफ कहा जाता है। फिर डीईए संकेतक प्राप्त करने के लिए डीआईएफ पर 9 दिन के ईएमए की गणना की जाती है। जब डीआईएफ डीईए के ऊपर से गुजरता है, तो एक खरीद संकेत उत्पन्न होता है। जब नीचे से गुजरता है, तो एक बेच संकेत उत्पन्न होता है।

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

रणनीति के फायदे

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

इसके अतिरिक्त, रणनीति में समय सीमा चयनकर्ता शामिल है, जो रणनीति के प्रदर्शन का मूल्यांकन करने में अधिक लचीलापन प्रदान करता है।

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

  • जब बाजार लंबी अवधि के लिए उतार-चढ़ाव करता है, तो एमएसीडी में कई झूठे संकेत होंगे। इस बिंदु पर, हम कुछ शोर को फ़िल्टर करने के लिए ईएमए लाइनों के मापदंडों को ठीक से समायोजित कर सकते हैं।

  • गलत KDJ पैरामीटर सेटिंग्स भी परिणामों को प्रभावित करेंगे. हम कई पैरामीटर समूहों का परीक्षण कर सकते हैं और अधिक स्थिर पैरामीटर संयोजन का चयन कर सकते हैं.

  • बैकटेस्ट समय सीमा के अनुचित चयन से रणनीति की लाभप्रदता का अधिक या कम अनुमान लगाया जाएगा। परीक्षण के लिए प्रतिनिधि समय सीमा का चयन किया जाना चाहिए।

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

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

  1. एक स्टॉप लॉस तंत्र जोड़ें. जब कीमत स्टॉप लॉस लाइन को ट्रिगर करती है, तो यह स्टॉप लॉस उद्देश्यों के लिए स्थिति से बाहर निकलने के लिए मजबूर करेगा.

  2. सिग्नल की सटीकता में सुधार के लिए आरएसआई और बोलिंगर बैंड जैसे संकेतकों को मिलाकर अधिक संकेतक फ़िल्टर शामिल करें।

  3. सूचक मापदंडों का अनुकूलन करें। इष्टतम सेटिंग्स खोजने के लिए ईएमए और केडीजे मापदंडों के संयोजन को बदलें।

  4. स्वचालित रूप से अनुकूलित करने के लिए मशीन लर्निंग तकनीकों का उपयोग करें। पैरामीटर प्रशिक्षण और अनुकूलन के लिए तंत्रिका नेटवर्क का उपयोग करें।

निष्कर्ष

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


/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="New Renaissance", shorttitle="New Renaissance", overlay=true,initial_capital=10000)

source = close

fastlength=input(12, minval=1)
slowlength=input(26,minval=1)
signallength=input(9,minval=1)

// === Defining the MACD oscillator
fastMA=ema(source,fastlength)
slowMA=ema(source,slowlength)
MACD=fastMA-slowMA
signal=sma(MACD,signallength)
delta=MACD-signal

// === Buy and Sell Signals ===
buy=crossover(MACD, signal)
sell=crossunder(MACD, signal)

// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2018, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 12,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 31,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2020, title = "Thru Year",       type = input.integer, minval = 1970)

// === INPUT SHOW PLOT ===
showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

// === EXECUTION ===
strategy.entry("L", strategy.long, when = window() and buy)    // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and sell)                   // exit long when "within window of time" AND crossunder      

अधिक