La tendance ZigZag est suivie par la stratégie

Auteur:ChaoZhang est là., Date: 2024-01-08 10:13:24 Je suis désolé
Les étiquettes:

img

Résumé

Cet article présente une stratégie de trading appelée ZigZag Trend Following Strategy. Cette stratégie identifie les tendances des prix à l'aide de l'indicateur ZigZag et ouvre des positions lorsque les tendances s'inversent pour suivre la tendance. Dans le script de la stratégie Pine, l'indicateur ZigZag est utilisé pour confirmer de nouveaux hauts et de nouveaux bas des prix. Lorsque les prix franchissent la ligne de l'indicateur ZigZag, il sert de signal de trading. Le signal d'achat est lorsque le prix de clôture est au-dessus de la ligne de l'indicateur ZigZag pour aller long; Le signal de vente est lorsque le prix de clôture est en dessous de la ligne de l'indicateur ZigZag pour aller court.

Principe de stratégie

Le noyau de cette stratégie est d'utiliser l'indicateur ZigZag pour localiser les points extrêmes des prix et afficher les tendances des prix.

  1. Calculez la moyenne mobile exponentielle EMA des prix de clôture, y compris trois lignes moyennes mobiles: ligne rapide, ligne moyenne et ligne lente.

  2. Jugez si les prix sont en tendance haussière, c'est-à-dire si la ligne médiane actuelle est supérieure à la ligne médiane de la ligne K précédente.

  3. S'il est actuellement dans une tendance à la hausse, trouver le prix le plus bas compté depuis le début de la vague précédente de points bas dans le cycle détecté comme la valeur de ZigZag.

  4. Si elle est actuellement en baisse, trouver le prix le plus élevé compté depuis le début de la vague précédente de points élevés dans le cycle détecté comme la valeur de ZigZag.

  5. Ainsi, l'indicateur ZigZag reflétant les points extrêmes des fluctuations de prix est formé.

Sur cette base, nous utilisons la ligne ZigZag comme référence pour juger de la tendance des prix. c'est-à-dire que lorsque le prix augmente et traverse la ligne de l'indicateur ZigZag, nous allons long; lorsque le prix chute et traverse la ligne de l'indicateur ZigZag, nous allons court.

Analyse des avantages

Les avantages de l'utilisation de l'indicateur ZigZag pour déterminer les tendances des prix et suivre les prix extrêmes lors de l'établissement des positions sont les suivants:

  1. Peut filtrer efficacement le bruit du marché et capturer les principales tendances.

  2. Les signaux de négociation établis sur la rupture de nouveaux hauts et de nouveaux bas peuvent générer des profits efficaces.

  3. Les lignes ZigZag sont relativement lisses, ce qui peut réduire les faux signaux.

  4. Facile à optimiser les stratégies en ajustant les paramètres ZigZag.

Analyse des risques

Les principaux risques de cette stratégie sont les suivants:

  1. Les transactions à long terme peuvent être piégées en raison de fortes fluctuations du marché.

  2. Les indicateurs ZigZag sont sensibles aux paramètres. Des réglages incorrects peuvent manquer des opportunités de trading ou générer de faux signaux. Les paramètres doivent être testés et optimisés de manière appropriée.

  3. Les stratégies de suivi des tendances reposent davantage sur les marchés en tendance.

En réponse aux risques susmentionnés, nous pouvons définir des mécanismes de stop loss pour contrôler les pertes individuelles; en même temps, ajuster la taille de la position au lieu de rechercher une position complète; enfin, faire correspondre différents types de portefeuille de stratégie.

Direction de l'optimisation

Nous pouvons optimiser encore cette stratégie dans les aspects suivants:

  1. Ajoutez un mécanisme de stop loss, par exemple, définissez un stop loss mobile ou un stop loss pour l'amplitude de retracement du prix.

  2. Combiner avec d'autres indicateurs pour le filtre de position. Par exemple, améliorer les indicateurs de dynamique pour assurer une dynamique suffisante; ou les indicateurs de volume de trading pour assurer des volumes de trading élevés.

  3. Adopter des configurations de paramètres différentes en fonction des différents environnements de marché (tels que les marchés haussiers et baissiers).

  4. Testez différents paramètres de ligne EMA pour trouver la meilleure combinaison de paramètres.

Conclusion

Cette stratégie utilise l'indicateur ZigZag pour déterminer les tendances des prix et établir des positions de suivi à proximité des points extrêmes. Son avantage est de suivre la tendance efficacement pour réaliser des profits. Elle comporte également le risque d'être piégée. Nous pouvons définir un stop loss, optimiser les paramètres et le portefeuille de stratégie commerciale pour contrôler les risques. Cette stratégie est plus appropriée pour le trading de tendance à moyen et long terme. Si elle est correctement contrôlée et combinée, elle peut obtenir des rendements stables.


/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-07 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's ZigTrend Strategy v1.0", shorttitle = "ZigTrend 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
length = input(4)
ExtremeDetection = input(4)
src = input(close)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//ZigZag
f_zz(_length, _detection)=>
    _hls = ema(ema(ema(src, _length), round(_length*0.66)), round(_length*0.33))
    _isRising = _hls >= _hls[1]
    _zigzag = _isRising and not _isRising[1] ? lowest(_detection) :  not _isRising and _isRising[1] ? highest(_detection) : na
zigzag = f_zz(length, ExtremeDetection)
plot(zigzag, color=black, linewidth=2)

//Signals
up = close > zigzag
dn = close < zigzag

//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)


Plus de