Système des tortues du Connecticut
Aperçu
Cette stratégie est développée à partir du célèbre système de trading des Tortues, en suivant autant que possible les règles originales. Il s'agit d'un système de suivi de tendance qui génère des signaux d'entrée et de sortie via une double moyenne mobile.
Principe de la stratégie
- Utiliser le plus haut pour calculer la moyenne mobile sur N1 jours et N2 jours (par défaut 20 et 55 jours) afin de construire une double moyenne mobile.
- Utiliser le plus bas pour calculer la moyenne mobile sur N3 jours et N4 jours (par défaut 10 et 20 jours) afin de construire une autre double moyenne mobile.
- Lorsque le prix de clôture dépasse la moyenne N2 jours, passer en position longue ; lorsque le prix de clôture passe en dessous de la moyenne N4 jours, clôturer la position.
- Après une position longue, chaque fois que le prix monte d'un multiple de N ATR (par défaut 1 fois), ajouter une unité, jusqu'à 5 ajouts maximum.
- Fixer un stop-loss fixe, par défaut à un multiple de N ATR (par défaut 2 fois) en dessous du prix d'entrée.
- N'autoriser une nouvelle position que si la transaction précédente était gagnante.
Analyse des avantages
Cette stratégie présente les avantages suivants :
- Respecte les principes de trading de tendance, permettant de capturer les tendances à moyen et long terme.
- La double moyenne mobile sert de filtre, évitant les transactions fréquentes en période de congestion.
- Le stop-loss suiveur est défini de manière raisonnable, évitant un stop-loss trop large ou trop serré.
- Paramétrage flexible, facilitant l'ajustement du profil risque/rendement du système.
- Permet l'ajout de positions, offrant la possibilité de profits supplémentaires en tendance.
Analyse des risques
Cette stratégie comporte également certains risques :
- En cas de retournement de tendance, l'absence de stop-loss rapide peut entraîner des pertes importantes.
- Un nombre excessif d'ajouts de positions peut entraîner un risque de sur-négociation.
- Un réglage inapproprié des paramètres peut rendre le système trop agressif ou trop conservateur.
- Risque de surajustement aux données de backtest ; les performances réelles peuvent être inférieures à celles du backtest.
Il est possible de réduire les risques par les moyens suivants :
- Ajouter des signaux de retournement, comme les divergences MACD, pour réduire les pertes en contre-tendance.
- Optimiser les paramètres pour qu'ils soient robustes.
- Ajouter une méthode de dimensionnement des positions (Position Sizing) pour réduire la taille des positions en cas de forte perte.
Pistes d'optimisation
Cette stratégie peut être optimisée dans les directions suivantes :
- Ajouter une logique de trading à la vente pour profiter également des marchés baissiers.
- Ajouter un module d'optimisation de la ligne de stop-loss, afin qu'elle s'ajuste correctement aux fluctuations des prix.
- Ajouter un module de gestion des positions pour optimiser la taille de chaque ajout.
- Utiliser un indicateur de tendance comme l'ADX pour évaluer la force de la tendance et éviter les transactions erronées.
- Optimiser les paramètres pour obtenir une courbe de rendement plus lisse.
- Prendre en compte les coûts de transaction réels comme le slippage et les commissions.
Conclusion
Cette stratégie génère des profits en suivant la tendance et présente certains avantages lors des backtests. Cependant, ses performances en conditions réelles restent à vérifier. Il est nécessaire d'optimiser davantage la robustesse des paramètres, d'améliorer le stop-loss et la gestion des positions pour que la stratégie soit mieux adaptée au trading réel. Globalement, l'idée de la stratégie est raisonnable et offre un grand potentiel d'amélioration.
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Turtle", overlay=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.1, pyramiding=5)
stopInput = input(2.0, "Stop N", step=.5)- 1

