DEFPARAM DrawOnLastBarOnly = TRUE
DEBUG = 0
// Début du code
IF ISLASTBARUPDATE THEN
ONCE inputLength = 5 // Longueur pour analyser les structures de marché
ONCE highestHigh = 0
ONCE lowestLow = 0
ONCE breakerZoneHigh = 0
ONCE breakerZoneLow = 0
// Définition des Swing High et Low
swingHigh = HIGH[3] < HIGH[2] AND HIGH[2] > HIGH[1]
swingLow = LOW[3] > LOW[2] AND LOW[2] < LOW[1]
// Détection des Breaker Blocks
FOR i = inputLength TO 1 STEP -1 DO
ONCE highestHigh = 0
ONCE lowestLow = 0
ONCE breakerZoneHigh = 0
ONCE breakerZoneLow = 0
// Breaker Block à la baisse
IF HIGH[i+3] < HIGH[i+2] AND HIGH[i+2] > HIGH[i+1] THEN
highestHigh = HIGH[i]
lowestLow = LOW[i]
// Zone du Breaker Block
breakerZoneHigh = highestHigh
breakerZoneLow = LOWEST(LOW[i], inputLength)
// Dessin du rectangle
DRAWRECTANGLE(i, breakerZoneHigh, i + inputLength, breakerZoneLow) COLOURED("Red")
ENDIF
// Breaker Block à la hausse
IF LOW[i+3] > LOW[i+2] AND LOW[i+2] < LOW[i+1] THEN
lowestLow = LOW[i]
highestHigh = HIGH[i]
// Zone du Breaker Block
breakerZoneLow = lowestLow
breakerZoneHigh = HIGHEST(HIGH[i], inputLength)
// Dessin du rectangle
DRAWRECTANGLE(i, breakerZoneHigh, i + inputLength, breakerZoneLow) COLOURED("Green")
ENDIF
NEXT
ENDIF
RETURN