यह रणनीति दो तकनीकी संकेतकों, एमएसीडी और आरएसआई को जोड़ती है, एमएसीडी क्रॉसओवर सिग्नल और आरएसआई ओवरबॉट / ओवरसोल्ड सिग्नल का उपयोग करके ट्रेडिंग टाइमिंग निर्धारित करती है। इस बीच, रणनीति की विश्वसनीयता में सुधार के लिए सहायक निर्णय के रूप में वेटेड मूविंग एवरेज (डब्ल्यूएमए) भी पेश करती है। रणनीति 1 घंटे की समय सीमा पर चलती है, जब एमएसीडी स्वर्ण क्रॉस बनाता है और आरएसआई 50 से ऊपर है, और जब एमएसीडी डेथ क्रॉस बनाता है और आरएसआई 50 से नीचे है तो शॉर्ट पोजीशन खोलती है। साथ ही, यह लंबी पोजीशन बंद करती है जब आरएसआई 70 से ऊपर होता है और जब आरएसआई 30 से नीचे होता है तो शॉर्ट पोजीशन बंद करता है। इसके अलावा, रणनीति विभिन्न समय पैमाने पर प्रवृत्ति परिवर्तनों का न्याय करने के लिए कई समय सीमाओं के लिए चर निर्धारित करती है।
इस रणनीति का मूल दो तकनीकी संकेतकों, एमएसीडी और आरएसआई का संयुक्त उपयोग है। एमएसीडी फास्ट लाइन (अल्पकालिक चलती औसत) और स्लो लाइन (लंबी अवधि के चलती औसत) के बीच अंतर से बना है, जो बाजार की प्रवृत्ति में बदलाव को दर्शा सकता है। जब फास्ट लाइन स्लो लाइन से ऊपर जाती है, तो यह एक स्वर्ण क्रॉस बनाता है, जो एक ऊपर की प्रवृत्ति को दर्शाता है; इसके विपरीत, यह एक मौत क्रॉस बनाता है, जो एक नीचे की प्रवृत्ति को दर्शाता है। आरएसआई एक संकेतक है जो बाजार की ओवरबॉट और ओवरसोल्ड स्थिति को मापता है। जब आरएसआई 70 से ऊपर होता है, तो यह इंगित करता है कि बाजार ओवरबोल्ड है और एक पलकबैक जोखिम का सामना कर सकता है; जब आरएसआई 30 से नीचे होता है, तो यह इंगित करता है कि बाजार ओवरसोल्ड है और एक रिबाउंड अवसर का संकेत दे सकता है।
यह रणनीति MACD और RSI को जोड़ती है, जो ट्रेडिंग समय को अधिक सटीक रूप से समझने के लिए MACD के ट्रेंड जजमेंट और RSI के ओवरबॉट / ओवरसोल्ड जजमेंट का उपयोग करती है। साथ ही, रणनीति एक सहायक निर्णय के रूप में वेटेड मूविंग एवरेज (WMA) भी पेश करती है। WMA सामान्य मूविंग एवरेज की तुलना में हाल की कीमतों पर अधिक जोर देती है, और अधिक संवेदनशील रूप से मूल्य परिवर्तन को प्रतिबिंबित कर सकती है।
इसके अतिरिक्त, रणनीति विभिन्न समय पैमाने पर रुझान परिवर्तनों का न्याय करने के लिए कई समय सीमाओं (जैसे 15 मिनट, 30 मिनट, 1 घंटे, 2 घंटे, आदि) के लिए चर निर्धारित करती है। यह बहु-समय सीमा विश्लेषण विधि रणनीति को बाजार के रुझानों को अधिक व्यापक रूप से समझने और निर्णय लेने की सटीकता में सुधार करने में मदद कर सकती है।
यह रणनीति दो प्रभावी तकनीकी संकेतकों, एमएसीडी और आरएसआई को जोड़ती है, जबकि डब्ल्यूएमए को 1-घंटे के समय सीमा पर व्यापार निर्णय लेने के लिए एक सहायक निर्णय के रूप में पेश करती है। रणनीति तर्क स्पष्ट, समझने और लागू करने में आसान है, और कुछ व्यवहार्यता के साथ बाजार के रुझानों और ओवरबॉट / ओवरसोल्ड स्थितियों को बेहतर ढंग से समझ सकता है। हालांकि, रणनीति में कुछ सीमाएं और जोखिम भी हैं, जैसे कि देरी, एकल समय सीमा, जोखिम नियंत्रण की कमी, आदि। भविष्य में, रणनीति को अधिक संकेतकों, निरंतर समय सीमाओं, जोखिम नियंत्रण को मजबूत करने, पैरामीटर अनुकूलन, आदि को पेश करने के मामले में सुधार किया जा सकता है, ताकि इसकी मजबूती और लाभप्रदता में वृद्धि हो सके। कुल मिलाकर, यह रणनीति मात्रात्मक व्यापार के लिए सोचने का एक तरीका प्रदान करती है, लेकिन अभी भी व्यवहार में अनुकूलित और परिष्कृत होने की आवश्यकता है।
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Improved MACD and RSI Trading Strategy", overlay=true, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.01, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // MACD 設置 fast_length = input(12, title="MACD Fast Length") slow_length = input(26, title="MACD Slow Length") signal_smoothing = input(9, title="MACD Signal Smoothing") // RSI 設置 input_rsi_length = input.int(14, title="RSI Length") input_rsi_source = input(close, "RSI Source") RSI = ta.rsi(input_rsi_source, input_rsi_length) // 計算MACD和信號線 [macdLine, signalLine, _] = ta.macd(close, fast_length, slow_length, signal_smoothing) // 自然交易理論:利用MACD和RSI的結合 ma(source, length, type) => switch type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) maTypeInput = input.string("SMA", title="Moving Average Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings") maLengthInput = input.int(14, title="Moving Average Length", group="MA Settings") macdMA = ma(macdLine, maLengthInput, maTypeInput) // 設置交易信號 longCondition = ta.crossover(macdLine, signalLine) and macdLine > macdMA and RSI < 70 shortCondition = ta.crossunder(macdLine, signalLine) and macdLine < macdMA and RSI > 30 // 定義時間框架 tf_15m = ta.change(RSI, 15) > 0 ? 1 : 0 tf_30m = ta.change(RSI, 30) > 0 ? 1 : 0 tf_1h = ta.change(RSI, 60) > 0 ? 1 : 0 tf_2h = ta.change(RSI, 120) > 0 ? 1 : 0 tf_4h = ta.change(RSI, 240) > 0 ? 1 : 0 tf_6h = ta.change(RSI, 360) > 0 ? 1 : 0 tf_8h = ta.change(RSI, 480) > 0 ? 1 : 0 tf_12h = ta.change(RSI, 720) > 0 ? 1 : 0 tf_1d = ta.change(RSI, 1440) > 0 ? 1 : 0 // 設置開倉、平倉和空倉條件 if (longCondition and tf_1h and RSI > 50) strategy.entry("Long", strategy.long) if (shortCondition and tf_1h and RSI < 50) strategy.entry("Short", strategy.short) if (tf_1h and RSI > 70) strategy.close("Long") if (tf_1h and RSI < 30) strategy.close("Short") // 加入其他策略 // 定義加權平均價格 wma(source, length) => wma = 0.0 sum = 0.0 sum_wts = 0.0 for i = 0 to length - 1 wts = (length - i) * (length - i) sum := sum + source[i] * wts sum_wts := sum_wts + wts wma := sum / sum_wts wmaLength = input.int(20, title="WMA Length", group="Other Strategies") wmaValue = wma(close, wmaLength) // 設置交易信號 longWMACondition = close > wmaValue shortWMACondition = close < wmaValue if (longWMACondition and tf_1h and RSI > 50) strategy.entry("Long WMA", strategy.long) if (shortWMACondition and tf_1h and RSI < 50) strategy.entry("Short WMA", strategy.short) if (tf_1h and RSI > 70) strategy.close("Long WMA") if (tf_1h and RSI < 30) strategy.close("Short WMA") // 繪製MACD和RSI plot(macdLine, color=color.blue, title="MACD Line") plot(signalLine, color=color.red, title="Signal Line")