Cet article présente une stratégie de trading appelée
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.
Calculez la moyenne mobile exponentielle EMA des prix de clôture, y compris trois lignes moyennes mobiles: ligne rapide, ligne moyenne et ligne lente.
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.
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.
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.
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.
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:
Peut filtrer efficacement le bruit du marché et capturer les principales tendances.
Les signaux de négociation établis sur la rupture de nouveaux hauts et de nouveaux bas peuvent générer des profits efficaces.
Les lignes ZigZag sont relativement lisses, ce qui peut réduire les faux signaux.
Facile à optimiser les stratégies en ajustant les paramètres ZigZag.
Les principaux risques de cette stratégie sont les suivants:
Les transactions à long terme peuvent être piégées en raison de fortes fluctuations du marché.
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.
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.
Nous pouvons optimiser encore cette stratégie dans les aspects suivants:
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.
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.
Adopter des configurations de paramètres différentes en fonction des différents environnements de marché (tels que les marchés haussiers et baissiers).
Testez différents paramètres de ligne EMA pour trouver la meilleure combinaison de paramètres.
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)