CORPO = ABS(OPEN - CLOSE)
SPIKESUP = HIGH - MAX(OPEN,CLOSE)
SPIKEINF = MIN(OPEN,CLOSE) - LOW
AMPIEZZA = RANGE
MULTIPLOAMPIEZZA = 0.5
MULTIPLOSPIKEGRANDE = 2
MULTIPLOSPIKEPICCOLO = 0.5
ROTTURAMASSIMI = HIGH > HIGHEST[MassimiDaRompere](HIGH)[1]
ROTTURAMINIMI = LOW < LOWEST[MinimiDaRompere](LOW)[1]
PinBarRibasso = (CORPO <= MULTIPLOAMPIEZZA * AMPIEZZA) AND (SPIKESUP > MULTIPLOSPIKEGRANDE * CORPO) AND (SPIKEINF < MULTIPLOSPIKEPICCOLO * SPIKESUP) AND ROTTURAMASSIMI AND RANGE>RANGE[1]
PinBarRialzo = (CORPO <= MULTIPLOAMPIEZZA * AMPIEZZA) AND (SPIKEINF > MULTIPLOSPIKEGRANDE * CORPO) AND (SPIKESUP < MULTIPLOSPIKEPICCOLO * SPIKEINF) AND ROTTURAMINIMI AND RANGE>RANGE[1]
IF PinBarRibasso THEN
DRAWCANDLE(OPEN,CLOSE,OPEN,CLOSE) COLOURED(255,0,255)
DRAWTEXT("PinBarRibasso", barindex, high+AverageTrueRange[14](close), Dialog, Bold, 12) COLOURED(255,0,255)
ENDIF
IF PinBarRialzo THEN
DRAWCANDLE(OPEN,CLOSE,OPEN,CLOSE) COLOURED(0,0,255)
DRAWTEXT("PinBarRialzo", barindex, LOW-AverageTrueRange[14](close), Dialog, Bold, 12) COLOURED(0,0,255)
ENDIF
RETURN PinBarRibasso AS "PinBarRibasso", PinBarRialzo AS "PinBarRialzo"