Stratégie de rupture du canal de Donchian

Auteur:ChaoZhang est là., Date: le 21 février 2024 11:38:48
Les étiquettes:

img

Résumé

La stratégie de rupture du double canal de Donchian est une stratégie de rupture basée sur les canaux de Donchian. Elle utilise des canaux de Donchian rapides et lents pour construire des signaux de trading longs et courts.

Principe de stratégie

La stratégie de rupture du double canal Donchian est basée sur deux paramètres:Période du canal de Donchian lentetPériode rapide du canal de DonchianLa stratégie calcule d'abord les bandes supérieure et inférieure des deux canaux de Donchian.

  • La période par défaut du canal Donchien lent est de 50 barres, reflétant les tendances à plus long terme.
  • La période par défaut du canal rapide de Donchian est de 30 barres, reflétant les changements de tendance à court terme.

Le signal d'entrée long est unéruption au-dessus de la bande supérieureavecvolatilité supérieure au seuilLe signal d'entrée court est unventilation inférieure à la bande inférieureavecvolatilité supérieure au seuil.

Le signal de sortie stop-loss long est unventilation inférieure à la bande inférieureLe signal de sortie de stop-loss court est unéruption au-dessus de la bande supérieure.

La stratégie définit égalementfaire des profitsLe ratio de prise de profit par défaut est de 2%, c'est-à-dire la position de prise de profit à moitié lorsque le mouvement des prix atteint 2%.

Analyse des avantages

La stratégie de rupture du double canal de Donchian présente les avantages suivants:

  1. La conception à double canal peut capturer des signaux de tendance à partir de délais plus longs et plus courts, permettant des entrées plus précises.

  2. La condition de volatilité permet d'éviter une négociation fréquente sur des marchés à fourchette.

  3. Les paramètres complets de prise de bénéfices et de stop-loss permettent d'obtenir des bénéfices partiels et de réduire les pertes.

  4. Une logique stratégique simple et claire, facile à comprendre et à mettre en œuvre.

  5. Les paramètres personnalisables s'adaptent aux différents produits et aux préférences commerciales.

Analyse des risques

La stratégie de rupture du double canal de Donchian comporte également des risques:

  1. La conception à double canal est sensible et peut générer de faux signaux.

  2. Dans les marchés volatils, le stop loss peut être déclenché trop fréquemment.

  3. L'intervention dynamique ou manuelle est envisagée pour une tarification optimale des bénéfices.

  4. Les performances commerciales réelles peuvent différer des attentes des tests antérieurs, nécessitant une validation approfondie et des ajustements de paramètres si nécessaire.

Directions d'optimisation

La stratégie de rupture du double canal de Donchian peut être optimisée sous plusieurs aspects:

  1. Testez plus de combinaisons de périodes pour trouver des paramètres optimaux.

  2. Essayez différentes mesures de volatilité comme ATR pour trouver la métrique la plus stable.

  3. Définir une limite sur le nombre d'entrées pour éviter les pertes à la fin des tendances.

  4. Essayez de prendre des profits dynamiques pour un profit plus élevé.

  5. Incorporer d'autres indicateurs pour filtrer les entrées et améliorer la précision, par exemple le volume.

  6. Optimiser les modèles de gestion de l'argent tels que la taille des positions fractionnaires fixes pour un meilleur contrôle des risques.

Conclusion

En conclusion, la stratégie de rupture de canal double Donchian est une excellente stratégie de suivi de tendance. Elle combine à la fois l'identification de tendance et les capacités de protection contre l'inversion. Avec l'optimisation des paramètres et le raffinement des règles, elle peut être rentable sur la plupart des produits et des conditions du marché.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © omererkan

//@version=5
strategy(title="Double Donchian Channel Breakout", overlay=true, initial_capital = 1000, commission_value = 0.05, default_qty_value = 100, default_qty_type = strategy.percent_of_equity)

// Donchian Channels
slowLen = input.int(50, title="Slow Donchian", group = "Conditions")
fastLen = input.int(30, title="Fast Donchian", group = "Conditions")

// Volatility Calculated as a percentage
volatility = input.int(3, title="Volatility (%)", group = "Conditions")

// Long positions
long = input.bool(true, "Long Position On/Off", group = "Strategy")
longProfitPerc = input.float(2, title="Long TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01

// Short positions
short = input.bool(true, "Short Position On/Off", group = "Strategy")
shortProfitPerc = input.float(2, title="Short TP1 (%)", group = "Strategy", minval=0.0, step=0.1) * 0.01

// First take profit point for positions
TP1Yuzde =input.int(50, title = "TP1 Position Amount (%)", group = "Strategy")

// Slow Donchian Calculated
ubSlow = ta.highest(high, slowLen)[1]
lbSlow = ta.lowest(low, slowLen)[1]

// Fast Donchian Calculated
ubFast = ta.highest(high, fastLen)[1]
lbFast = ta.lowest(low, fastLen)[1]

// Plot Donchian Channel for entries
plot(ubSlow, color=color.green, linewidth=2, title="Slow DoCh - Upperband")
plot(lbSlow, color=color.green, linewidth=2, title="Slow DoCh - Lowerband")
plot(ubFast, color=color.blue, linewidth=2, title="Fast DoCh - Upperband")
plot(lbFast, color=color.blue, linewidth=2, title="Fast DoCh - Lowerband")

// This calculation, the strategy does not open position in the horizontal market.
fark = (ubSlow - lbSlow) / lbSlow * 100

// Take profit levels
longExitPrice  = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)

// Code long trading conditions
longCondition = ta.crossover(close, ubSlow) and fark > volatility
if longCondition and long == true
    strategy.entry("Long", strategy.long)

// Code short trading conditions
shortCondition = ta.crossunder(close, lbSlow) and fark > volatility
if shortCondition and short == true
    strategy.entry("Short", strategy.short)

// Determine long trading conditions
if strategy.position_size > 0 and ta.crossunder(close, lbFast) 
    strategy.close_all("Close All")

// Determine short trading conditions
if strategy.position_size < 0 and ta.crossover(close, ubFast)
    strategy.close_all("Close All")

// Take Profit Long
if strategy.position_size > 0
    strategy.exit("TP1", "Long", qty_percent = TP1Yuzde, limit = longExitPrice)

// Take Profit Short
if strategy.position_size < 0
    strategy.exit("TP1", "Short", qty_percent = TP1Yuzde, limit = shortExitPrice)

Plus de