दोहरी प्रवृत्ति ब्रेकआउट रणनीति में बाजार में संभावित मोड़ बिंदुओं की पहचान करने के लिए ट्रेंडलाइन, चलती औसत क्रॉसओवर और मूल्य चैनल ब्रेकआउट सहित कई तकनीकी संकेतकों को एकीकृत किया गया है। इसका उद्देश्य रुझानों को पकड़ना और गति शिफ्ट पर पूंजीकरण करना है। यह रणनीति अपेक्षाकृत मजबूत प्रविष्टियों और निकास के लिए प्रवृत्ति ट्रैकिंग और ब्रेकआउट संकेतों को जोड़ती है, लेकिन इसमें झूठे ब्रेकआउट का कुछ जोखिम भी होता है।
यह रणनीति सबसे पहले तेजी और मंदी के रुझानों को विभाजित करने के लिए धुरी उच्च और निम्न का उपयोग करती है। जब कीमत प्रवृत्ति रेखा को तोड़ती है, तो यह एक संभावित प्रवृत्ति उलट का संकेत देती है। वास्तविक उतार-चढ़ाव के साथ रखने के लिए एटीआर विधि का उपयोग करके ढलान की गणना की जाती है।
यह रणनीति तेजी से और धीमी क्रॉसओवर ट्रेडिंग के लिए 5 दिन की अल्पकालिक चलती औसत और 34 दिन की लंबी अवधि की चलती औसत को अपनाती है। लंबी एमए के ऊपर एक छोटी एमए क्रॉसिंग खरीद संकेत देती है, जबकि नीचे क्रॉसिंग बिक्री संकेत देती है। तेज एमए अल्पकालिक रुझानों को पकड़ती है और धीमी एमए दीर्घकालिक रुझानों को ट्रैक करती है।
5-दिवसीय मूल्य चैनल को भी रणनीति में कॉन्फ़िगर किया गया है। ऊपरी बैंड से ऊपर तोड़ने से लंबी प्रविष्टि होती है और निचले बैंड से नीचे तोड़ने से अल्पकालिक मूल्य ब्रेकआउट को पकड़ने के लिए छोटी प्रविष्टि होती है। यह ब्रेकआउट संकेतों की विश्वसनीयता निर्धारित करने के लिए एमए क्रॉसओवर के साथ काम करता है।
तीन प्रकार के तकनीकी संकेतकों को एक रणनीति में एकीकृत किया गया है ताकि एक मजबूत दोहरी पुष्टि तंत्र बनाया जा सके, जिससे झूठे ट्रेडों से बचा जा सके।
अपेक्षाकृत विश्वसनीय संकेतों के लिए कई संकेतकों को एकीकृत करता है, झूठे ब्रेकआउट से नुकसान को कम करता है।
तेज एमए और मूल्य चैनल अल्पकालिक प्रवृत्ति परिवर्तन को तेजी से पकड़ते हैं। धीमी एमए और प्रवृत्ति रेखाएं स्थिर प्रविष्टियों और निकास के लिए दीर्घकालिक प्रवृत्तियों का पालन करती हैं।
विभिन्न उत्पादों और समय सीमाओं में अनुकूलन के लिए समायोज्य मापदंडों के साथ स्वच्छ कोड संरचना।
प्रवृत्ति ट्रैकिंग और ब्रेकआउट संकेतों को मजबूत रुझानों में लाभप्रदता के लिए जोड़ती है, और रेंज-बाउंड बाजारों में whipsaws से बचती है।
झूठे ब्रेकआउट के कुछ जोखिम हो सकते हैं, विशेष रूप से रेंज-बाउंड परिदृश्यों में, जिससे नुकसान हो सकता है।
एमए क्रॉस की पिछड़ती प्रकृति में प्रमुख रुझान उलटने के बाद टॉप खरीदने या बॉटम बेचने का जोखिम होता है।
कई एकीकृत संकेतकों के लिए पैरामीटर ट्यूनिंग के लिए भारी बैकटेस्टिंग और गणना की आवश्यकता होती है।
ब्रेकआउट सत्यापन के लिए वॉल्यूम संकेतक जोड़े जा सकते हैं, उदाहरण के लिए ब्रेकआउट पर वॉल्यूम विस्तार की आवश्यकता होती है।
ओवरसोल्ड/ओवरबॉट संकेतकों से खरीद/बिक्री समाप्ति के परिदृश्यों को रोका जा सकता है।
गलत ट्रेडों पर हानि को नियंत्रित करने के लिए स्टॉप लॉस।
बड़ी संख्या में ऐतिहासिक डेटा के माध्यम से तेजी से इष्टतम मापदंडों को खोजने के लिए मशीन लर्निंग।
वॉल्यूम या आरएसआई फ़िल्टर जोड़ें ताकि ट्रेंड में विश्वसनीय बदलावों की पुष्टि हो सके और झूठे ब्रेकआउट से नुकसान से बचने के लिए सख्त फ़िल्टर सेट करें।
विभिन्न उत्पादों के लिए एमए और चैनल मापदंडों को उनकी विशेषताओं से मेल खाने के लिए समायोजित करें।
ट्रेड प्रति हानि को सीमित करने के लिए स्टॉप लॉस, स्टॉप लिमिट ऑर्डर के माध्यम से स्टॉप लॉस तंत्र जोड़ें।
सीमा-बंद बाजारों के दौरान कम बार और मजबूत स्थापित रुझानों के दौरान अधिक बार व्यापार करने के लिए अनुकूलन दृष्टिकोण अपनाएं।
डीप लर्निंग मॉडल को प्रशिक्षित करें ताकि वे केवल तकनीकी संकेतकों का उपयोग करने के बजाय खरीद/बिक्री संकेत उत्पन्न कर सकें, अधिक भविष्य कहने वाली रणनीतियों को खोजने के लिए तंत्रिका नेटवर्क
यह रणनीति कई लोकप्रिय तकनीकी संकेतकों को मिलाकर एक दोहरी पुष्टि प्रणाली का गठन करती है, जो अपेक्षाकृत स्थिर बैकटेस्ट परिणामों के साथ प्रवृत्ति परिवर्तनों को प्रभावी ढंग से पकड़ने में सक्षम है। लेकिन झूठे ब्रेकआउट के कुछ जोखिम बने हुए हैं, जिन्हें फ़िल्टर, स्टॉप लॉस, पैरामीटर ट्यूनिंग और मशीन लर्निंग तकनीकों को जोड़कर और बेहतर बनाया जा सकता है। यह लाइव ट्रेडिंग के लिए रणनीति की मजबूती को मजबूत कर सकता है।
/*backtest start: 2024-02-11 00:00:00 end: 2024-02-18 00:00:00 period: 1h basePeriod: 15m 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/ // © FinanceUpPvtLtd //@version=5 strategy("FINANCE UP FREE STRATEGY (+919665229664)", overlay=true) // Script 01 - Trendlines length_tl = input.int(14, 'Swing Detection Lookback') mult_tl = input.float(1., 'Slope', minval=0, step=.1) calcMethod_tl = input.string('Atr', 'Slope Calculation Method', options=['Atr', 'Stdev', 'Linreg']) backpaint_tl = input(true, tooltip='Backpainting offset displayed elements in the past. Disable backpainting to see real-time information returned by the indicator.') upCss_tl = input(color.teal, 'Up Trendline Color', group='Style') dnCss_tl = input(color.red, 'Down Trendline Color', group='Style') showExt_tl = input(true, 'Show Extended Lines') var upper_tl = 0. var lower_tl = 0. var slope_ph_tl = 0. var slope_pl_tl = 0. var offset_tl = backpaint_tl ? length_tl : 0 n_tl = bar_index src_tl = close ph_tl = ta.pivothigh(length_tl, length_tl) pl_tl = ta.pivotlow(length_tl, length_tl) slope_tl = switch calcMethod_tl 'Atr' => ta.atr(length_tl) / length_tl * mult_tl 'Stdev' => ta.stdev(src_tl, length_tl) / length_tl * mult_tl 'Linreg' => math.abs(ta.sma(src_tl * n_tl, length_tl) - ta.sma(src_tl, length_tl) * ta.sma(n_tl, length_tl)) / ta.variance(n_tl, length_tl) / 2 * mult_tl slope_ph_tl := ph_tl ? slope_tl : slope_ph_tl slope_pl_tl := pl_tl ? slope_tl : slope_pl_tl upper_tl := ph_tl ? ph_tl : upper_tl - slope_ph_tl lower_tl := pl_tl ? pl_tl : lower_tl + slope_pl_tl var upos_tl = 0 var dnos_tl = 0 upos_tl := ph_tl ? 0 : close > upper_tl - slope_ph_tl * length_tl ? 1 : upos_tl dnos_tl := pl_tl ? 0 : close < lower_tl + slope_pl_tl * length_tl ? 1 : dnos_tl // var uptl_tl = line.new(na, na, na, na, color=upCss_tl, style=line.style_dashed, extend=extend.right) // var dntl_tl = line.new(na, na, na, na, color=dnCss_tl, style=line.style_dashed, extend=extend.right) // if ph_tl and showExt_tl // uptl_tl.set_xy1(n_tl - offset_tl, backpaint_tl ? ph_tl : upper_tl - slope_ph_tl * length_tl) // uptl_tl.set_xy2(n_tl - offset_tl + 1, backpaint_tl ? ph_tl - slope_tl : upper_tl - slope_ph_tl * (length_tl + 1)) // if pl_tl and showExt_tl // dntl_tl.set_xy1(n_tl - offset_tl, backpaint_tl ? pl_tl : lower_tl + slope_pl_tl * length_tl) // dntl_tl.set_xy2(n_tl - offset_tl + 1, backpaint_tl ? pl_tl + slope_tl : lower_tl + slope_pl_tl * (length_tl + 1)) plot(backpaint_tl ? upper_tl : upper_tl - slope_ph_tl * length_tl, 'Upper', color=ph_tl ? na : upCss_tl, offset=-offset_tl) plot(backpaint_tl ? lower_tl : lower_tl + slope_pl_tl * length_tl, 'Lower', color=pl_tl ? na : dnCss_tl, offset=-offset_tl) plotshape(upos_tl > upos_tl[1] ? low : na, "Upper Break", shape.labelup, location.absolute, upCss_tl, text="B", textcolor=color.white, size=size.tiny) plotshape(dnos_tl > dnos_tl[1] ? high : na, "Lower Break", shape.labeldown, location.absolute, dnCss_tl, text="B", textcolor=color.white, size=size.tiny) alertcondition(upos_tl > upos_tl[1], 'Upward Breakout', 'Price broke the down-trendline upward') alertcondition(dnos_tl > dnos_tl[1], 'Downward Breakout', 'Price broke the up-trendline downward') // Script 02 - Channel Breakout length_channel = input.int(title="Channel Length", minval=1, maxval=1000, defval=5) upBound_channel = ta.highest(high, length_channel) downBound_channel = ta.lowest(low, length_channel) if (not na(close[length_channel])) strategy.entry("LE-LE", strategy.long, stop=upBound_channel + syminfo.mintick, comment="LE-LE") strategy.entry("BECH-DE", strategy.short, stop=downBound_channel - syminfo.mintick, comment="BECH-DE") // Script 03 - MA Cross shortlen_ma = input.int(5, "Short MA Length", minval=1) longlen_ma = input.int(34, "Long MA Length", minval=1) short_ma = ta.sma(close, shortlen_ma) long_ma = ta.sma(close, longlen_ma) plot(short_ma, color=#FF6D00, title="Short MA") plot(long_ma, color=#43A047, title="Long MA") plot(ta.cross(short_ma, long_ma) ? short_ma : na, color=#2962FF, style=plot.style_cross, linewidth=4, title="Cross")