La stratégie de rupture du canal de Donchian est une action et une tendance de prix suivant une stratégie de négociation de rupture.
La logique de base de cette stratégie est la suivante:
Utilisez les fonctions Ta.highest et Ta.lowest pour calculer le plus haut et le plus bas bas au cours d'une certaine période (par exemple 60 bar) pour construire les bandes supérieure et inférieure du canal de Donchian.
Lorsque les prix dépassent la bande supérieure, cela indique qu'une tendance haussière peut commencer, alors allez long à la prochaine barre ouverte après la rupture de la bande supérieure.
Une fois que les prix tombent en dessous de la fourchette supérieure ou remontent au-dessus de la fourchette inférieure, cela indique un renversement de tendance, donc aplatissez les positions longues ou courtes existantes.
Pour contrôler les risques, définissez un stop loss au prix d'entrée moins/plus un tick minimum après l'initiation des positions longues/courtes.
Ce type de stratégie de rupture de canal est simple et directe, en tenant compte à la fois de l'action des prix et de la tendance, facile à exécuter et stable.
Cette stratégie présente plusieurs avantages:
La logique est claire, simple et facile à comprendre, avec une grande exécutabilité.
L'utilisation du canal Donchian pour déterminer la direction de la tendance peut filtrer efficacement le bruit et identifier des signaux de rupture fiables.
Un arrêt raisonnable des pertes après l'entrée peut bien contrôler les pertes d'une seule transaction.
Quelle que soit la situation du marché, la stratégie peut se négocier avec la tendance une fois qu'une rupture valable se produit et attraper les grands mouvements potentiels.
Très peu de paramètres, pas sujet à un surajustement, avec un grand espace de réglage et une grande plasticité.
Cette stratégie comporte également certains risques:
En tant que tendance suivant une stratégie, il ne peut pas attraper les mouvements d'inversion.
Un stop-loss trop proche peut être arrêté par des fluctuations de prix à court terme.
Un mauvais réglage de la longueur du canal augmente les probabilités de fausse rupture.
Quelques contre-mesures:
Incorporer d'autres indicateurs pour identifier les potentiels retours en arrière, éviter de suivre aveuglément les tendances.
Utilisez un arrêt raisonnable pour bloquer les bénéfices au lieu de vous en tenir à un arrêt initial.
Testez différentes valeurs de paramètres pour trouver une combinaison optimale.
Il est possible d'optimiser davantage:
Essayez une double stratégie de rupture de canal Donchian, une pour l'entrée et une pour le stop loss/profit taking.
Il suffit d'effectuer des transactions après que la rupture dépasse un certain nombre de tiques pour filtrer les fausses ruptures.
Ajoutez un filtre de volume ou de volatilité pour éviter de mauvaises transactions lorsque les prix fluctuent violemment.
Essayez différentes stratégies de détention comme suivre la tendance ou inverser la moyenne en combinaison pour de meilleurs résultats.
Ajouter des modules de gestion des risques pour limiter les pertes quotidiennes maximales, les retraits maximaux, etc.
En résumé, la stratégie de rupture de canal de Donchian est une stratégie très pratique de suivi de tendance à court terme. Elle identifie les changements de tendance potentiels par l'action des prix et utilise les ruptures de canal pour entrer dans les transactions. La logique est simple et facile à exécuter et peut obtenir des résultats décents sur divers marchés.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // Step 1. Define strategy settings strategy(title="Price action and breakout Channel Forexrn", overlay=true, pyramiding=0, initial_capital=100000, commission_type=strategy.commission.cash_per_order, commission_value=4, slippage=2) dochLen = input.int(60, title="Price action and breackout Channel Forexrn") // Position sizing inputs usePosSize = input.bool(true, title="Use Position Sizing?") atrLen = input.int(10, title="ATR Length") atrRiskOffset = input.float(4, title="ATR Risk Offset Multiple", step=0.25) maxRisk = input.float(2, title="Max Position Risk %", step=.25, minval=0.25, maxval=15) maxExposure = input.float(10, title="Max Position Exposure %", step=1, minval=1, maxval=100) marginPerc = input.int(10, title="Margin %", minval=1, maxval=100) // Step 2. Calculate strategy values upperband = ta.highest(high, dochLen)[1] lowerband = ta.lowest(low, dochLen)[1] // Calculate position size riskEquity = (maxRisk * 0.01) * strategy.equity riskTrade = (ta.atr(atrLen) * atrRiskOffset) * syminfo.pointvalue maxPos = ((maxExposure * 0.01) * strategy.equity) / ((marginPerc * 0.01) * (close * syminfo.pointvalue)) posSize = usePosSize ? math.min(math.floor(riskEquity / riskTrade), maxPos) : 1 // Step 3. Output strategy data plot(upperband, color=color.green, linewidth=2, title="DoCh Upperband") plot(lowerband, color=color.red, linewidth=2, title="DoCh Lowerband") // Step 4. Determine trading conditions tradeWindow = true tradeAllowed = tradeWindow and bar_index > dochLen // Step 5. Submit entry orders if tradeAllowed if strategy.position_size < 1 strategy.entry("EL", strategy.long, qty=posSize, stop=upperband + syminfo.mintick) if strategy.position_size > -1 strategy.entry("ES", strategy.short, qty=posSize, stop=lowerband - syminfo.mintick) // Step 6. Submit exit orders if not tradeWindow strategy.close_all()