Stratégie de trading quantitatif suivant les plus hauts historiques
Aperçu
Cette stratégie suit principalement le prix le plus élevé historique d'un titre. Elle achète lorsque le prix revient à un certain pourcentage du plus haut historique et vend lorsque le prix franchit à nouveau ce plus haut historique. Il s'agit d'une stratégie de suivi de tendance.
Principe de la stratégie
La stratégie enregistre d'abord le prix le plus élevé du titre depuis le 1er janvier 2011, défini comme la variable highestHigh. Elle trace ensuite une ligne horizontale allTimeHigh correspondant à ce plus haut.
Au cours de l'exécution, chaque jour, elle vérifie si le cours le plus élevé du jour établit un nouveau record. Si c'est le cas, elle met à jour la variable highestHigh et redessine la ligne allTimeHigh.
La stratégie comporte trois lignes horizontales importantes :
buyzone = highestHigh * 0.9: niveau à 90 % du plus haut, représentant une opportunité de repli fort.buyzone2 = highestHigh * 0.8: niveau à 80 % du plus haut, représentant une zone de repli attractive.sellzone = highestHigh * 0.99: niveau à 99 % du plus haut, représentant une opportunité de détection de retournement de tendance.
Lorsque le prix descend jusqu'à la ligne des 80 % (buyzone2), un signal d'achat est émis. Lorsque le prix franchit à nouveau la ligne des 99 % du plus haut historique (sellzone), un signal de vente (clôture de position) est émis.
Le principal critère de décision de cette stratégie est le suivi du plus haut historique et des lignes à différents pourcentages. C'est une stratégie typique de suivi de tendance.
Analyse des avantages
Le principal avantage de cette stratégie est de capter les tendances haussières de long terme, en attendant un repli pour entrer, réalisant ainsi un achat à bas prix et une vente à prix élevé. Les avantages spécifiques sont les suivants :
- Elle permet de saisir les opportunités de tendance haussière à long terme des actions, le suivi du plus haut étant un indicateur clé de tendance.
- Le niveau de repli à 80 % du plus haut offre un rapport risque/rendement optimal, garantissant une marge de profit après la hausse tout en limitant le risque de baisse.
- La ligne de stop à 99 % du plus haut historique permet de maximiser les profits tout en contrôlant le risque.
- Elle permet de vérifier si une action entre dans une phase de hausse structurelle ; un nouveau plus haut indique un renforcement fondamental de l'entreprise.
- Les paramètres sont largement ajustables, permettant une optimisation personnalisée pour différentes actions.
Ainsi, cette stratégie exploite au maximum les gains liés aux tendances haussières tout en évitant les risques de corrections à court terme. C'est une stratégie de suivi de tendance avec un bon rapport risque/rendement.
Analyse des risques
Le principal risque de cette stratégie est que le prix puisse continuer à baisser après l'achat, voire atteindre de nouveaux plus bas. Les risques principaux incluent :
- Possibilité de pertes si le prix continue de chuter fortement après l'achat, voire touche le seuil de baisse maximale.
- Le plus haut historique peut représenter un sommet de surachat ou de spéculation, et la dynamique haussière pourrait s'essouffler.
- Un mauvais réglage des paramètres (stop trop haut ou trop bas) peut poser différents problèmes.
- La fréquence de trading peut être faible, et la stratégie est sensible aux facteurs externes comme l'évolution du marché.
- La stratégie ne tient pas compte des fondamentaux et de la valorisation des actions, ce qui affaiblit la sélection des titres.
Les principales solutions consistent à : évaluer correctement les fondamentaux des actions pour garantir la qualité de la sélection ; ajuster les paramètres (proportion d'achat, stop) pour optimiser la stratégie ; envisager de combiner avec d'autres stratégies.
Pistes d'optimisation
Les principales pistes d'optimisation concernent le réglage des paramètres, les règles de sélection des actions et l'amélioration de la méthode de stop. Plus précisément :
- Optimiser les indicateurs techniques d'achat et de stop, par exemple en intégrant des indicateurs comme le KDJ ou le MACD pour éviter les sommets.
- Améliorer les règles de sélection des actions en y ajoutant des indicateurs fondamentaux et de valorisation pour garantir la qualité.
- Ajuster dynamiquement les proportions des paramètres en lien avec l'évolution du marché pour assurer leur pertinence.
- Mettre en place un stop suiveur ou un stop temporel pour optimiser la méthode et le niveau de stop.
- Envisager une combinaison avec d'autres stratégies factorielles pour former un modèle multi-facteurs et améliorer la stabilité.
- Ajouter des indicateurs de volume pour évaluer la force, évitant ainsi de sélectionner des actions en phase de faiblesse après une hausse.
Ainsi, les optimisations portent principalement sur les règles de sélection, le réglage des paramètres et l'amélioration du stop, afin d'accroître la stabilité et le rendement ajusté au risque tout en conservant le suivi de tendance.
Résumé
Cette stratégie est une stratégie typique de suivi de tendance basée sur les plus hauts historiques. Elle permet de capter efficacement les tendances haussières à long terme des actions et d'obtenir un rapport risque/rendement favorable via des replis techniques. Cependant, en raison de l'absence de prise en compte des fondamentaux, sa stabilité et sa capacité de résistance au risque sont limitées. Les principales pistes d'optimisation consistent à améliorer les règles de sélection des actions, ajuster les paramètres de stop et optimiser le mécanisme de stop. Associée à d'autres stratégies dans un modèle multi-facteurs, elle peut constituer une stratégie de sélection et de trading quantitatif avec un excellent rapport risque/rendement.
/*backtest
start: 2023-01-21 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("All-time-high", "ATH", overlay=true, initial_capital=10000, default_qty_value=100, default_qty_type=strategy.percent_of_equity, pyramiding=1, commission_type=strategy.commission.cash_per_contract, commission_value=0.000)
// input- 1

