
यह रणनीति विभिन्न प्रकार के चलती औसत के इनपुट के माध्यम से ब्रिन बैंड का निर्माण करती है, जिससे अधिक व्यापारिक अवसरों का पता लगाया जा सकता है। यह 12 प्रकार के चलती औसत प्रदान करता है, जिन्हें सर्वोत्तम पैरामीटर प्राप्त करने के लिए लचीले ढंग से जोड़ा जा सकता है।
इस रणनीति का मूल यह है कि 12 प्रकार के उपयोगकर्ता-इनपुट चलती औसत का उपयोग किया जाता है, जिसमें SMA, EMA, WMA, DEMA, TMA, VAR, WWMA, ZLEMA, TSF, HULL, TILL आदि शामिल हैं, जो कि ब्लिंट बैंड के संकेतकों के साथ मिलकर एक ट्रेडिंग सिग्नल बनाते हैं। ब्लिंट बैंड की मध्यरेखा चयनित चलती औसत का उपयोग करती है, ऊपर और नीचे की ओर की ओर की ओर एक मानक अंतर होता है। जब कीमत ऊपर की ओर टूटती है, तो खाली करें; जब कीमत नीचे की ओर टूटती है, तो अधिक करें। विभिन्न प्रकार की चलती औसत के संयोजन के माध्यम से, पैरामीटर को अनुकूलित किया जा सकता है, अधिक स्थिर और सटीक ट्रेडिंग सिग्नल प्राप्त करने के लिए।
कोड मुख्य रूप से निम्नलिखित भागों में विभाजित हैः
इस रणनीति का सबसे बड़ा लाभ यह है कि यह कई प्रकार के चलती औसत प्रदान करता है। विभिन्न बाजार स्थितियों में, चलती औसत अलग-अलग प्रतिक्रियाओं के साथ प्रतिक्रिया करता है, और कई प्रकार के चलती औसत को अपनाने से रणनीति की अनुकूलता को काफी बढ़ाया जा सकता है। इसके अलावा, यह रणनीति चलती औसत लंबाई के पैरामीटर को अनुकूलित कर सकती है ताकि सर्वोत्तम संयोजन की तलाश की जा सके, जिससे अधिक सटीक ट्रेडिंग सिग्नल प्राप्त हो सकें।
इस रणनीति के मुख्य जोखिमों में से एक यह है कि मूविंग एवरेज के संकेतों में गड़बड़ी होती है और कई बार झूठे ब्रेकआउट हो सकते हैं। इसके अलावा, ब्रिन बैंड इंडिकेटर तेज मूल्य परिवर्तनों के प्रति संवेदनशील होते हैं और मध्यवर्ती रेखाएं प्रभावी रूप से कीमतों को ट्रैक करने में असमर्थ होती हैं। इसके लिए अधिक स्थिरता वाले मूविंग एवरेज प्रकारों को अपनाने की आवश्यकता होती है और पैरामीटर को उचित रूप से समायोजित किया जाता है।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
यह रणनीति समग्र रूप से बहुत ही अभिनव है, जो ब्रुइन बैंड सूचक के लिए अधिक समृद्ध खंड अनुप्रयोग प्रदान करती है। पोर्टफोलियो चलती औसत को समायोजित करके, एक अधिक सटीक और स्थिर संकेत प्राप्त किया जा सकता है। यह ब्रुइन बैंड रणनीति के अनुकूलन के लिए नए विचार भी प्रदान करता है। पैरामीटर को समायोजित और अनुकूलित करके, यह रणनीति एक बहुत ही व्यावहारिक व्यापारिक उपकरण बन सकती है।
/*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)