एमएसीडी स्टोकास्टिक्स रेंज ब्रेकआउट रणनीति एमएसीडी और स्टोकास्टिक्स संकेतकों को एक मात्रात्मक ट्रेडिंग रणनीति में जोड़ती है। यह शेयर की कीमतों की प्रवृत्ति दिशा की पहचान करने और कीमतों के रेंज जोन से बाहर निकलने पर स्थिति लेने का प्रयास करती है।
पदों को लेते समय, यह रणनीति प्रविष्टियों की गुणवत्ता में सुधार के लिए एमएसीडी और स्टोकास्टिक्स दोनों से संकेतों पर विचार करती है। इसके अलावा, पूर्व निर्धारित स्टॉप लॉस और ले लाभ बिंदु जोखिमों को प्रभावी ढंग से नियंत्रित कर सकते हैं।
एमएसीडी स्टोकास्टिक्स रेंज ब्रेकआउट रणनीति मुख्य रूप से निम्नलिखित सिद्धांतों पर आधारित हैः
विशेष रूप से, यह रणनीति तेजी या मंदी के संकेतों को निर्धारित करने के लिए डीईए लाइन पर क्रॉसिंग मैकडीआईएफएफ लाइन का उपयोग करती है। जब डीआईएफएफ डीईए ऊपर की ओर पार करता है, तो यह एक तेजी संकेत उत्पन्न करता है और इसके विपरीत।
इस बीच, स्टोकास्टिक्स की K रेखा और D रेखा के बीच ओवरबॉट/ओवरसोल्ड क्षेत्रों (डिफ़ॉल्ट 30 और 70) के चारों ओर क्रॉसिंग भी ट्रेड सिग्नल उत्पन्न करती है।
जब एमएसीडी और स्टोकास्टिक्स संरेखित संकेत देते हैं, तो रणनीति एक स्थिति लेगी। इस बिंदु पर, एक प्रमुख मूल्य आंदोलन की संभावना है।
प्रवेश करने के बाद, स्टॉप लॉस और टेक प्रॉफिट पॉइंट्स को सिंगल ट्रेड लॉस को तर्कसंगत रूप से नियंत्रित करने और मुनाफे में लॉक करने के लिए सेट किया जाता है।
एमएसीडी स्टोकास्टिक्स रेंज ब्रेकआउट रणनीति में निम्नलिखित ताकतें हैंः
संकेतकों का संयोजन सिग्नल की गुणवत्ता में सुधार करता है
एमएसीडी और स्टोकैस्टिक्स दोनों का उपयोग करके कुछ नकली संकेतों को फ़िल्टर किया जाता है और बेहतर प्रविष्टि गुणवत्ता की अनुमति मिलती है।
ब्रेकआउट मूव्स और ट्रेंड ट्रेडिंग का पता लगाना
यह रणनीति रेंजिंग के बाद महत्वपूर्ण ब्रेकआउट चालों को पकड़ने में माहिर है। ये चालें बहुत बड़ी होती हैं।
अनुकूलित स्टॉप लॉस/टेक प्रॉफिट तंत्र जोखिमों को प्रभावी ढंग से नियंत्रित करता है
अंतर्निहित स्टॉप लॉस/टेक प्रॉफिट लॉजिक एकल ट्रेड हानि को उचित रूप से सीमित करता है और समय पर लाभों को लॉक करता है।
सावधानीपूर्वक डिजाइन के बावजूद, एमएसीडी स्टोकैस्टिक्स रेंज ब्रेकआउट रणनीति में कुछ अंतर्निहित जोखिम हैंः
सही प्रवेश समय की अनुपस्थिति
वैध ब्रेकआउट होने से पहले झूठे ब्रेकआउट आम हैं। सबसे अच्छा प्रवेश मूल्य को याद करने के परिणामस्वरूप अपर्याप्त प्रवेश समय हो सकता है।
असफल पलायन
जबकि प्रविष्टियों से पहले पर्याप्त तैयारी की जाती है, असफल ब्रेकआउट अभी भी संभव हैं, जिससे नुकसान होता है।
अनुचित पैरामीटर अनुकूलन
अनुचित पैरामीटर सेटिंग्स रणनीतिक प्रदर्शन को गंभीर रूप से कम करती हैं।
उपरोक्त जोखिमों से निपटने के लिए निम्नलिखित अनुकूलन को अपनाया जा सकता हैः
फ़िल्टर संकेतों में अन्य संकेतक जोड़ना
वैध ब्रेकआउट सुनिश्चित करने के लिए मैन्युअल हस्तक्षेप
कठोर बहु-सेट पैरामीटर अनुकूलन परीक्षण
एमएसीडी स्टोकैस्टिक्स रेंज ब्रेकआउट रणनीति के आगे अनुकूलन के लिए जगह बनी हुई हैः
सर्वोत्तम संयोजन खोजने के लिए एमएसीडी मापदंडों का अनुकूलन करें
सर्वोत्तम संयोजन खोजने के लिए स्टोकास्टिक्स मापदंडों का अनुकूलन करें
प्रवेश की गुणवत्ता में सुधार के लिए अन्य संकेतकों जैसे कि केडीजे, बीओएलएल को शामिल करें
विभिन्न होल्डिंग अवधि का परीक्षण करें, स्टॉप लॉस/टेक प्रॉफिट का अनुकूलन करें
परीक्षण क्रॉस-एसेट पैरामीटर अंतर
स्वचालित पैरामीटर अनुकूलन के लिए मशीन लर्निंग एल्गोरिदम पेश करें
एमएसीडी स्टोकास्टिक्स रेंज ब्रेकआउट रणनीति एमएसीडी और स्टोकास्टिक्स दोनों से संरेखित संकेतों के आधार पर प्रवेश करके रेंज ब्रेकआउट पर पूंजीकरण करती है। स्टॉप लॉस / टेक प्रॉफिट तंत्र जोखिमों को और नियंत्रित करता है। इसका उद्देश्य अल्पकालिक रुझानों को पकड़ना है लेकिन फिर भी बेहतर प्रदर्शन के लिए पैरामीटर ट्यूनिंग और अधिक संकेतक संयोजन के लिए जगह छोड़ता है।
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="macd stoch strategy", shorttitle="benzo MACD stoch",overlay=true) // Getting inputs fast_length = input(title = "Fast Length", defval = 180) slow_length = input(title = "Slow Length", defval = 390) src = input(title = "Source", defval = close) signal_length = input.int(title = "Signal Smoothing", minval = 1, maxval = 500, defval = 135) sma_source = input.string(title = "Oscillator MA Type", defval = "EMA", options = ["SMA", "EMA"]) sma_signal = input.string(title = "Signal Line MA Type", defval = "EMA", options = ["SMA", "EMA"]) // Calculating fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length) slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length) hist = macd - signal // hline(0, "Zero Line", color = color.new(#787B86, 50)) // plot(hist, title = "Histogram", style = plot.style_columns, color = (hist >= 0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #FF5252))) // plot(macd, title = "MACD", color = #2962FF) // plot(signal, title = "Signal", color = #FF6D00) periodK = input.int(14, title="%K Length", minval=1) smoothK = input.int(1, title="%K Smoothing", minval=1) periodD = input.int(3, title="%D Smoothing", minval=1) k = ta.sma(ta.stoch(close, high, low, periodK), smoothK) d = ta.sma(k, periodD) // plot(k, title="%K", color=#2962FF) // plot(d, title="%D", color=#FF6D00) // h0 = hline(80, "Upper Band", color=#787B86) // hline(50, "Middle Band", color=color.new(#787B86, 50)) // h1 = hline(20, "Lower Band", color=#787B86) // fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background") // Make inputs that set the take profit % (optional) longProfitPerc = input.float(3, title="Long Take Profit (%)", minval=0.0, step=0.1) * 0.01 shortProfitPerc = input.float(3, title="Short Take Profit (%)",minval=0.0, step=0.1) * 0.01 // Calculate trading conditions enterLong = macd>signal and ta.crossover(k,30) enterShort = macd<signal and ta.crossunder(k,70) // Figure out take profit price longExitPrice = strategy.position_avg_price * (1 + longProfitPerc) shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc) // Plot take profit values for confirmation plot(strategy.position_size > 0 ? longExitPrice : na, color=color.green, style=plot.style_circles, linewidth=3, title="Long Take Profit") plot(strategy.position_size < 0 ? shortExitPrice : na, color=color.red, style=plot.style_circles, linewidth=3, title="Short Take Profit") // Submit entry orders if enterLong strategy.entry("long", strategy.long) if enterShort strategy.entry("short", strategy.short) // STEP 3: // Submit exit orders based on take profit price if strategy.position_size > 0 strategy.exit("long TP", limit=longExitPrice) if strategy.position_size < 0 strategy.exit("short TP", limit=shortExitPrice)