यह रणनीति प्रवृत्ति की दिशा निर्धारित करने के लिए एमएसीडी संकेतक के स्वर्ण क्रॉस और मृत्यु क्रॉस का उपयोग करती है, और ट्रेडिंग के बाद प्रवृत्ति को लागू करने के लिए स्टॉप लॉस और ले लाभ के लिए एटीआर संकेतक का उपयोग करती है। रणनीति का नाम एमएसीडी संकेतक के स्वर्ण क्रॉस और मृत्यु क्रॉस संकेतों के उपयोग को उजागर करता है।
जब एमएसीडी रेखा नीचे से सिग्नल लाइन के ऊपर से पार करती है और सकारात्मक हो जाती है, तो एक खरीद संकेत उत्पन्न होता है, जिसे गोल्डन क्रॉस सिग्नल कहा जाता है, जो स्टॉक की कीमत में एक ऊपर की प्रवृत्ति को दर्शाता है। जब एमएसीडी रेखा ऊपर से सिग्नल लाइन के नीचे से पार करती है और नकारात्मक हो जाती है, तो एक बिक्री संकेत उत्पन्न होता है, जिसे डेथ क्रॉस सिग्नल कहा जाता है, जो स्टॉक की कीमत में एक नीचे की प्रवृत्ति को दर्शाता है।
यह रणनीति केवल सोने के क्रॉस पर लंबी जाती है और रुझानों का पालन करने के लिए मौत के क्रॉस पर छोटी जाती है। साथ ही, यह रणनीति स्टॉप लॉस की गणना करने के लिए एटीआर संकेतक भी पेश करती है और व्यापार प्रणाली के निर्माण के लिए लाभ स्तर लेती है।
विशेष रूप से, रणनीति पहले तेजी से चलती औसत, धीमी गति से चलती औसत, एमएसीडी अंतर, सिग्नल लाइन और अन्य मानक एमएसीडी संकेतकों की गणना करती है। फिर, पांच संकेत प्रकारों (जारी रखने के संकेत, उलट संकेत, हिस्टोग्राम संकेत, एमएसीडी शून्य क्रॉस, सिग्नल लाइन शून्य क्रॉस) में से चुने गए एक के आधार पर, स्वर्ण क्रॉस और मृत्यु क्रॉस निर्धारित किए जाते हैं। अंत में, प्रवेश और निकास तर्क को पूरा करने के लिए एटीआर संकेतक के आधार पर स्टॉप लॉस और ले लाभ सेट किए जाते हैं।
इस रणनीति के निम्नलिखित फायदे हैंः
प्रवृत्ति की दिशा निर्धारित करने के लिए एमएसीडी संकेतक का उपयोग करना सटीक और विश्वसनीय है। एमएसीडी संकेतक ने वर्षों से प्रवृत्ति निर्धारण में प्रमुख प्रदर्शन किया है।
एटीआर संकेतक पर आधारित स्टॉप लॉस और टेक प्रॉफिट सेटिंग्स एकल ट्रेडों के जोखिम-लाभ अनुपात को प्रभावी ढंग से नियंत्रित कर सकती हैं और नुकसान की संभावना को कम कर सकती हैं।
पांच वैकल्पिक सिग्नल प्रकार प्रदान करने से विभिन्न बाजारों के लिए सबसे उपयुक्त सिग्नल का उपयोग करने की अनुमति मिलती है, जिससे रणनीति की अनुकूलन क्षमता में सुधार होता है।
कई समायोज्य इनपुट पैरामीटर हैं जिन्हें बेहतर ट्रेडिंग प्रदर्शन के लिए अनुकूलित किया जा सकता है।
इस रणनीति के साथ कुछ जोखिम भी हैंः
एमएसीडी संकेतक आसानी से झूठे संकेत उत्पन्न कर सकता है और अनावश्यक नुकसान का कारण बन सकता है। संकेतों को फ़िल्टर करने के लिए अन्य संकेतकों का उपयोग किया जा सकता है।
एटीआर संकेतक केवल हाल की अवधि के उतार-चढ़ाव का नमूना बनाता है और चरम बाजार स्थितियों में नुकसान को सही ढंग से रोक नहीं सकता है। इस मुद्दे को हल करने के लिए गतिशील स्टॉप पेश किए जा सकते हैं।
चयनित संकेतों का प्रदर्शन स्थिर नहीं हो सकता है। इष्टतम मापदंडों को निर्धारित करने के लिए व्यापक बैकटेस्टिंग की आवश्यकता होती है।
सिग्नल मापदंडों और जोखिम प्रबंधन मापदंडों को एक साथ अनुकूलित करने की आवश्यकता है, अन्यथा वैश्विक रूप से इष्टतम परिणाम ढूंढना मुश्किल है। चरणबद्ध अनुकूलन विधियों की सिफारिश की जाती है।
इस रणनीति को निम्नलिखित पहलुओं में भी अनुकूलित किया जा सकता हैः
एमएसीडी संकेतों को फ़िल्टर करने के लिए टीएमए, हुल एमए आदि जैसे अन्य चलती औसत का प्रयास करें।
गतिशील स्टॉप तंत्र का प्रयोग करें जो चरम बाजार स्थितियों में उतार-चढ़ाव से बेहतर तरीके से निपट सकते हैं।
बेहतर संयोजन खोजने के लिए पारंपरिक एमएसीडी मापदंडों को पूरी तरह से अनुकूलित करें।
बेहतर जोखिम प्रबंधन के लिए इष्टतम एटीआर गुणकों को खोजने के लिए मशीन लर्निंग विधियों का उपयोग करें।
इष्टतम संकेत निर्धारित करने के लिए पांच संकेत प्रकारों में से प्रत्येक को अलग से बैकटेस्ट करें।
सिग्नल की गुणवत्ता का आकलन करने और एमएसीडी के आधार पर नए सिग्नल खोजने के लिए तंत्रिका नेटवर्क को प्रशिक्षित करें।
एमएसीडी गोल्डन क्रॉस डेथ क्रॉस ट्रेंड फॉलोइंग स्ट्रैटेजी ट्रेंड की दिशा निर्धारित करने के लिए एमएसीडी इंडिकेटर का उपयोग करती है और एटीआर इंडिकेटर के साथ स्टॉप लॉस सेट करती है और लाभ लेती है, जो प्रभावी रूप से ट्रेंड ट्रेडिंग के अवसरों को पकड़ सकती है। इस रणनीति के कई फायदे हैं जैसे ट्यून करने योग्य पैरामीटर, पूर्ण स्टॉप तंत्र और वैकल्पिक सिग्नल प्रकार। अगला कदम बेहतर बैकटेस्ट और लाइव परिणाम प्राप्त करने के लिए सिग्नल की गुणवत्ता, स्टॉप लॉस तंत्र और पैरामीटर चयन अनुकूलन में सुधार करना है।
/*backtest start: 2023-11-21 00:00:00 end: 2023-12-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © vuagnouxb //@version=4 strategy("BV's MACD SIGNAL TESTER", overlay=true) //------------------------------------------------------------------------ //---------- Confirmation Calculation ------------ INPUT //------------------------------------------------------------------------ // Getting inputs fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false) sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false) // Plot colors col_grow_above = #26A69A col_grow_below = #FFCDD2 col_fall_above = #B2DFDB col_fall_below = #EF5350 col_macd = #0094ff col_signal = #ff6a00 // Calculating fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal // plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 ) // plot(macd, title="MACD", color=col_macd, transp=0) // plot(signal, title="Signal", color=col_signal, transp=0) // -- Trade entry signals signalChoice = input(title = "Choose your signal", defval = "Continuation", options = ["Continuation", "Reversal", "Histogram", "MACD Line ZC", "Signal Line ZC"]) continuationSignalLong = signalChoice == "Continuation" ? crossover(macd, signal) and macd > 0 : signalChoice == "Reversal" ? crossover(macd, signal) and macd < 0 : signalChoice == "Histogram" ? crossover(hist, 0) : signalChoice == "MACD Line ZC" ? crossover(macd, 0) : signalChoice == "Signal Line ZC" ? crossover(signal, 0) : false continuationSignalShort = signalChoice == "Continuation" ? crossunder(macd, signal) and macd < 0 : signalChoice == "Reversal" ? crossover(signal, macd) and macd > 0 : signalChoice == "Histogram" ? crossunder(hist, 0) : signalChoice == "MACD Line ZC" ? crossunder(macd, 0) : signalChoice == "Signal Line ZC" ? crossunder(signal, 0) : false longCondition = continuationSignalLong shortCondition = continuationSignalShort //------------------------------------------------------------------------ //---------- ATR MONEY MANAGEMENT ------------ //------------------------------------------------------------------------ SLmultiplier = 1.5 TPmultiplier = 1 JPYPair = input(type = input.bool, title = "JPY Pair ?", defval = false) pipAdjuster = JPYPair ? 1000 : 100000 ATR = atr(14) * pipAdjuster // 1000 for jpy pairs : 100000 SL = ATR * SLmultiplier TP = ATR * TPmultiplier //------------------------------------------------------------------------ //---------- TIME FILTER ------------ //------------------------------------------------------------------------ YearOfTesting = input(title = "How many years of testing ?" , type = input.integer, defval = 3) _time = 2020 - YearOfTesting timeFilter = (year > _time) //------------------------------------------------------------------------ //--------- ENTRY FUNCTIONS ----------- INPUT //------------------------------------------------------------------------ if (longCondition and timeFilter) strategy.entry("Long", strategy.long) if (shortCondition and timeFilter) strategy.entry("Short", strategy.short) //------------------------------------------------------------------------ //--------- EXIT FUNCTIONS ----------- //------------------------------------------------------------------------ strategy.exit("ATR", from_entry = "Long", profit = TP, loss = SL) strategy.exit("ATR", from_entry = "Short", profit = TP, loss = SL)