En observant un peu le signaux RSBoll, j'ai essayé d'imager une autre solution pour entrer/sortir et voici ce que je vous propose.
Au signal d'exces, il faut noter le plus haut (pour un signal durant plusieurs barres continue, il faut noter le plus des plus haut /respectivement bas ...).
Lorsque le signal repasse à 0 : Fin de l'exces, A ce moment là vous placer un ordre d'entrée sur le marché en contre-tendance à la hauteur + 1 du plus haut.
J'ai cherché les bonnes valeurs de SL/SW ce qui nous donne :
pour 73,98% de trade gagnant : SW 11, SL 26 pour un gain sur deux mois de 527 pts
Le drawdown est 26 pts (logique)
Le gain max est de 11 pts (logique).
Ce qui est assez remarquable c'est le liens entre stop-loss et stop-win. Comme toujours, plus le stop est éloigné plus vous augmenter vos chances de gain sur le long terme ...
Pour ceux qui veulent reproduire sur leur PRT voici le code de l'indicateur (c'est lui donne la valeur du haut/bas), puis le code du backtest (qui fait appel à l'indicateur).
Code : #
//RSBoll
//Variables
r = RSI[rperiode](close) // RSI
bs = BollingerUp[20](close) //Bollinger Superieur
bi = BollingerDown[20](close) //Bollinger Inferieur
dp, dr1, ds1 = CALL "PP Futur"
once indicateur = 0
//once rsup = 75
//once rinf = 25
c1 = (r >= rsup) and (high > bs)
c2 = (r <= rinf) and (low < bi)
heure = (time > 80000) and (time<161500)
if c1 and heure then
indicateur =1
elsif c2 and heure then
indicateur = -1
else
indicateur = 0
endif
if indicateur = 1 then
if seuilHL = 0 or High > seuilHL then
seuilHL = High
endif
elsif indicateur = -1 then
if seuilHL = 0 or Low < seuilHL then
seuilHL = low
endif
endif
//La valeur de l'indicateur est égal à la valeur du seuil à atteindre.
indicateur = indicateur * seuilHL
return indicateur as "RSBoll"
Code : #
//backtest du RSBoll en entrant sur retour sur le High/low + X
//Variables
//once SW = 10
//once SL = 10
//Entrée sur signal passant de 0 à +/- x, contrariant
myRSBoll = CALL RSBoll[9 ,75 ,25]
heure = (time >=80000) and (time <162900)
//Entrée
//1) Recuperation de la valeur du seuil
if myRSBoll < 0 then
limite = myRSBoll
elsif myRSBoll > 0 then
limite = myRSBoll
endif
//Si time alors on place des ordres pour entrer dans le marché
if heure and myRSBoll = 0 then
If limite > 0 then
sellshort 1 share at abs(limite) + decalage Limit
elsif limite < 0 then
buy 1 share at abs(limite) - decalage Limit
endif
endif
//Sortie
if onmarket then
limite = 0
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 16h15
If time = 162900 then
sell countofposition share at market thisbaronclose
exitshort countofposition share at market thisbaronclose
endif