एमएसीडी ट्रेंड फॉलोइंग रणनीति एमएसीडी संकेतक पर आधारित एक मात्रात्मक ट्रेडिंग रणनीति है। यह रणनीति बाजार के रुझानों को निर्धारित करने और मूल्य रुझानों को ट्रैक करने के लिए एमएसीडी स्वर्ण क्रॉस और मृत्यु क्रॉस संकेतों की पहचान करती है।
एमएसीडी ट्रेंड फॉलोइंग रणनीति का मूल तर्क हैः
इस ट्रेंड फॉलो मैकेनिज्म के माध्यम से रणनीति समय पर बाजार के रुझानों को पकड़ सकती है और मुनाफा कमा सकती है।
एमएसीडी ट्रेंड फॉलोइंग रणनीति के निम्नलिखित फायदे हैंः
एमएसीडी ट्रेंड फॉलोइंग रणनीति में निम्नलिखित जोखिम भी हैं:
उपरोक्त जोखिमों से निपटने के लिए निम्नलिखित अनुकूलन उपायों को अपनाया जा सकता हैः
एमएसीडी ट्रेंड फॉलोइंग रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः
गलत संकेत दर को कम करने के लिए एमएसीडी संकेतक मापदंडों का अनुकूलन करें। एमएसीडी के विभिन्न चक्र मापदंडों का परीक्षण किया जा सकता है।
संकेतों को फ़िल्टर करने के लिए ट्रेडिंग वॉल्यूम जैसे अन्य संकेतक जोड़ें। न्यूनतम ट्रेडिंग वॉल्यूम शर्तें सेट की जा सकती हैं।
गतिशील ट्रेलिंग स्टॉप लॉस तंत्र स्थापित करें। स्टॉप लॉस बिंदुओं को अस्थिरता के आधार पर गतिशील रूप से समायोजित किया जा सकता है।
पदों को खोलने के लिए संकेत निर्धारण तर्क का अनुकूलन करें। अधिक कठोर ट्रिगर शर्तें निर्धारित की जा सकती हैं।
संकेतों को फ़िल्टर करने के लिए मशीन लर्निंग मॉडल शामिल करें। संकेतों की विश्वसनीयता का न्याय करने के लिए मॉडल को प्रशिक्षित किया जा सकता है।
आम तौर पर, एमएसीडी ट्रेंड फॉलोइंग रणनीति एक अपेक्षाकृत परिपक्व मात्रात्मक रणनीति है। यह बाजार की प्रवृत्ति की दिशाओं को निर्धारित करने के लिए एमएसीडी संकेतक का उपयोग करता है, और स्टॉप लॉस तंत्र के साथ जोखिमों को नियंत्रित करता है, जो प्रभावी रूप से मूल्य रुझानों को ट्रैक कर सकता है। लेकिन एमएसीडी संकेतक में खुद में कुछ खामियां भी हैं, झूठे संकेत उत्पन्न करना आसान है। इसलिए इस रणनीति के आगे अनुकूलन के लिए कमरे हैं, मुख्य रूप से संकेतक मापदंडों, स्टॉप लॉस तंत्र, संकेत फ़िल्टरिंग आदि जैसे पहलुओं पर।
/*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