यह रणनीति अधिक व्यापारिक अवसरों की खोज के लिए इनपुट के रूप में विभिन्न प्रकार के चलती औसत के साथ बोलिंगर बैंड का निर्माण करती है। यह चुनने के लिए 12 प्रकार के चलती औसत प्रदान करती है, जिससे इष्टतम मापदंडों के लिए लचीले संयोजन की अनुमति मिलती है।
इस रणनीति का मूल उपयोगकर्ता इनपुट द्वारा चयनित चलती औसत प्रकारों का उपयोग करने में निहित है, जिसमें SMA, EMA, WMA, DEMA, TMA, VAR, WWMA, ZLEMA, TSF, HULL, TILL आदि शामिल हैं, कुल मिलाकर 12 हैं, जो ट्रेडिंग सिग्नल बनाने के लिए बोलिंगर बैंड के साथ संयुक्त हैं। बोलिंगर बैंड का मध्य बैंड चयनित चलती औसत को अपनाता है, जबकि ऊपरी और निचले बैंड मध्य बैंड से एक सकारात्मक / नकारात्मक मानक विचलन हैं। जब कीमत ऊपरी बैंड को तोड़ती है, तो कम बैंड को तोड़ती है। विभिन्न प्रकार के चलती औसत को जोड़कर, मापदंडों को अधिक स्थिर और सटीक ट्रेडिंग संकेतों के लिए अनुकूलित किया जा सकता है।
संहिता के मुख्य घटक निम्नलिखित हैंः
इस रणनीति का सबसे बड़ा लाभ कई प्रकार के चलती औसत प्रदान करना है। विभिन्न बाजार वातावरण प्रतिक्रिया संवेदनशीलता के मामले में विभिन्न चलती औसत के अनुकूल हैं। कई चलती औसत प्रकारों को अपनाने से रणनीति की अनुकूलन क्षमता में काफी वृद्धि होती है। इसके अलावा, यह रणनीति चलती औसत की लंबाई के लिए पैरामीटर अनुकूलन की अनुमति देती है, ताकि इष्टतम संयोजन मिल सकें और इस प्रकार अधिक सटीक व्यापार संकेत प्राप्त हो सकें।
इस रणनीति का मुख्य जोखिम चलती औसत से ही अराजक संकेतों में निहित है, जिसमें कई झूठे ब्रेकआउट की संभावनाएं हैं। इसके अलावा, बोलिंगर बैंड्स संकेतक जंगली मूल्य उतार-चढ़ाव के लिए काफी संवेदनशील है, जिससे मध्य बैंड के लिए प्रभावी ढंग से मूल्य को ट्रैक करना मुश्किल हो जाता है। इससे उचित पैरामीटर ट्यूनिंग के साथ अधिक स्थिर प्रकार के चलती औसत का उपयोग करना पड़ता है।
रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
यह रणनीति समग्र रूप से काफी अभिनव है, जो बोलिंगर बैंड्स संकेतक को अधिक परिष्कृत अनुप्रयोगों के साथ समृद्ध करती है। संयुक्त चलती औसत को समायोजित करके, अधिक सटीक और स्थिर संकेत प्राप्त किए जा सकते हैं। यह बोलिंगर बैंड्स रणनीतियों को अनुकूलित करने के लिए नए विचार भी खोलता है। पैरामीटर ट्यूनिंग और अनुकूलन के साथ, यह रणनीति एक बहुत ही व्यावहारिक व्यापार उपकरण बन सकती है।
/*backtest start: 2023-01-30 00:00:00 end: 2023-10-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Bollinger Bands Strategy (MA type)", overlay=true) src = input(close, title="Source") length = input(20,step=10, minval=1) mult = input(1,type=input.float, minval=0.001, maxval=50, title="StdDev") length1=input(26, "Long Moving Average Length", minval=1) length2=input(9, "Trigger Length", minval=1) T3a1 = input(0.7, "TILLSON T3 Volume Factor", step=0.1) //////////// mav = input(title="Moving Average Type", defval="VAR", options=["SMA", "EMA", "WMA", "DEMA", "TMA", "VAR", "WWMA", "ZLEMA", "TSF", "HULL", "TILL"]) Var_Func(src,length)=> valpha=2/(length+1) vud1=src>src[1] ? src-src[1] : 0 vdd1=src<src[1] ? src[1]-src : 0 vUD=sum(vud1,9) vDD=sum(vdd1,9) vCMO=nz((vUD-vDD)/(vUD+vDD)) VAR=0.0 VAR:=nz(valpha*abs(vCMO)*src)+(1-valpha*abs(vCMO))*nz(VAR[1]) VAR=Var_Func(src,length) DEMA = ( 2 * ema(src,length)) - (ema(ema(src,length),length) ) Wwma_Func(src,length)=> wwalpha = 1/ length WWMA = 0.0 WWMA := wwalpha*src + (1-wwalpha)*nz(WWMA[1]) WWMA=Wwma_Func(src,length) Zlema_Func(src,length)=> zxLag = length/2==round(length/2) ? length/2 : (length - 1) / 2 zxEMAData = (src + (src - src[zxLag])) ZLEMA = ema(zxEMAData, length) ZLEMA=Zlema_Func(src,length) Tsf_Func(src,length)=> lrc = linreg(src, length, 0) lrc1 = linreg(src,length,1) lrs = (lrc-lrc1) TSF = linreg(src, length, 0)+lrs TSF=Tsf_Func(src,length) HMA = wma(2 * wma(src, length / 2) - wma(src, length), round(sqrt(length))) T3e1=ema(src, length) T3e2=ema(T3e1,length) T3e3=ema(T3e2,length) T3e4=ema(T3e3,length) T3e5=ema(T3e4,length) T3e6=ema(T3e5,length) T3c1=-T3a1*T3a1*T3a1 T3c2=3*T3a1*T3a1+3*T3a1*T3a1*T3a1 T3c3=-6*T3a1*T3a1-3*T3a1-3*T3a1*T3a1*T3a1 T3c4=1+3*T3a1+T3a1*T3a1*T3a1+3*T3a1*T3a1 T3=T3c1*T3e6+T3c2*T3e5+T3c3*T3e4+T3c4*T3e3 getMA(src, length) => ma = 0.0 if mav == "SMA" ma := sma(src, length) ma if mav == "EMA" ma := ema(src, length) ma if mav == "WMA" ma := wma(src, length) ma if mav == "DEMA" ma := DEMA ma if mav == "TMA" ma := sma(sma(src, ceil(length / 2)), floor(length / 2) + 1) ma if mav == "VAR" ma := VAR ma if mav == "WWMA" ma := WWMA ma if mav == "ZLEMA" ma := ZLEMA ma if mav == "TSF" ma := TSF ma if mav == "HULL" ma := HMA ma if mav == "TILL" ma := T3 ma ma ////////// basis = getMA(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev offset = input(0, "Offset",minval = -500, maxval = 500) plot(basis, "Basis",color=#FF6D00, offset = offset) p1 = plot(upper, "Upper", color=#2962FF, offset = offset) p2 = plot(lower, "Lower", color=#2962FF, offset = offset) fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95)) ///////// buyEntry = crossover(src, lower) sellEntry = crossunder(src, upper) if (crossover(src, lower)) strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE") else strategy.cancel(id="BBandLE") if (crossunder(src, upper)) strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE") else strategy.cancel(id="BBandSE") //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)