यह रणनीति CCI संकेतक के पिवोट पॉइंट्स का उपयोग गतिशील समर्थन और प्रतिरोध स्तरों की गणना करने के लिए करती है और खरीद और बिक्री संकेतों को खोजने के लिए ट्रेंड जजमेंट को जोड़ती है। यह रणनीति CCI की उलट विशेषताओं और लाभ के लिए मध्यम अवधि की प्रवृत्ति में उलट बिंदुओं को पकड़ने के लिए ट्रेंड ट्रैकिंग क्षमता को एकीकृत करती है।
सीसीआई संकेतक यह दिखा सकता है कि बाजार बहुत कमजोर है या बहुत मजबूत है। 80 और -80 के दो चरम का उपयोग यह निर्धारित करने के लिए किया जा सकता है कि क्या बाजार ओवरबॉट या ओवरसोल्ड राज्य में प्रवेश कर गया है। यह रणनीति सीसीआई की इस विशेषता का उपयोग करती है। बाएं और दाएं 50 बार के पिवोट बिंदुओं की गणना करके, ऊपरी और निचले पिवोट बिंदु प्राप्त किए जाते हैं। फिर समर्थन और प्रतिरोध लाइनों को पिवोट बिंदुओं के आधार पर एक बफर जोड़कर या घटाकर गतिशील रूप से बनाया जाता है।
एक खरीद संकेत तब उत्पन्न होता है जब बंद खुला से अधिक होता है और ऊपरी समर्थन स्तर से कम होता है। एक बिक्री संकेत तब उत्पन्न होता है जब बंद खुला से कम होता है और निचले प्रतिरोध स्तर से अधिक होता है। मुख्य प्रवृत्ति दिशा के खिलाफ ट्रेडिंग संकेतों को फ़िल्टर करने के लिए, रणनीति वर्तमान मुख्य प्रवृत्ति दिशा निर्धारित करने के लिए ईएमए और ढलान संकेतकों को भी जोड़ती है। लंबी प्रविष्टि ट्रेड केवल तब की जाती है जब प्रवृत्ति तेजी से निर्धारित होती है। छोटी प्रविष्टि ट्रेड केवल तब की जाती है जब प्रवृत्ति मंदी के रूप में निर्धारित होती है।
स्टॉप लॉस और टेक प्रॉफिट की गणना गतिशील रूप से एटीआर संकेतक के आधार पर की जाती है, जिससे इस रणनीति का जोखिम नियंत्रण अधिक उचित हो जाता है।
पैरामीटर अनुकूलन, स्टॉप लॉस रेंज आदि को समायोजित करने जैसे तरीके जोखिम को कम करने में मदद कर सकते हैं। इसके अलावा, इस रणनीति का उपयोग अन्य संकेतकों के लिए एक सहायक उपकरण के रूप में किया जा सकता है, इसके संकेतों पर पूरी तरह से भरोसा नहीं करना पड़ता है।
यह रणनीति सीसीआई से लंबी / छोटी स्क्रीनिंग क्षमता और ट्रेंड जजमेंट से फ़िल्टर की पुष्टि को एकीकृत करती है, जिसमें कुछ व्यावहारिक मूल्य होता है। गतिशील स्टॉप लॉस और ले लाभ भी वास्तविक व्यापार में रणनीति को लागू करते समय जोखिम को नियंत्रित करता है। पैरामीटर अनुकूलन और सुधार के माध्यम से, बेहतर परिणामों की उम्मीद की जा सकती है।
/*backtest start: 2023-12-22 00:00:00 end: 2024-01-21 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/ // © AliSignals //@version=5 strategy("CCI based support and resistance strategy", overlay=true ) cci_length = input.int(50, "cci length") right_pivot = input.int(50, "right pivot") left_pivot = input.int(50, "left pivot") buffer = input.float(10.0, "buffer") trend_matter = input.bool(true, "trend matter?") showmid = input.bool ( false , "show mid?") trend_type = input.string("cross","trend type" ,options = ["cross","slope"]) slowma_l = input.int(100, "slow ma length") fastma_l = input.int(50, "fast ma length") slope_l = input.int(5, "slope's length for trend detection") ksl = input.float(1.1) ktp = input.float(2.2) restf = input.timeframe(title="Time Frame of Last Period for Calculating max" , defval="D") // Calculating Upper and Lower CCI cci = ta.cci(hlc3,cci_length) uppercci = 0.0 lowercci = 0.0 uppercci := fixnan(ta.pivothigh(cci, left_pivot, right_pivot)) - buffer lowercci := fixnan(ta.pivotlow (cci, left_pivot, right_pivot)) + buffer midccci = math.avg(uppercci,lowercci) // Support and Resistance based on CCI res = uppercci*(0.015*ta.dev(hlc3,cci_length))+ ta.sma(hlc3,cci_length) sup = lowercci*(0.015*ta.dev(hlc3,cci_length))+ ta.sma(hlc3,cci_length) mid = midccci*(0.015*ta.dev(hlc3,cci_length))+ ta.sma(hlc3,cci_length) // Calculating trend t_cross = 0 t_cross := ta.ema(close,fastma_l) > ta.ema(close,slowma_l) ? 1 : ta.ema(close,fastma_l) < ta.ema(close,slowma_l) ? -1 : t_cross[1] t_slope = 0 t_slope := ta.ema(close,slowma_l) > ta.ema(close,slowma_l)[slope_l] ? 1 : ta.ema(close,slowma_l) < ta.ema(close,slowma_l)[slope_l] ? -1 : t_slope[1] t = 0 t := trend_type == "cross" ? t_cross : trend_type == "slope" ? t_slope : na colort = trend_matter == false ? color.rgb(201, 251, 0) : t == 1 ? color.rgb(14, 243, 132) : t == -1 ? color.rgb(255, 34, 34) : na bull_t = trend_matter == false or t == 1 bear_t = trend_matter == false or t == -1 plot(res, color = colort) plot(sup, color = colort) plot(showmid == true ? mid : na) // Long and Short enter condition buy = bull_t == 1 and ta.lowest (2) < sup and close > open and close > sup sell = bear_t == 1 and ta.highest(2) > res and close < open and close < res plotshape( buy , color=color.rgb(6, 255, 23) , location = location.belowbar, style = shape.triangleup , size = size.normal) plotshape( sell, color=color.rgb(234, 4, 4) , location = location.abovebar, style = shape.triangledown, size = size.normal) atr = ta.atr(100) CLOSE=request.security(syminfo.tickerid, restf, close) max = 0.0 max := CLOSE == CLOSE[1] ? math.max(max[1], atr) : atr act_atr = 0.0 act_atr := CLOSE == CLOSE[1] ? act_atr[1] : max[1] atr1 = math.max(act_atr, atr) dis_sl = atr1 * ksl dis_tp = atr1 * ktp var float longsl = open[1] - dis_sl var float shortsl = open[1] + dis_sl var float longtp = open[1] + dis_tp var float shorttp = open[1] - dis_tp longCondition = buy if (longCondition) strategy.entry("My Long Entry Id", strategy.long) shortCondition = sell if (shortCondition) strategy.entry("My Short Entry Id", strategy.short) longsl := strategy.position_size > 0 ? longsl[1] : close - dis_sl shortsl := strategy.position_size < 0 ? shortsl[1] : close + dis_sl longtp := strategy.position_size > 0 ? longtp[1] : close + dis_tp shorttp := strategy.position_size < 0 ? shorttp[1] : close - dis_tp if strategy.position_size > 0 strategy.exit(id="My Long close Id", from_entry ="My Long Entry Id" , stop=longsl, limit=longtp) if strategy.position_size < 0 strategy.exit(id="My Short close Id", from_entry ="My Short Entry Id" , stop=shortsl, limit=shorttp)