متعدد حرکت پذیر اوسط بولنگر بینڈ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-06 15:08:26
ٹیگز:

img

جائزہ

یہ حکمت عملی زیادہ سے زیادہ تجارتی مواقع دریافت کرنے کے لئے مختلف قسم کے چلتے ہوئے اوسط کے ساتھ بولنگر بینڈ کی تعمیر کرتی ہے۔ یہ انتخاب کرنے کے لئے 12 قسم کے چلتے ہوئے اوسط فراہم کرتا ہے ، جس سے زیادہ سے زیادہ پیرامیٹرز کے ل flexible لچکدار امتزاج کی اجازت ملتی ہے۔

حکمت عملی منطق

اس حکمت عملی کا مرکز صارف کے ان پٹ کے ذریعہ منتخب کردہ حرکت پذیر اوسط کی اقسام کا استعمال کرنا ہے ، بشمول ایس ایم اے ، ای ایم اے ، ڈبلیو ایم اے ، ڈی ای ایم اے ، ٹی ایم اے ، وی اے آر ، ڈبلیو ایم اے ، زیلما ، ٹی ایس ایف ، ہول ، ٹیل وغیرہ ، مجموعی طور پر 12 ، بولنگر بینڈ کے ساتھ مل کر تجارتی سگنل بنانے کے لئے۔ بولنگر بینڈ کی درمیانی بینڈ منتخب شدہ حرکت پذیر اوسط کو اپناتا ہے ، جبکہ اوپری اور نچلی بینڈ درمیانی بینڈ سے ایک مثبت / منفی معیاری انحراف ہیں۔ جب قیمت اوپری بینڈ کو توڑتی ہے تو مختصر ، جب قیمت نچلی بینڈ کو توڑتی ہے۔ مختلف قسم کے حرکت پذیر اوسط کو جوڑ کر ، پیرامیٹرز کو زیادہ مستحکم اور درست تجارتی سگنل کے لئے بہتر بنایا جاسکتا ہے۔

کوڈ کے اہم اجزاء یہ ہیں:

  1. 12 قسم کے چلتے ہوئے اوسط کے لئے حساب کے افعال، بشمول SMA، EMA، WMA وغیرہ.
  2. getMA فنکشن mav ان پٹ پیرامیٹر کی بنیاد پر متعلقہ چلتی اوسط لوٹاتا ہے.
  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)

مزید