Indicateur FILTRE BUTTERWORTH 3 POLES 
REM Définition des constantes

P=5
a=exp(-3.14159/P)
b=2*a*cos(1.738*180/P)
c=a*a

REM Calcul de la moyenne mobile (Butterworth à 3 pôles)
IF (BarIndex=0) THEN
MME3P=((1-b+c)*(1-c)/8)*(Close)
ELSIF (BarIndex=1) THEN
MME3P=(b+c)*MME3P[1]+((1-b+c)*(1-c)/8)*(Close+3*Close[1])
ELSIF (BarIndex=2) THEN
MME3P=(b+c)*MME3P[1]-(c+b*c)*MME3P[2]+((1-b+c)*(1-c)/8)*(Close+3*Close[1]+3*Close[2])
ELSE
MME3P=(b+c)*MME3P[1]-(c+b*c)*MME3P[2]+c*c*MME3P[3]+((1-b+c)*(1-c)/8)*(Close+3*Close[1]+3*Close[2]+Close[3])
ENDIF
RETURN MME3P

Indicateur FILTRE DE KALMANN
REM CALCUL DES  VARIABLES

PrixMoyen=(High+Low)/2

if(BarIndex=1) THEN
A= 0.2*(PrixMoyen-PrixMoyen[1])
B=0.1*(High-Low)
else
A=0.2*(PrixMoyen-PrixMoyen[1])+0.8*A[1]
B=0.1*(High-Low)+0.8*B[1]
endif

IF B<>0 THEN
LAMBDA=Abs(A/B)
ELSE
LAMBDA=0
ENDIF

REM CALCUL DU FILTRE DE KALMAN

ALPHA=(-LAMBDA*LAMBDA+SQRT(LAMBDA*LAMBDA*LAMBDA*LAMBDA+16*LAMBDA*LAMBDA))/8

IF (BarIndex=1) THEN
MMK=ALPHA*PrixMoyen
ELSE
MMK=ALPHA*PrixMoyen+(1-ALPHA)*MMK[1]
ENDIF

RETURN MMK AS "MMK"

Indicateur Moyenne Mobile Intraday
REM CALCUL DE LA MOYENNE MOBILE INTRADAY

CoursMoyen=(High+Low+Close)/3
MMIntraday=Average[10](CoursMoyen)

RETURN MMIntraday

Indicateur Stop Long
REM Calcul des Stops pour une position ACHAT
StopLong= Highest[10](high) -3*AverageTrueRange[10](close)
RETURN StopLong

Indicateur Stop Short
REM Calcul des Stops pour une position VENTE
StopShort= Lowest[10](low) +3*AverageTrueRange[10](close)
RETURN StopShort

Indicateur Vitesse
REM Calcul de la Vitesse

MaMoyenne=Average[50](Close)

IF MaMoyenne[1]<>0 THEN
Indicateur= 100*(MaMoyenne- MaMoyenne[1])/MaMoyenne[1]
ELSE
Indicateur=0
ENDIF

Vitesse=Average[10](Indicateur)
Return Vitesse

ProScreener Vitesse

REM LA MOYENNE MOBILE A 50 doit etre croissante
indicator1 = Average[50](close)
c1 = indicator1 >= indicator1[5]

REM Les cours doivent être supérieurs à la moyenne mobile
c2=Close>Average[50]

REM L'Ecart avec la MM ne doit pas etre trop important
indicator2=average[50](close)
EcartCM=ABS(close-indicator2)/close
c3=EcartCM<0.01

criteria = CALL Vitesse

SCREENER[c1  AND c2 AND c3] (criteria AS "Vitesse")

PROBACKTEST : Moyenne Mobile
REM 1er Critère d'achat sur la pente de la moyenne mobile
mamoyenne = Average[20](close)
critere1 = (mamoyenne >=mamoyenne[1])

REM 2ème critere d'achat sur les Volumes
monvolume = Volume
moyennevolume = Average[20](Volume)
critere2 = (monvolume >=moyennevolume)

REM Condition d'achat
IF critere1 AND critere2 THEN
BUY 1 share AT MARKET
ENDIF

REM Critere deVente
critere3 = (mamoyenne <mamoyenne[1])

REM Condition de vente
IF critere3 THEN
SELL  AT MARKET
ENDIF

PROBACKTEST: RSI

DEFPARAM CumulateOrders=False
REM Conditions d'Achat
indicator1 = RSI[14](close)
c1 = (indicator1 <= 40.0)

IF c1 THEN
BUY 1 share AT MARKET
ENDIF

REM Conditions de Vente
c2 = (indicator1 >= 60.0)

IF c2 THEN
SELL  AT MARKET
ENDIF

PROBACKTEST : Moyenne Mobile + ADX

DEFPARAM CumulateOrders=False
REM 1er Critère d'achat sur la pente de la moyenne mobile
mamoyenne = Average[50](close)
critere1 = (mamoyenne >=mamoyenne[5])

REM 2ème critere d'achat sur l'ADX
indicator1 =ADX[14]
critere2 =indicator1 > indicator1[5] AND indicator1 > 20

REM Condition d'achat
IF critere1 AND critere2 THEN
BUY 1 share AT MARKET
ENDIF

REM Critere deVente
critere3 = (mamoyenne <mamoyenne[5])

REM Condition de vente
IF critere3 THEN
SELL  AT MARKET
ENDIF

PROBACKTEST : Avalement Haussier

DEFPARAM CumulateOrders=False
REM Achat
c1 = Dclose(1)<DOpen(1)
c2 = Open < DClose(1)
c3 = close >  Dopen(1)

IF c1 AND c2  AND c3 THEN
BUY 1 share AT MARKET as "avalement-haussier"
ENDIF

REM Vente
c3 =(BarIndex > TradeIndex AS"avalement-haussier") AND (Close < Dlow(1))

IF c3 THEN
SELL  AT MARKET
ENDIF