La stratégie s'appelle
La logique de base de cette stratégie est d'utiliser à la fois les indicateurs RSI et ZigZag pour déterminer la tendance des prix. Plus précisément, l'indicateur RSI juge si le prix est suracheté ou survendu. L'indicateur ZigZag détecte si le prix a un pic en pourcentage significatif. Lorsque les deux indicateurs donnent des signaux de trading simultanément, nous déterminons qu'il y a un renversement de tendance pour une contre position.
Pour l'indicateur RSI, nous définissons la ligne de surachat à 75 et la ligne de survente à 25. Lorsque le RSI passe de moins de 25 à plus de 25, il est considéré comme une inversion de la survente à la hausse. Lorsque le RSI tombe de plus de 75 à moins de 75, il indique une inversion de la hausse à la survente.
Pour l'indicateur ZigZag, nous définissons le seuil de pic de prix à 1% en changement de pourcentage. Lorsque le prix fait un pic de plus de 1% en amplitude, la ligne ZigZag donnera un signal. Combiné avec le jugement de tendance, nous pouvons identifier les renversements de tendance.
Lorsque les deux indicateurs donnent des signaux, si la tendance précédente est haussière et que maintenant le RSI est suracheté alors que ZigZag montre un pic de prix, nous déterminons que le prix est en hausse et peut envisager un rachat.
Le plus grand avantage de cette stratégie est l'amélioration de la qualité du signal grâce à la combinaison de deux indicateurs. Un seul indicateur a tendance à donner de nombreux faux signaux. Mais cette stratégie utilise RSI et ZigZag pour la vérification, filtrant de nombreux faux signaux et améliorant le taux de victoire.
Un autre atout est l'ajustement flexible des paramètres. Les paramètres RSI et ZigZag sont personnalisables en fonction des différentes conditions du marché pour de meilleurs résultats.
Le risque principal est les signaux incorrects des indicateurs. Malgré la validation du double indicateur, il peut encore y avoir des pannes pendant une forte volatilité entraînant des erreurs de trading. Un paramètre inapproprié affecte également la performance de la stratégie.
Pour réduire les risques, nous pouvons raccourcir la période de détention de position pour un stop loss rapide. L'optimisation des paramètres est également très importante en fonction des caractéristiques du marché. Une intervention manuelle peut être nécessaire face à des conditions de marché anormales.
La stratégie peut être améliorée par les aspects suivants:
Ajouter plus d'indicateurs comme KDJ et MACD pour un jugement combiné pour filtrer davantage les signaux.
Introduction d'algorithmes d'apprentissage automatique pour l'optimisation automatique des paramètres en fonction des changements du marché.
Construire un mécanisme de stop loss adaptatif avec une protection dynamique basée sur la volatilité du marché.
Optimiser le dimensionnement des positions en fonction des forces de la tendance.
Mettre en place des stratégies alternatives pour passer automatiquement sur des marchés inhabituels.
En résumé, il s'agit d'une stratégie de suivi de tendance typique. L'idée principale est d'identifier les renversements de tendance en utilisant des indicateurs RSI et ZigZag en combinaison. L'avantage réside dans une meilleure qualité du signal grâce à une double filtration d'indicateur. Les risques d'échec de l'indicateur doivent être pleinement pris en compte et la stratégie doit être continuellement améliorée grâce à l'ajustement des paramètres, à l'optimisation des pertes, à l'optimisation des positions, etc. Dans l'ensemble, cela fournit une solution de suivi de tendance efficace pour le marché de la cryptographie.
/*backtest start: 2024-01-22 00:00:00 end: 2024-02-21 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © SoftKill21 //@version=4 strategy("Crypto ZigZag RSI strategy 15min",overlay=true) length =input(5, title="RSI Length") overSold = input(25) overBought= input(75) p =close vrsi = rsi(p, length) var bool long = na var bool short = na long :=crossover(vrsi,overSold) short := crossunder(vrsi,overBought) var float last_open_long = na var float last_open_short = na last_open_long := long ? close : nz(last_open_long[1]) last_open_short := short ? close : nz(last_open_short[1]) entry_value =last_open_long entry_value1=last_open_short // ZZPercent = input(1, title="Minimum % Change", type=input.float) r1Level=entry_value s1Level=entry_value1 trend = 0 trend := na(trend[1]) ? 1 : trend[1] LL = 0.0 LL := na(LL[1]) ? s1Level : LL[1] HH = 0.0 HH := na(HH[1]) ?r1Level : HH[1] Pi = ZZPercent * 0.01 zigzag = float(na) if trend > 0 if r1Level >= HH HH := r1Level HH else if s1Level < HH * (1 - Pi) zigzag :=r1Level[1] trend := -1 LL := s1Level LL else if s1Level <= LL LL := s1Level LL else if r1Level > LL * (1 + Pi) zigzag := s1Level[1] trend := 1 HH := s1Level HH shortc=crossunder(trend,0) longc=crossover(trend,0) longa =input(true) shorta=input(false) if(longa) strategy.entry("long",1,when=longc) strategy.close("long",when=shortc) if(shorta) strategy.entry("short",0,when=shortc) strategy.close("long",when=longc)