मल्टीपल मूविंग एवरेज बोलिंगर बैंड रणनीतियाँ


निर्माण तिथि: 2024-02-06 15:08:26 अंत में संशोधित करें: 2024-02-06 15:08:26
कॉपी: 4 क्लिक्स: 632
1
ध्यान केंद्रित करना
1617
समर्थक

मल्टीपल मूविंग एवरेज बोलिंगर बैंड रणनीतियाँ

अवलोकन

यह रणनीति विभिन्न प्रकार के चलती औसत के इनपुट के माध्यम से ब्रिन बैंड का निर्माण करती है, जिससे अधिक व्यापारिक अवसरों का पता लगाया जा सकता है। यह 12 प्रकार के चलती औसत प्रदान करता है, जिन्हें सर्वोत्तम पैरामीटर प्राप्त करने के लिए लचीले ढंग से जोड़ा जा सकता है।

रणनीति सिद्धांत

इस रणनीति का मूल यह है कि 12 प्रकार के उपयोगकर्ता-इनपुट चलती औसत का उपयोग किया जाता है, जिसमें SMA, EMA, WMA, DEMA, TMA, VAR, WWMA, ZLEMA, TSF, HULL, TILL आदि शामिल हैं, जो कि ब्लिंट बैंड के संकेतकों के साथ मिलकर एक ट्रेडिंग सिग्नल बनाते हैं। ब्लिंट बैंड की मध्यरेखा चयनित चलती औसत का उपयोग करती है, ऊपर और नीचे की ओर की ओर की ओर एक मानक अंतर होता है। जब कीमत ऊपर की ओर टूटती है, तो खाली करें; जब कीमत नीचे की ओर टूटती है, तो अधिक करें। विभिन्न प्रकार की चलती औसत के संयोजन के माध्यम से, पैरामीटर को अनुकूलित किया जा सकता है, अधिक स्थिर और सटीक ट्रेडिंग सिग्नल प्राप्त करने के लिए।

कोड मुख्य रूप से निम्नलिखित भागों में विभाजित हैः

  1. SMA, EMA, WMA आदि सहित 12 प्रकार के चलती औसत प्रकारों के लिए गणना फ़ंक्शंस को परिभाषित करें।
  2. getMA फ़ंक्शन, जो माव इनपुट पैरामीटर के आधार पर संबंधित चलती औसत देता है।
  3. ब्रिन बैंड की मध्य, ऊपरी और निचली कक्षाओं की गणना करें। मध्य कक्षाएं getMA फ़ंक्शन का उपयोग करके प्राप्त चलती औसत हैं।
  4. ब्रिन बैंड को चित्रित करना
  5. वृद्धि सिग्नल और शून्य सिग्नल. कीमतों के शीर्ष पर, जब वे ऊपर की ओर बढ़ते हैं, और नीचे की ओर बढ़ते हैं, जब वे ऊपर की ओर बढ़ते हैं।

श्रेष्ठता विश्लेषण

इस रणनीति का सबसे बड़ा लाभ यह है कि यह कई प्रकार के चलती औसत प्रदान करता है। विभिन्न बाजार स्थितियों में, चलती औसत अलग-अलग प्रतिक्रियाओं के साथ प्रतिक्रिया करता है, और कई प्रकार के चलती औसत को अपनाने से रणनीति की अनुकूलता को काफी बढ़ाया जा सकता है। इसके अलावा, यह रणनीति चलती औसत लंबाई के पैरामीटर को अनुकूलित कर सकती है ताकि सर्वोत्तम संयोजन की तलाश की जा सके, जिससे अधिक सटीक ट्रेडिंग सिग्नल प्राप्त हो सकें।

जोखिम विश्लेषण

इस रणनीति के मुख्य जोखिमों में से एक यह है कि मूविंग एवरेज के संकेतों में गड़बड़ी होती है और कई बार झूठे ब्रेकआउट हो सकते हैं। इसके अलावा, ब्रिन बैंड इंडिकेटर तेज मूल्य परिवर्तनों के प्रति संवेदनशील होते हैं और मध्यवर्ती रेखाएं प्रभावी रूप से कीमतों को ट्रैक करने में असमर्थ होती हैं। इसके लिए अधिक स्थिरता वाले मूविंग एवरेज प्रकारों को अपनाने की आवश्यकता होती है और पैरामीटर को उचित रूप से समायोजित किया जाता है।

अनुकूलन दिशा

इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः

  1. विभिन्न चलती औसत संयोजनों का परीक्षण करें, सबसे अच्छा पैरामीटर ढूंढें और सिग्नल स्थिरता में सुधार करें।
  2. व्यक्तिगत गलत संकेतों के कारण होने वाले नुकसान को नियंत्रित करने के लिए स्टॉप लॉस रणनीति को बढ़ाया गया।
  3. अन्य सूचकांकों के साथ संयोजन में, संकेतों को फ़िल्टर करें और अक्सर व्यापार से बचें। जैसे कि MACD, KD आदि।
  4. पूंजी प्रबंधन को अनुकूलित करें, स्थिति को समायोजित करें।

संक्षेप

यह रणनीति समग्र रूप से बहुत ही अभिनव है, जो ब्रुइन बैंड सूचक के लिए अधिक समृद्ध खंड अनुप्रयोग प्रदान करती है। पोर्टफोलियो चलती औसत को समायोजित करके, एक अधिक सटीक और स्थिर संकेत प्राप्त किया जा सकता है। यह ब्रुइन बैंड रणनीति के अनुकूलन के लिए नए विचार भी प्रदान करता है। पैरामीटर को समायोजित और अनुकूलित करके, यह रणनीति एक बहुत ही व्यावहारिक व्यापारिक उपकरण बन सकती है।

रणनीति स्रोत कोड
/*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)