Wick-Pressure-Zones-BigBeluga
Forums › ProRealTime forum Italiano › Supporto ProBuilder › Wick-Pressure-Zones-BigBeluga
- This topic has 2 replies, 2 voices, and was last updated 1 month ago by
Iván.
Viewing 3 posts - 1 through 3 (of 3 total)
-
-
09/04/2025 at 11:25 AM #250347
Da tempo, per individuare zone di inversione, uso l’indicatore di Nicolas Wick Pressure.
Ma oggi su tradingview ho trovato l’indicatore in oggetto che mi sembra più completo.
Ivan se reputi giusto questa mia osservazione , puoi tradurre il codice dell’link qui sotto.
https://it.tradingview.com/script/4haSPpAE-Wick-Pressure-Zones-BigBeluga/
Grazie
09/09/2025 at 10:51 AM #250555Non lo ritieni interessante da pubblicare?
09/09/2025 at 11:08 AM #250559ecco
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187//---------------------------------------------------//PRC_Wick Pressure Zones by BigBeluga//version = 0//09.09.2025//Iván González @ www.prorealcode.com//Sharing ProRealTime knowledge//---------------------------------------------------DEFPARAM DrawOnLastBarOnly = true//---------------------------------------------------// inputs//---------------------------------------------------lookback = 200threshold = 80extendBars = 20maxLevels = 10rsiLen = 14upR = 255upG = 0upB = 0dnR = 0dnG = 255dnB = 0alpha=30//---------------------------------------------------// Variables auxiliares//---------------------------------------------------bodyTop = MAX(open, close)bodyBot = MIN(open, close)// Mechas relativas (evitar división por 0)denUp = MAX(bodyTop, 0.0000001)denLo = MAX(low, 0.0000001)upperWick = (high - bodyTop) / denUplowerWick = (bodyBot - low) / denLomaxUpper = HIGHEST[lookback](upperWick)maxLower = HIGHEST[lookback](lowerWick)sizeUpWick = 0sizeLoWick = 0IF maxUpper > 0 THENsizeUpWick = FLOOR( (upperWick / maxUpper) * 100 )ENDIFIF maxLower > 0 THENsizeLoWick = FLOOR( (lowerWick / maxLower) * 100 )ENDIF//---------------------------------------------------myrsi = RSI[rsiLen](close)vol = volume//---------------------------------------------------// Separación mínima entre zonasONCE startidx = -100000//---------------------------------------------------// Boxes//---------------------------------------------------ONCE n = 0newUpper = sizeUpWick >= threshold AND NOT (sizeLoWick >= threshold) AND myrsi > 50 AND (BarIndex - startidx > extendBars)newLower = sizeLoWick >= threshold AND NOT (sizeUpWick >= threshold) AND myrsi < 50 AND (BarIndex - startidx > extendBars)// Crear zona superiorIF newUpper THENstartidx = BarIndexn = n + 1$side[n] = 1$left[n] = BarIndex - 1$top[n] = high$bot[n] = bodyTop$right[n] = barindex + 1$broken[n] = 0$volume[n] = volume// Límite de zonas: mantener sólo las más recientesIF n > maxLevels THEN// Shift a la izquierdaFOR k = 1 TO n - 1 DO$side[k] = $side[k+1]$left[k] = $left[k+1]$top[k] = $top[k+1]$bot[k] = $bot[k+1]$right[k] = $right[k+1]$broken[k] = $broken[k+1]$volume[k] = $volume[k+1]NEXTn = maxLevelsENDIFENDIF// Crear zona inferiorIF newLower THENstartidx = BarIndexn = n + 1$side[n] = -1$left[n] = BarIndex - 1$top[n] = bodyBot$bot[n] = low$right[n] = barindex + 1$broken[n] = 0$volume[n] = volumeIF n > maxLevels THENFOR k = 1 TO n - 1 DO$side[k] = $side[k+1]$left[k] = $left[k+1]$top[k] = $top[k+1]$bot[k] = $bot[k+1]$right[k] = $right[k+1]$broken[k] = $broken[k+1]$volume[k] = $volume[k+1]NEXTn = maxLevelsENDIFENDIF//---------------------------------------------------// DIBUJO y GESTIÓN//---------------------------------------------------IF islastbarupdate THENFOR i = 1 TO n DOfor j=barindex-$right[i] downto 0 doIF $side[i] = 1 AND low[j] > $top[i] THEN$broken[i] = 1$right[i] = barindex[j]breakELSIF $side[i] = -1 AND high[j] < $bot[i] THEN$broken[i] = 1$right[i] = barindex[j]breakENDIFnextvol=$volume[i]if $broken[i]=1 and $side[i]=1 thendrawrectangle($left[i],$bot[i],$left[i]+2,$top[i])coloured("red")drawsegment($left[i],$top[i],$right[i],$top[i])coloured("grey",125)style(line,3)ELSIF $broken[i]=0 AND $side[i]=1 THENleftX = $left[i]rightX = barindextopY = $top[i]botY = $bot[i]height = ABS(topY - botY)IF height > 0 THENsteps = 10stepH = height / stepsDRAWRECTANGLE(leftX, topY, leftX + 2, botY) COLOURED(upR,upG,upB)FOR s = 0 TO steps - 1 DOsegBot = botY + stepH * ssegTop = segBot + stepHalphaVal = 30 + s * 12IF s = steps - 1 THENalphaVal = 160ENDIFDRAWRECTANGLE(leftX, segTop, rightX, segBot) COLOURED(upR,upG,upB, 0)fillcolor(upR,upG,upB, alphaVal)NEXTmidY = botY + height * 0.5DRAWTEXT("#vol#", rightX, midY)ENDIFelsif $broken[i]=1 and $side[i]=-1 thendrawrectangle($left[i],$bot[i],$left[i]+2,$top[i])coloured("green")drawsegment($left[i],$bot[i],$right[i],$bot[i])coloured("grey",125)style(line,3)ELSIF $broken[i]=0 AND $side[i]=-1 THENleftX = $left[i]rightX = barindextopY = $top[i]botY = $bot[i]height = ABS(topY - botY)IF height > 0 THENsteps = 10stepH = height / stepsDRAWRECTANGLE(leftX, topY, leftX + 2, botY) COLOURED(dnR,dnG,dnB)FOR s = 0 TO steps - 1 DOsegBot = botY + stepH * ssegTop = segBot + stepHalphaVal = 160 - s * 12IF s = 0 THENalphaVal = 160ENDIFDRAWRECTANGLE(leftX, segTop, rightX, segBot) COLOURED(dnR,dnG,dnB, 0)fillcolor(dnR,dnG,dnB, alphaVal)NEXTmidY = botY + height * 0.5DRAWTEXT("#vol#", rightX, midY)ENDIFendifNEXTENDIFRETURN -
AuthorPosts
Viewing 3 posts - 1 through 3 (of 3 total)
Find exclusive trading pro-tools on
Similar topics: