Bonjour à tous,
Voici le genre de stratégie très simple, que je peux utiliser en trading manuel et qui s’avère efficace.
Le problème est que, même si l’entrée répond à des critères précis, la sortie que j’effectue en manuel est déterminée par ma propre estimation de l’évolution des cours (stop suiveur placé manuellement, ou take profit sur un dernier plus haut par exemple), et ceci ne peut pas être codé.
Pour tenter de backtester cette stratégie, j’ai donc mis en place un simple stop suiveur selon un canal de Donchian.
La stratégie s’applique sur le DAX, en graphes H1.
On passe un ordre « long » si le cours clôture au-dessus de la borne supérieure d’un canal de Donchian à 9 périodes, si l’histogramme MACD est positif et croissant
On sortait niveau de la borne inférieure du canal de Donchian
Pour les ordres « short« , c’est la même chose (conditions du MACD inversées évidemment), mais avec un Donchian à 7 périodes.
Exemple de trade à l’achat :
Voici le résultat du BACKTEST :
DAX, spread 1 point, backtest au tick par tick
Comme vous le constatez, le backtest n’est pas très profitable, il y a sans doute moyen d’améliorer la stratégie.
Les résultats en trading manuel sont meilleurs, car on suit ses propres estimations visuelles.
Voici le code du BACKTEST :
Libre à vous de l’améliorer. Quelques pistes :
- stop suiveur
- take profit
- filtre de tendance
- périodes des canaux de Donchian
- essai sur d’autres timeframes / valeurs
- etc.
DEFPARAM CumulateOrders = False // TAILLE DES POSITIONS N = 2 // MACD histogramme iMACD = MACD[12,26,9](close) // Donchian // Pour le DAX : A = 9 et V = 7 A= 9 V = 7 DonchianSupA = highest[A](high) DonchianInfA = lowest[A](low) DonchianSupV = highest[V](high) DonchianInfV = lowest[V](low) // ACHAT ca1 = iMACD > iMACD[1] ca2 = iMACD >= 0 ca3 = close crosses over DonchianSupA[1] IF ca1 AND ca2 AND ca3 THEN buy N shares at market ENDIF sell at DonchianInfA stop // VENTE cv1 = iMACD < iMACD[1] cv2 = iMACD <= 0 cv3 = close crosses under DonchianInfV[1] IF cv1 AND cv2 AND cv3 THEN sellshort N shares at market ENDIF exitshort at DonchianSupV stop
MISE A JOUR du 16/03/2018 : OPTIMISATION
Un de mes fidèles lecteurs m’a gracieusement fait parvenir son travail d’optimisation.
Toujours sur le DAX, en graphes H1. Spread 1 point, backtest au tick par tick.
Merci à lui !
Comme vous pouvez le constater, on joue toujours le breakout du canal de Donchian.
On y ajoute divers indicateurs de tendance pour confirmer l’entrée :
- Donchian
- RSI
- moyennes mobiles
Je vous l’avais bien dit, que vous pourriez améliorer certaines de mes stratégies…
Bien entendu, je pourrais plancher sur toutes mes précédentes publications pur tenter d’améliorer mes stratégies… mais le temps me manque. Tant mieux si vous y parvenez !
Voici le code du BACKTEST :
// ALLEMAGNE 30 (DAX) // H1 DEFPARAM CumulateOrders = False // TAILLE DES POSITIONS N = 2 // MACD histogramme iMACD = MACD[12,26,9](close) // Donchian // Pour le DAX : A = 9 et V = 7 A= 9 V = 7 DonchianSupA = highest[A](high) DonchianInfA = lowest[A](low) DonchianSupV = highest[V](high) DonchianInfV = lowest[V](low) iRSI= RSI[4](close) // ACHAT ca1 = iMACD > iMACD[1] ca2 = iMACD >= 0 ca3 = close crosses over DonchianSupA[1] ca4 = iRSI > 63 ca5 = close >= average[50] IF ca1 AND ca2 AND ca3 and ca4 and ca5 THEN buy N shares at market ENDIF sell at DonchianInfA stop // VENTE cv1 = iMACD < iMACD[1] cv2 = iMACD <= 0 cv3 = close crosses under DonchianInfV[1] cv4 = iRSI < 31 cv5 = close <= average[500] IF cv1 AND cv2 AND cv3 and cv4 and cv5 THEN sellshort N shares at market ENDIF exitshort at DonchianSupV stop