यह रणनीति डबल-लेयर सुपरट्रेंड चैनलों का निर्माण करती है और जब कीमत चैनलों के माध्यम से टूटती है तो ट्रेडिंग सिग्नल उत्पन्न करती है। यह अनुकूलन प्रभाव के लिए मूल्य अस्थिरता का उपयोग करके चैनल चौड़ाई को भी अनुकूलित करती है। यह प्रवृत्ति के बाद की रणनीतियों से संबंधित है।
मूल्य मानक विचलन और अस्थिरता एटीआर की गणना करें, चैनल चौड़ाई को समायोजित करने के लिए अस्थिरता का उपयोग करें।
दो परतों वाले सुपरट्रेंड चैनल बनाएं, जिसमें आंतरिक परत अधिक संवेदनशील और बाहरी परत अधिक स्थिर हो।
जब कीमत आंतरिक या बाहरी चैनल को तोड़ती है तो खरीद/बिक्री संकेत उत्पन्न करें।
डबल चैनल संरचना कुछ झूठे ब्रेकआउट को फ़िल्टर करने में मदद करती है।
एटीआर अस्थिरता चैनल की चौड़ाई को अनुकूलित करती है, अनुकूलन प्रभाव के लिए अस्थिरता बढ़ने पर व्यापक होती है।
सुपरट्रेंड चैनल ट्रेंड को ट्रैक करने में सरल और प्रभावी हैं।
डबल चैनल झूठे ब्रेकआउट को फ़िल्टर करता है और सिग्नल की गुणवत्ता में सुधार करता है।
अस्थिरता अनुकूलन से चैनल विभिन्न बाजार वातावरणों के अनुकूल हो जाते हैं।
सरल पैरामीटर ट्यूनिंग के साथ लागू करना आसान है।
विज़ुअलाइज़ेड चैनल और ब्रेकआउट सहज व्यापार संकेत बनाते हैं।
ब्रेकआउट सिग्नल गलत सिग्नल पैदा कर सकते हैं जिसके परिणामस्वरूप अनावश्यक नुकसान हो सकते हैं।
यह रुझान की दिशा निर्धारित करने में विफल रहता है, विपरीत रुझान व्यापार के जोखिम।
अनुकूली समायोजन अति-समायोजन के साथ बहुत संवेदनशील हो सकता है।
अनुचित पैरामीटर अनुकूलन ओवरफिटिंग का कारण बनता है।
रणनीति का अनुसरण करने वाले रुझान के रूप में, यह सीमा-बंद बाजारों में संघर्ष करता है।
परीक्षण मापदंडों
मुख्य रुझानों को निर्धारित करने के लिए एमए को शामिल करें।
झूठे ब्रेकआउट से बचने के लिए ब्रेकआउट की पुष्टि को अनुकूलित करें.
प्रति व्यापार सीमा हानि के लिए स्टॉप लॉस जोड़ें.
ट्रेडिंग आवृत्ति पर चैनल ट्यूनिंग का मूल्यांकन करें।
गतिशील रूप से मापदंडों का अनुकूलन करने के लिए मशीन लर्निंग का उपयोग करें.
यह रणनीति मूल्य रुझानों को पकड़ने के लिए अनुकूलनशील डबल सुपरट्रेंड चैनलों का उपयोग करती है। यह ट्रेंड को ट्रैक करने में सरल और सहज है। लेकिन जोखिमों में झूठे ब्रेकआउट और गलत ट्रेंड दिशा शामिल हैं। आगे पैरामीटर ट्यूनिंग और पूरक तंत्र रणनीति प्रदर्शन में सुधार कर सकते हैं, जिससे यह एक मजबूत ट्रेंड फॉलोइंग सिस्टम बन जाता है।
/*backtest start: 2023-08-20 00:00:00 end: 2023-09-19 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("SuperTrend Cloud Strategy", shorttitle="SuperTrend Cloud Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital = 1000) //Inputs multi = input(title="Multiplier", type=input.float, step=0.1, defval=3, minval=1) period = input(title="Period", type=input.integer, step=1, defval=10, minval=1) SelfAdjust = input(title="Self-Adjusting", type=input.bool, defval = false) //////////////////////////////////////////////////////////////////////////////// // BACKTESTING RANGE // From Date Inputs fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2019, title = "From Year", minval = 1970) // To Date Inputs toDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2020, title = "To Year", minval = 1970) // Calculate start/end date and time condition startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true //////////////////////////////////////////////////////////////////////////////// dev = stdev(close, period) stdDev = (dev / close) * 100 + 1 MultDev = SelfAdjust ? multi * stdDev : multi up_lev1 = hl2 - MultDev * atr(period) dn_lev1 = hl2 + MultDev * atr(period) up_lev2 = hl2 - (MultDev * 2 * atr(period)) dn_lev2 = hl2 + (MultDev * 2 * atr(period)) up_trend1 = 0.0 up_trend1 := close[1] > up_trend1[1] ? max(up_lev1, up_trend1[1]) : up_lev1 up_trend2 = 0.0 up_trend2 := close[1] > up_trend2[1] ? max(up_lev2, up_trend2[1]) : up_lev2 down_trend1 = 0.0 down_trend1 := close[1] < down_trend1[1] ? min(dn_lev1, down_trend1[1]) : dn_lev1 down_trend2 = 0.0 down_trend2 := close[1] < down_trend2[1] ? min(dn_lev2, down_trend2[1]) : dn_lev2 trend1 = 0 trend1 := close > down_trend1[1] ? 1: close < up_trend1[1] ? -1 : nz(trend1[1], 1) trend2 = 0 trend2 := close > down_trend2[1] ? 1: close < up_trend2[1] ? -1 : nz(trend2[1], 1) st_line1 = trend1 == 1 ? up_trend1 : down_trend1 st_line2 = trend2 == 1 ? up_trend2 : down_trend2 // Plotting plot1 = plot(st_line1, color = trend1 == 1 ? color.green : color.red , style = plot.style_line, linewidth = 1, title = "SuperTrend 1") plot2 = plot(st_line2, color = trend2 == 1 ? color.green : color.red , style = plot.style_line, linewidth = 1, title = "SuperTrend 2") fill(plot1, plot2, color = color.aqua, title = "Cloud") buy = crossover(close, st_line1) and close > st_line2 or crossover(close, st_line2) and close > st_line1 sell = crossunder(close, st_line1) and close < st_line2 or crossunder(close, st_line2) and close < st_line1 if(buy and time_cond) strategy.entry("long", long = true , comment="long") if (close < st_line1 and time_cond or close < st_line2 and time_cond) strategy.close("long") if (not time_cond) strategy.close_all()