यह रणनीति एमएसीडी संकेतक-आधारित ट्रेडिंग रणनीति का एक बेहतर संस्करण है। यह एमएसीडी संकेतक की प्रवृत्ति-अनुसरण विशेषताओं को गति व्यापार के विचारों के साथ जोड़ती है, तेजी से और धीमी गति से चलती औसत के बीच अंतर का विश्लेषण करके ट्रेडिंग संकेत उत्पन्न करती है। इस बीच, रणनीति में रणनीति की मजबूती और लाभप्रदता में सुधार के लिए प्रवृत्ति पुष्टि, संकेत देरी की पुष्टि, निश्चित प्रतिशत स्टॉप-लॉस और लाभ लेने जैसे अनुकूलन विधियों को भी पेश किया गया है।
इस रणनीति का मूल MACD संकेतक है, जिसमें फास्ट मूविंग एवरेज (EMA) और स्लो मूविंग एवरेज (EMA) के बीच का अंतर होता है। जब फास्ट EMA स्लो EMA को पार करता है, तो यह एक खरीद या बिक्री संकेत उत्पन्न करता है। विशेष रूप से, जब MACD लाइन नीचे से ऊपर तक सिग्नल लाइन के माध्यम से टूटती है, तो यह एक खरीद संकेत उत्पन्न करती है; जब MACD लाइन ऊपर से नीचे तक सिग्नल लाइन से नीचे गिरती है, तो यह एक बिक्री संकेत उत्पन्न करती है।
मूल एमएसीडी क्रॉसओवर संकेतों के अलावा, रणनीति एक प्रवृत्ति पुष्टि तंत्र भी पेश करती है। यह यह निर्धारित करने के लिए सरल चलती औसत (एसएमए) के साथ तुलना करती है कि क्या वर्तमान बाजार एक अपट्रेंड या डाउनट्रेंड में है। केवल जब एक खरीद संकेत एक अपट्रेंड में दिखाई देता है, या एक बिक्री संकेत एक डाउनट्रेंड में दिखाई देता है, तो ट्रेडिंग ऑपरेशन निष्पादित किया जाएगा। यह प्रभावी रूप से एक दोलन बाजार में उत्पन्न झूठे संकेतों से बचाता है।
इसके अतिरिक्त, रणनीति सिग्नल की पुष्टि समय खिड़की का विस्तार करती है। यानी, केवल जब वर्तमान कैंडलस्टिक खरीद या बिक्री की शर्तों को पूरा करता है और पिछले कैंडलस्टिक भी समान शर्तों को पूरा करता है, तो संबंधित लेनदेन निष्पादित किया जाएगा। इससे संकेतों की विश्वसनीयता में और सुधार होता है।
अंत में, रणनीति निश्चित प्रतिशत स्टॉप-लॉस और टेक-प्रॉफिट स्तर निर्धारित करती है। एक बार ट्रेड किए जाने के बाद, स्टॉप-लॉस और टेक-प्रॉफिट की कीमतों की गणना प्रवेश मूल्य के आधार पर की जाएगी, और इन कीमतों तक पहुंचने के बाद स्थिति स्वचालित रूप से बंद हो जाएगी। इससे एक ही लेनदेन के जोखिम और रिटर्न को नियंत्रित करने में मदद मिलती है।
यह रणनीति एमएसीडी संकेतक पर आधारित एक बेहतर ट्रेडिंग रणनीति है। ट्रेंड कन्फर्मेशन, सिग्नल देरी कन्फर्मेशन, फिक्स्ड स्टॉप-लॉस और टेक-प्रॉफिट और अन्य तरीकों के माध्यम से, यह रणनीति की मजबूती और लाभ क्षमता में सुधार करती है। हालांकि, यह पैरामीटर अनुकूलन, ट्रेंड रिकग्निशन, एकल संकेतक, बैकटेस्टिंग डेटा और अन्य पहलुओं में जोखिम का भी सामना करती है। भविष्य में, हम अन्य संकेतकों, गतिशील स्टॉप-लॉस और टेक-प्रॉफिट, स्थिति प्रबंधन और मशीन लर्निंग को जोड़ने जैसे पहलुओं से रणनीति का अनुकूलन करने पर विचार कर सकते हैं ताकि इसके व्यावहारिक अनुप्रयोग प्रभाव को और बेहतर बनाया जा सके।
/*backtest start: 2023-05-08 00:00:00 end: 2024-05-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © sligetit //@version=5 strategy("Improved MACD_VXI Strategy", overlay=true) // Calculate MACD and Signal Line fastLength = input.int(13, title="Fast Length") slowLength = input.int(21, title="Slow Length") signalLength = input.int(8, title="Signal Length") fastMA = ta.ema(close, fastLength) slowMA = ta.ema(close, slowLength) macd = fastMA - slowMA signal = ta.sma(macd, signalLength) // Plot MACD and Signal Line plot(macd, color=color.red, linewidth=1) plot(signal, color=color.blue, linewidth=2) // Calculate Cross Signals with Trend Confirmation smaPeriod = input.int(50, title="SMA Period") sma = ta.sma(close, smaPeriod) trendUp = close > sma trendDown = close < sma crossOver = ta.crossover(signal, macd) crossUnder = ta.crossunder(signal, macd) buySignal = crossOver and trendUp sellSignal = crossUnder and trendDown // Execute Buy/Sell Operations if buySignal strategy.entry("Buy", strategy.long) if sellSignal strategy.entry("Sell", strategy.short) // Extend Signal Confirmation Time Window longSignal = crossOver[1] and trendUp[1] shortSignal = crossUnder[1] and trendDown[1] if longSignal strategy.entry("Buy", strategy.long) if shortSignal strategy.entry("Sell", strategy.short) // Set Fixed Percentage Stop Loss and Take Profit stopLossPercent = input.float(1, title="Stop Loss (%)") / 100 takeProfitPercent = input.float(2, title="Take Profit (%)") / 100 stopLossPrice = strategy.position_avg_price * (1 - stopLossPercent) takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPercent) strategy.exit("Stop Loss/Profit", "Buy", stop=stopLossPrice, limit=takeProfitPrice) strategy.exit("Stop Loss/Profit", "Sell", stop=stopLossPrice, limit=takeProfitPrice)