RicardoSantos

[RS]Bollinger Bands Stop V0

request for: kapparam.
Açık kaynak kodlu komut dosyası

Gerçek TradingView ruhuyla, bu betiğin yazarı, yatırımcının anlayabilmesi ve doğrulayabilmesi için onu açık kaynak olarak yayınladı. Yazarın eline sağlık! Bunu ücretsiz olarak kullanabilirsiniz, ancak bu kodun bir yayında yeniden kullanımı Kullanım Koşulları ile yönetilir. Bir grafikte kullanmak için favorilere ekleyebilirsiniz.

Feragatname

Bilgiler ve yayınlar, TradingView tarafından sağlanan veya onaylanan finansal, yatırım, işlem veya diğer türden tavsiye veya tavsiyeler anlamına gelmez ve teşkil etmez. Kullanım Şartları'nda daha fazlasını okuyun.

Bu komut dosyasını bir grafikte kullanmak ister misiniz?
study(title='[RS]Bollinger Bands Stop V0', shorttitle='BBS', overlay=true)
bb_src = input(title='Bollinger Band Source:', type=source, defval=close)
stop_src = input(title='Stop Source:', type=source, defval=close)
length = input(title='Length', type=integer, defval=20, minval=1)
mult = input(title='Band Deviation Multiplier:', type=float, defval=2.0, minval=0.001, maxval=50)
risk_multiplier = input(title='Risk Multiplier:', type=float, defval=0.5, minval=0.001, maxval=50)
SHOW_BB = input(title='Show Bollinger Bands?', type=bool, defval=false)
SHOW_ENTRY_ZONE = input(title='Show Entry Zone?', type=bool, defval=false)
SHOW_POINTS = input(title='Show Points?', type=bool, defval=false)

basis = sma(bb_src, length)
dev = mult * stdev(bb_src, length)
upper = basis + dev
lower = basis - dev

plot(title='BB-M', series=not SHOW_BB ? na : basis, color=gray)
p1 = plot(title='BB-U', series=not SHOW_BB ? na : upper, color=silver)
p2 = plot(title='BB-L', series=not SHOW_BB ? na : lower, color=silver)
fill(p1, p2, color=black, transp=90, title='BBf', editable=true)

trend = na(trend[1]) ? 1 : stop_src > upper[1] ? +1 : stop_src < lower[1] ? -1 : trend[1]

smin = trend < 0 ? min(nz(smin[1], upper[1]), upper) : na
smax = trend > 0 ? max(nz(smax[1], lower[1]), lower) : na

adjusted_min = trend < 0 ? min(nz(adjusted_min[1], smin[1]), smin - (risk_multiplier * dev)) : na
adjusted_max = trend > 0 ? max(nz(adjusted_max[1], smax[1]), smax + (risk_multiplier * dev)) : na

s0 = plot(title='S-', series=smin, style=linebr, color=black, transp=0)
s1 = plot(title='S+', series=smax, style=linebr, color=black, transp=0)
s2 = plot(title='E-', series=not SHOW_ENTRY_ZONE ? na : adjusted_min, style=linebr, color=black, transp=0)
s3 = plot(title='E+', series=not SHOW_ENTRY_ZONE ? na : adjusted_max, style=linebr, color=black, transp=0)
fill(s0, s2, color=red, transp=80, title='Z-', editable=true)
fill(s1, s3, color=lime, transp=80, title='Z+', editable=true)

overbought_end = crossunder(stop_src, upper)
oversold_end = crossover(stop_src, lower)

buy_entry_zone = stop_src < adjusted_max and stop_src > smax
sel_entry_zone = stop_src > adjusted_min and stop_src < smin

plot(title='Bz', series=not SHOW_POINTS ? na : buy_entry_zone ? low : na, style=circles, color=green, transp=0, linewidth=4)
plot(title='Sz', series=not SHOW_POINTS ? na : sel_entry_zone ? high : na, style=circles, color=maroon, transp=0, linewidth=4)
plot(title='Be', series=not SHOW_POINTS ? na : overbought_end ? high : na, style=circles, color=black, transp=0, linewidth=4)
plot(title='Se', series=not SHOW_POINTS ? na : oversold_end ? low : na, style=circles, color=black, transp=0, linewidth=4)