REM Détection de plus bas pour contre tendance haussière
REM Vérifions que le plus bas du jour le soit pour les 20 dernières séances
FOR a = 1 TO 20 DO
IF Low < Low[a] THEN
REM C0=1 signifie que le plus bas du jour le soit pour les 20 dernières séances
C0 = 1
CONTINUE
ELSE
REM C0=0 signifie que le plus bas du jour ne l'est pas pour les 20 dernières séances
C0 = 0
BREAK
ENDIF
NEXT
REM Vérifions que l'ancien plus bas ne se trouve pas à moins de 3 séances de la bougie actuelle
FOR a = 3 TO 20 DO
IF MIN(Low[1],Low[2]) < Low[a] THEN
REM C1=0 signifie que l'ancien plus bas se trouve à moins de 3 séances
C1 = 0
CONTINUE
ELSE
REM C1=1 signifie qu'aucun ancien plus bas se trouve à moins de 3 séances
C1 = 1
BREAK
ENDIF
NEXT
REM Vérifions que la bougie actuelle clôture au dessus de l'ancien plus bas des 20 dernières séances
FOR a = 3 TO 20 DO
IF Close >= Low[a] THEN
C2 = 1
BREAK
ELSE
C2 = 0
CONTINUE
ENDIF
NEXT
REM -----------------------------------------------------------------
REM détection de plus haut pour contre tendance baissière
REM Vérifions que le plus haut du jour le soit pour les 20 dernières séances
FOR a = 1 TO 20 DO
IF High > high[a] THEN
REM C0=1 signifie que le plus haut du jour l'est pour les 20 dernières séances
C3 = 1
CONTINUE
ELSE
REM C1=1 signifie que le plus haut du jour ne l'est pas pour les 20 dernières séances
C3 = 0
BREAK
ENDIF
NEXT
REM Vérifions que l'ancien plus haut ne se trouve pas à moins de 3 séances de la bougie actuelle
FOR a = 3 TO 20 DO
IF MAX(High[1],High[2]) > high[a] THEN
REM C1=0 signifie que l'ancien plus haut se trouve à moins de 3 séances
C4 = 0
CONTINUE
ELSE
REM C1=1 signifie qu'aucun ancien plus haut ne se trouve à moins de 3 séances
C4 = 1
BREAK
ENDIF
NEXT
REM Vérifions que la clôture actuelle est égale ou inférieure à l'ancien plus haut des 20 dernières séances
FOR a = 3 TO 20 DO
IF Close <= high[a] THEN
C5 = 1
BREAK
ELSE
C5 = 0
CONTINUE
ENDIF
NEXT
REM ------------------------------------------------------------------
IF (C0 = 1 AND C1 = 1 AND C2 = 1) THEN
Filtre = 1
ELSIF (C3 = 1 AND C4 = 1 AND C5 = 1) THEN
Filtre = -1
ELSE
Filtre = 0
ENDIF
REM -------------------------------------------------------------------
RETURN Filtre