यह रणनीति कई ट्रेंडलाइन ब्रेकआउट पर आधारित एक बुद्धिमान ट्रेडिंग सिस्टम है। यह गतिशील रूप से प्रमुख समर्थन और प्रतिरोध स्तरों की पहचान करता है, ट्रेंडलाइन ढलानों की गणना करने के लिए कई तकनीकी संकेतकों को जोड़ता है, और जब कीमतें ट्रेंडलाइन को तोड़ती हैं तो ट्रेडों को निष्पादित करता है। यह रणनीति न केवल बाजार की प्रवृत्ति मोड़ बिंदुओं को पकड़ती है बल्कि विभिन्न बाजार स्थितियों के अनुकूल होने के लिए भी अनुकूलित की जा सकती है।
मूल तर्क में तीन मुख्य घटक शामिल हैंः पहला, यह प्रारंभिक समर्थन और प्रतिरोध स्तरों को स्थापित करने के लिए एक बैकबैक अवधि का उपयोग करके प्रमुख उच्च और निम्न की पहचान करता है; दूसरा, यह बाजार की अस्थिरता के लिए बेहतर अनुकूलन के लिए चुनी गई विधि (एटीआर, मानक विचलन, या रैखिक प्रतिगमन) के आधार पर गतिशील रूप से प्रवृत्ति रेखा ढलानों की गणना करता है; अंत में, यह प्रवृत्ति रेखाओं के साथ मूल्य संबंधों की निगरानी करता है और ब्रेकआउट पर ट्रेडिंग संकेतों को ट्रिगर करता है। सिस्टम में वास्तविक ट्रेडिंग स्थितियों का अनुकरण करते हुए, बैकपेंटिंग पैरामीटर के माध्यम से बैकटेस्ट ओवरफिटिंग को रोकने के लिए तंत्र भी शामिल हैं।
यह रणनीति विभिन्न तकनीकी विश्लेषण विधियों का व्यापक रूप से उपयोग करके एक विश्वसनीय ट्रेंडलाइन ब्रेकआउट ट्रेडिंग प्रणाली का निर्माण करती है। इसकी ताकत स्पष्ट ट्रेडिंग संकेत प्रदान करते हुए बाजार में परिवर्तन के लिए गतिशील रूप से अनुकूलन करने की क्षमता में निहित है। हालांकि कुछ अंतर्निहित जोखिम मौजूद हैं, उचित पैरामीटर सेटिंग और निरंतर अनुकूलन के माध्यम से रणनीति की स्थिरता और लाभप्रदता में काफी सुधार किया जा सकता है।
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-18 08:00:00 period: 1d basePeriod: 1d 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/ // © Alexgoldhunter //@version=5 strategy("Trendlines with Breaks Strategy [AlexGoldHunter]", overlay=true) // Input parameters length = input.int(14, title="Swing Detection Lookback") mult = input.float(1.0, title="Slope", minval=0, step=0.1) calcMethod = input.string('Atr', title="Slope Calculation Method", options=['Atr','Stdev','Linreg']) backpaint = input(true, tooltip='Backpainting offset displayed elements in the past. Disable backpainting to see real-time information returned by the indicator.') // Style settings upCss = input.color(color.teal, title="Up Trendline Color", group="Style") dnCss = input.color(color.red, title="Down Trendline Color", group="Style") showExt = input(true, title="Show Extended Lines") // Calculations var upper = 0.0 var lower = 0.0 var slope_ph = 0.0 var slope_pl = 0.0 var offset = backpaint ? length : 0 n = bar_index src = close ph = ta.pivothigh(length, length) pl = ta.pivotlow(length, length) // Slope Calculation Method slope = switch calcMethod 'Atr' => ta.atr(length) / length * mult 'Stdev' => ta.stdev(src, length) / length * mult 'Linreg' => math.abs(ta.sma(src * n, length) - ta.sma(src, length) * ta.sma(n, length)) / ta.variance(n, length) / 2 * mult // Get slopes and calculate trendlines slope_ph := ph ? slope : slope_ph slope_pl := pl ? slope : slope_pl upper := ph ? ph : upper - slope_ph lower := pl ? pl : lower + slope_pl var upos = 0 var dnos = 0 upos := ph ? 0 : close > upper - slope_ph * length ? 1 : upos dnos := pl ? 0 : close < lower + slope_pl * length ? 1 : dnos // Extended Lines // var uptl = line.new(na, na, na, na, color=upCss, style=line.style_dashed, extend=extend.right) // var dntl = line.new(na, na, na, na, color=dnCss, style=line.style_dashed, extend=extend.right) // if ph and showExt // uptl.set_xy1(n - offset, backpaint ? ph : upper - slope_ph * length) // uptl.set_xy2(n - offset + 1, backpaint ? ph - slope : upper - slope_ph * (length + 1)) // if pl and showExt // dntl.set_xy1(n - offset, backpaint ? pl : lower + slope_pl * length) // dntl.set_xy2(n - offset + 1, backpaint ? pl + slope : lower + slope_pl * (length + 1)) // Plots plot(backpaint ? upper : upper - slope_ph * length, title="Upper", color=ph ? na : upCss, offset=-offset) plot(backpaint ? lower : lower + slope_pl * length, title="Lower", color=pl ? na : dnCss, offset=-offset) // Breakouts plotshape(upos > upos[1] ? low : na, title="Upper Break", style=shape.labelup, location=location.absolute, color=upCss, text="alex_buy_now", textcolor=color.white, size=size.tiny) plotshape(dnos > dnos[1] ? high : na, title="Lower Break", style=shape.labeldown, location=location.absolute, color=dnCss, text="alex_sell_now", textcolor=color.white, size=size.tiny) // Strategy: Buy and Sell conditions if (upos > upos[1]) strategy.entry("Buy", strategy.long) if (dnos > dnos[1]) strategy.entry("Sell", strategy.short) // Alerts alertcondition(upos > upos[1], title="Upward Breakout", message="Price broke the down-trendline upward") alertcondition(dnos > dnos[1], title="Downward Breakout", message="Price broke the up-trendline downward")