Les ressources ont été chargées... Je charge...

Stratégie de suivi des tendances basée sur les indicateurs RSI et ZigZag

Auteur:ChaoZhang est là., Date: le 22 février 2024 16:15:18
Les étiquettes:

img

Résumé

La stratégie s'appelle Crypto 15-minute Trend Tracking Strategy Based on RSI and ZigZag Indicators. Elle est spécialement conçue pour les marchés cryptographiques de 15 minutes comme ETHUSD/T et BTCUSD/T. La stratégie détermine la direction de la tendance en combinant l'indicateur RSI pour juger des niveaux de surachat/survente et l'indicateur ZigZag pour détecter les pics de prix.

La logique de la stratégie

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.

Points forts de la stratégie

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.

Risques stratégiques

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.

Directions d'optimisation

La stratégie peut être améliorée par les aspects suivants:

  1. Ajouter plus d'indicateurs comme KDJ et MACD pour un jugement combiné pour filtrer davantage les signaux.

  2. Introduction d'algorithmes d'apprentissage automatique pour l'optimisation automatique des paramètres en fonction des changements du marché.

  3. Construire un mécanisme de stop loss adaptatif avec une protection dynamique basée sur la volatilité du marché.

  4. Optimiser le dimensionnement des positions en fonction des forces de la tendance.

  5. Mettre en place des stratégies alternatives pour passer automatiquement sur des marchés inhabituels.

Conclusion

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)


Plus de