यह रणनीति सुपर ट्रेंड इंडिकेटर और प्राइस चैनल इंडिकेटर पर आधारित है, जो ट्रेडिंग के लिए मूविंग एवरेज सिग्नल के साथ संयुक्त है। इसका मुख्य विचार यह है कि वर्तमान मूल्य असामान्य स्थिति में है या नहीं, यह निर्धारित करने के लिए मूल्य चैनल का उपयोग करना है कि वर्तमान प्रवृत्ति दिशा, और मूविंग एवरेज सिग्नल के साथ संयोजन में ट्रेडिंग सिग्नल उत्पन्न करना।
सुपर ट्रेंड इंडिकेटर की गणना करें। ऊपरी और निचली रेलें क्रमशः वर्तमान कीमत प्लस/माइनस एन गुना एटीआर इंडिकेटर हैं। जब कीमत ऊपरी रेल से अधिक होती है, तो यह तेजी है। जब कीमत निचली रेल से कम होती है, तो यह मंदी है।
मूल्य चैनल संकेतक की गणना करें. मूल्य चैनल रेखा मूल्य के एन-दिवसीय मानक विचलन से गुणा M है. चैनल लाइन से अधिक / कम कीमतों को असामान्य अवस्था माना जाता है.
चलती औसत की गणना करें। क्रमशः ओपन प्राइस, क्लोज प्राइस और सुपर ट्रेंड की औसत रेखाएं लें।
ट्रेडिंग सिग्नल उत्पन्न करेंः
खरीद संकेतः बंद मूल्य सुपर ट्रेंड लाइन के ऊपर पार करता है और खुले मूल्य चलती औसत से अधिक होता है।
बेचने का संकेतः बंद मूल्य सुपर ट्रेंड लाइन के नीचे पार करता है और खुले मूल्य चलती औसत से कम है।
स्टॉप लॉस सेट करें और लाभ मूल्य चैनल लें.
कई संकेतकों का संयोजन गलत संकेतों से बचाता है।
असामान्य मूल्य स्थितियों का न्याय करने के लिए मूल्य चैनल का उपयोग करने से कुछ अवांछित प्रवेश बिंदुओं को फ़िल्टर किया जा सकता है।
चलती औसत के साथ-साथ प्रवृत्ति की दिशा का आकलन करने से प्रवृत्ति के विरुद्ध व्यापार करने से बचें।
स्टॉप लॉस और टेक प्रॉफिट रेंज सेट करना जोखिम को नियंत्रित करता है।
पैरामीटर सेटिंग्स बहुत व्यक्तिपरक हैं और अनुकूलन की आवश्यकता है।
स्टॉप लॉस और टेक प्रॉफिट रेंज बहुत चौड़ी या बहुत संकीर्ण हो सकती है।
मूल्य चैनल पैरामीटर सभी उत्पादों के लिए उपयुक्त नहीं हो सकते हैं, अलग परीक्षण की आवश्यकता है।
तीव्र रुझान परिवर्तन के दौरान महत्वपूर्ण नुकसान हो सकता है।
इष्टतम संयोजन खोजने के लिए मापदंडों का परीक्षण और अनुकूलन करें।
इष्टतम मापदंडों का चयन करने के लिए विभिन्न अवधियों के साथ चलती औसत का परीक्षण करें।
कई उत्पादों पर बैकटेस्ट और क्रमशः प्रदर्शन के अनुसार मापदंडों का चयन करें।
अत्यधिक बड़े एकल नुकसान से बचने के लिए स्टॉप लॉस रणनीति को अनुकूलित करें।
यह रणनीति मूल्य असामान्यताओं और प्रवृत्ति दिशाओं का न्याय करने के लिए कई संकेतकों को जोड़ती है, जो सैद्धांतिक रूप से कुछ झूठे संकेतों को फ़िल्टर कर सकते हैं। हालांकि, पैरामीटर सेटिंग्स अभी भी अनुकूलन के लिए जगह के साथ अपेक्षाकृत व्यक्तिपरक हैं। इसके अलावा, वास्तविक व्यापार में कमीशन और फिसलने जैसी ट्रेडिंग लागतों पर विचार किया जाना चाहिए। कुल मिलाकर, यह रणनीति एक प्रवृत्ति के बाद की रणनीति के रूप में अधिक उपयुक्त है, लेकिन मापदंडों को विभिन्न उत्पादों के लिए अनुकूलित और समायोजित करने की आवश्यकता है।
/*backtest start: 2023-12-10 00:00:00 end: 2023-12-11 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Vol ST VM", overlay=true) source = close hilow = ((high - low)*100) openclose = ((close - open)*100) vol = (volume / hilow) spreadvol = (openclose * vol) VPT = spreadvol + cum(spreadvol) window_len = 28 v_len = 14 price_spread = stdev(high-low, window_len) v = spreadvol + cum(spreadvol) smooth = sma(v, v_len) v_spread = stdev(v - smooth, window_len) shadow = (v - smooth) / v_spread * price_spread out = shadow > 0 ? high + shadow : low + shadow // src = out src1=open src2=low src3=high tf =input(720) len = timeframe.isintraday and timeframe.multiplier >= 1 ? tf / timeframe.multiplier * 7 : timeframe.isintraday and timeframe.multiplier < 60 ? 60 / timeframe.multiplier * 24 * 7 : 7 c = ema(src, len) plot(c,color=color.red) o = ema(src1,len) plot(o,color=color.blue) //h = ema(src3,len) //l=ema(src2,len) // col=c > o? color.lime : color.orange vis = true vl = c ll = o m1 = plot(vl, color=col, linewidth=1, transp=60) m2 = plot(vis ? ll : na, color=col, linewidth=2, transp=80) fill(m1, m2, color=col, transp=70) // vpt=ema(out,len) // INPUTS // st_mult = input(1, title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01) st_period = input(10, title = 'SuperTrend Period', minval = 1) // CALCULATIONS // up_lev = vpt - (st_mult * atr(st_period)) dn_lev = vpt + (st_mult * atr(st_period)) up_trend = 0.0 up_trend := close[1] > up_trend[1] ? max(up_lev, up_trend[1]) : up_lev down_trend = 0.0 down_trend := close[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev // Calculate trend var trend = 0 trend := close > down_trend[1] ? 1: close < up_trend[1] ? -1 : nz(trend[1], 1) // Calculate SuperTrend Line st_line = trend ==1 ? up_trend : down_trend // Plotting plot(st_line[1], color = trend == 1 ? color.green : color.red , style = plot.style_cross, linewidth = 2, title = "SuperTrend") buy=crossover( close, st_line) and close>o sell=crossunder(close, st_line) and close<o //plotshape(crossover( close, st_line), location = location.belowbar, color = color.green,size=size.tiny) //plotshape(crossunder(close, st_line), location = location.abovebar, color = color.red,size=size.tiny) plotshape(buy, title="buy", color=color.green, style=shape.arrowup, location=location.belowbar, size=size.normal, textcolor=color.white, transp=0) //plot for buy icon plotshape(sell, title="sell", color=color.red, style=shape.arrowdown, location=location.abovebar, size=size.normal, textcolor=color.white, transp=0) //plot for sell icon // multiplier = input(title="TP", type=input.float, defval=2, minval=1) src5 = close len5 = input(title="TP length", defval=150, minval=1) offset = 0 calcSlope(src5, len5) => sumX = 0.0 sumY = 0.0 sumXSqr = 0.0 sumXY = 0.0 for i = 1 to len5 val = src5[len5-i] per = i + 1.0 sumX := sumX + per sumY := sumY + val sumXSqr := sumXSqr + per * per sumXY := sumXY + val * per slope = (len5 * sumXY - sumX * sumY) / (len5 * sumXSqr - sumX * sumX) average = sumY / len5 intercept = average - slope * sumX / len5 + slope [slope, average, intercept] var float tmp = na [s, a, i] = calcSlope(src5, len5) vwap1=(i + s * (len5 - offset)) sdev = stdev(close, len5) dev = multiplier * sdev top=vwap1+dev bott=vwap1-dev // z1 = vwap1 + dev x1 = vwap1 - dev low1 = crossover(close, x1) high1 = crossunder(close, z1) plotshape(low1, title="low", text="TP", color=color.red, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.white, transp=0) //plot for buy icon plotshape(high1, title="high", text="TP", color=color.green, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.white, transp=0) //plot for sell icon strategy.entry(id="Enter Long MA", long=true, comment="Buy", when=high1) strategy.entry(id="Short Entry MA", long=false, comment="Sell", when=low1) /////// Alerts ///// alertcondition(buy,title="buy") alertcondition(sell,title="sell") alertcondition(low1,title="sell tp") alertcondition(high1,title="buy tp")