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