trading.kay27

Kay_BBands v2

This is the second version of Kay_BBands. But this is infused with ADX.

When +DI (Directional Index) is above -DI, then Upper band will be visible and vice-versa.
This is when the ADX is above the threshold. 20 is the default but can be set to 25.

When the ADX is below the specified threshold, both bands gets visible, showing no trending conditions.

Use it with another band with setting 20/21, 0.6 deviation. Prices keeping above or below the 2nd bands upper or lower bounds shows trending conditions.

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?
//version=2
//2nd version of the band
study(shorttitle="Kay_BBv2", title="Kay_BBands", overlay=true)
length = input(21, minval=1)
hl = input(true, title="Band source as high/low ?", type=bool)
Usrc = hl ? high : close // input(high/Low, title="Upper Src")
Lsrc = hl ? low : close //input(low, title="Lower Src")
mult = input(2.0, minval=0.001, maxval=50)
basis = input(true, title="Use EMA ?", type=bool) ? ema(close, length) : sma(close, length)
//dev = mult * stdev(src, length)
isU = close > basis// and close > basis
//isBetween = (open > basis and close < basis) or (open < basis and close > basis)
isD = close < basis//open < basis and close < basis

upperB = basis + (mult * stdev(Usrc, length))
lowerB = basis - (mult * stdev(Lsrc, length))

upper = isU and highest(Usrc, length) == Usrc ? upperB : upperB < fixnan(upper[1]) ? upperB : fixnan(upper[1])
lower = isD and lowest(Lsrc, length) == Lsrc ? lowerB : lowerB > fixnan(lower[1]) ? lowerB : fixnan(lower[1])

//Adx
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
	minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) => 
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)

[plus1, minus1] = dirmov(dilen)
sig = adx(dilen, adxlen)
level = input(20, title="ADX level", minval = 1)

plot(basis, color=sig > level ? red : blue, title="BB Basis")
p1 = plot(upper, color=black, title="BB Upper modified", transp=0)
p2 = plot(lower, color=black, title="BB Lower modified", transp=0)
fill(p1, p2, color=blue, transp=90, title="Modified")

p3 = plot(upperB, color=sig > 20 ? (plus1 > minus1 ? green : na) : blue, title="BB Upper", transp=0)
p4 = plot(lowerB, color=sig > 20 ? (plus1 < minus1 ? green : na) : blue, title="BB Lower", transp=0)
fill(p3, p4, color=blue, transp=95, title="Background")