Le backtest est composé d'un indicateur RSboll, puis du bactest à proprement parlé.
Indicateur RSBoll_Seuil (le nom du programme est important parce qu'il est appelé dans le bactest) :
Code : #
//RSBoll 9/25/75
//falex - 2013
//Variables
once rsiperiode = 9
r = RSI[rsiperiode](close) // RSI
bs = BollingerUp[20](close) //Bollinger Superieur
bi = BollingerDown[20](close) //Bollinger Inferieur
once indicateur = 0
//Valeur de seuil du RSI
once rsup = 75
once rinf = 25
c1 = (r >= rsup) and (high > bs)
c2 = (r <= rinf) and (low < bi)
heure = (time > 00000) and (time<235900)
if c1 and heure then
	indicateur =1
elsif c2 and heure then
	indicateur = -1
else
	indicateur = 0
endif
//calcul du seuil 00/25/50/75 le plus proche
if indicateur = 1 then
	seuil = round(close) + (25 - (round(close) mod 25))
elsif indicateur = -1 then
	seuil = round(close) - (round(close) mod 25)
endif
//La valeur de l'indicateur est égal à la valeur du seuil à atteindre.
indicateur = indicateur + seuil
return indicateur as "RSBoll"
Code : #
//backtest du RSBoll avec entrée sur seuille 00/25/50/75
//Variables
once SW = 11 //Stop win
once SL = 10 //Stop Loose
once prevmyRSboll = 0
once prevClose = 0
once sens = 0 //Sens du mouvement des prix
//Entrée sur signal passant de 0 à  +/- x, contrariant
myRSBoll = CALL "RSBoll_Seuil"
heure = (time >=80000) and (time <162900)
//Entrée
//1) Recuperation de la valeur du seuil lorsqu'elle change
if myRSBoll <>  prevmyRSboll then
    prevmyRSboll = myRSboll
    prevClose = close
    if prevmyRSboll > prevClose then
        sens = 1
    elsif  prevmyRSboll < prevClose then
        sens = -1
    endif
endif
//Si time alors on place des ordres pour entrer dans le marché
if heure then // and  myRSBoll = 0 then
    If sens = 1  then
        sellshort 1 share at  myRSBoll  Limit
    elsif  sens = -1 then
        buy 1 share at  myRSBoll Limit
    endif
endif
//Sortie
if onmarket then
    sell countofposition share at (entryquote + SW) LIMIT
    sell countofposition share at (entryquote - SL) STOP
    exitshort countofposition share at (entryquote - SW) LIMIT
    exitshort countofposition share at (entryquote + SL) STOP
endif
//stop sur la barre de 16h30
If time = 162900 then
    sell countofposition share at market thisbaronclose
    exitshort  countofposition share at market thisbaronclose
endif




