MarcoValente

DI histo + adx

664
This is a DI + ,DI - with ADX , but instead of plot the 2 lines of Directional moviment ( + and -), we have a histogram of the difference between DI+ and DI-. As zero line I used value of 25, so can plot the ADX too
Skrip sumber terbuka

Dalam semangat TradingView yang sebenar, penulis skrip ini telah menerbitkannya dengan menggunakan sumber terbuka supaya pedagang-pedagang dapat memahami dan mengesahkannya. Sorakan kepada penulis! Anda dapat menggunakannya secara percuma tetapi penggunaan semula kod ini dalam penerbitan adalah dikawalselia oleh Peraturan Dalaman. Anda boleh menyukainya untuk menggunakannya pada carta.

Penafian

Maklumat dan penerbitan adalah tidak dimaksudkan untuk menjadi, dan tidak membentuk, nasihat untuk kewangan, pelaburan, perdagangan dan jenis-jenis lain atau cadangan yang dibekalkan atau disahkan oleh TradingView. Baca dengan lebih lanjut di Terma Penggunaan.

Ingin menggunakan skrip ini pada carta?
study("DI histo + adx",overlay=false,scale=scale.left)
len = input(title="Length", type=integer, defval=14)
th = input(title="threshold", type=integer, defval=25)

TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0


SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange
SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus

DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = sma(DX, len)
ve=DIPlus>(DIMinus+(DIPlus*10)/100)
ro=DIMinus>(DIPlus+(DIMinus*10)/100) and ADX>11 and ADX<=25
xve= DIPlus>(DIMinus+(DIPlus*10)/100) and ADX>22
xro=DIMinus>(DIPlus+(DIMinus*10)/100) and ADX>22
fl=DIPlus-DIMinus<abs(10) and ADX<15

di=25+(DIPlus-DIMinus)
//vam=sma(1.2*(ADX-ADX[len]),3)+25
//vad=(vam+2*vam[1]+2*vam[2]+vam[3])/6

cy=di>=25?lime:red
//plot(DIPlus, color=lime,linewidth=2, title="DI+")
//plot(DIMinus, color=red, linewidth=2,title="DI-")
plot(ADX, color=orange,linewidth=1,transp=0, title="ADX")
//plot(vam,title="velocita",linewidth=1,transp=50,color=lime)
plot(di,style=histogram,linewidth=4,color=cy,transp=50,histbase=25,title="DI")
hline(th, color=gray)