Bonjour à tous,
Vous souvenez-vous de la stratégie « 3 bars » de Larry Williams, que j’avais fait figurer sur le site clubforex1.fr ?
Article : http://www.clubforex1.fr/la-strategie-3-bars-de-larry-williams/
Eh bien, j’ai tenté d’automatiser cette stratégie.
Sans grand succès au début, je l’avoue, avec les paramètres de base.
J’ai voulu l’optimiser en ajoutant un indicateur de tendance, et en modifiant la valeur des moyennes mobiles.
Parmi de nombreux indicateurs de tendance (MACD, Stochastique longue période, Ichimoku, moyennes mobiles, etc), j’ai finalement choisi d’en retenir un simple : la pente de régression linéaire.
De plus, cette nouvelle approche reste en position tant que la pente de régression linéaire est bien orientée : on ne clôture pas sa position seulement en fonction du croisement au-dessus / en-dessous d’une moyenne mobile.
Je vous présente donc un code simple, qui joue les rebonds en tendance, au niveau du bas ou du haut d’un canal de moyennes mobiles, en tendance évidemment.
Pour que le backtest soit efficace, il faut l’optimiser en fonction de l’action / l’indice / la paire de devise concernée.
Voici un exemple sur le DAX, en graphes D1, 1 point de spread, sur les 20 dernières années tout rond :
période des moyennes mobiles : 12
pente de la régression linéaire : 28
Voici le Code du BACKTEST :
// Stratégie : X bars de Larry Williams + Pente régression linéaire // www.doctrading.fr // Paramètres (à optimiser) : mm = 12 rl = 28 MMhaute = average[mm](high) MMbasse = average[mm](low) PenteRL=LinearRegressionSlope[rl](TotalPrice) // ACHAT IF not longOnMarket AND PenteRL[1] > 0 THEN BUY 1 shares AT MMbasse[1] limit ENDIF If longonmarket and PenteRL[1] < 0 THEN SELL at MMhaute[1] limit ENDIF // VENTE IF not shortonmarket AND PenteRL[1] < 0 THEN SELLSHORT 1 shares AT MMhaute[1] limit ENDIF If shortonmarket and PenteRL[1] > 0 THEN EXITSHORT at MMbasse[1] limit ENDIF